Mysql运维管理-MySQL多实例常见配置方案3

多实例配置文件部署方案

1.通过配置多个配置文件及多个启动程序来实现多实例的方案

[root@mysql ~]# tree -L 2 /data/
/data
├── 3306
│   ├── data
│   ├── my.cnf  3306实例的配置文件
│   └── mysql       3306实例的启动文件
└── 3307
├── data
├── my.cnf  3307实例的配置文件
└── mysql   3307实例的启动文件

多实例启动文件启动mysql服务实质

mysql_safe --defaults-file=/data/3306/my.cnf 2>&1 > /dev/null &
mysql_safe --defaults-file=/data/3307/my.cnf 2>&1 > /dev/null &

多实例启动文件的平滑停止mysql服务实质

mysqladmin -u root -p123456 -S /data/3306/mysql.sock shutdown
mysqladmin -u root -p123456 -S /data/3307/mysql.sock shutdown

2. 授权用户和组管理整个多实例目录/data

[root@mysql ~]# chown -R mysql.mysql /data
[root@mysql ~]# find /data -name mysql
/data/3306/mysql
/data/3307/mysql

3 授权mysql多实例服务所有启动文件mysql可执行

[root@mysql ~]# find /data -type f -name "mysql"|xargs ls -l
-rw-r--r--. 1 mysql mysql 1604 1月  12 17:06 /data/3306/mysql
-rw-r--r--. 1 mysql mysql 1604 1月  12 17:06 /data/3307/mysql
[root@mysql ~]# find /data -type f -name "mysql"|xargs chmod +x
[root@mysql ~]# find /data -type f -name "mysql"|xargs ls -l
-rwxr-xr-x. 1 mysql mysql 1604 1月  12 17:06 /data/3306/mysql
-rwxr-xr-x. 1 mysql mysql 1604 1月  12 17:06 /data/3307/mysql

4 配置MySQL命令全局使用路径

前面cmake安装mysql的时候已经配过了,这里就不配了。配完全局变量使用mysql命令就能找到了。

[root@mysql ~]# tail -1 /etc/profile
export PATH=/usr/local/mysql/bin:$PATH

5 初始化MySQL多实例的数据库文件

(1)初始化命令

mysql5.1.X初始化命令

mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/3307/data/ --user=mysql
mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/3307/data/ --user=mysql

mysql5.5.32初始化命令

[root@mysql ~]# cd /home/zbf/mysql-5.5.32/scripts/

要在scripts下执行,不在mysql bin下。注意要在当前目录下执行加 ./。

./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/3306/data/ --user=mysql
./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/3307/data/ --user=mysql

(2)为什么要初始化数据库?

a. 初始化的主要目的就是创建基础的数据库文件,例如生成mysql库表。

b. 初始化后可以查看对应的实例数据库目录,可以看到如下文件。

6 启动mysql服务

/data/3306/mysql start
/data/3307/mysql start

7 MySQL故障排错多实例数据库

如果mysql没有起来排查方法如下

(1)如果发现没有显示MySQL的端口,请等待几秒mysql服务启动会有点慢。

(2)如果还是不行,请查看错误日志,错误日志路径在my.cnf配置文件路径下面。
grep log-error /data/3306/mysql_zbf3306.err|tail -1

(3)细看所有执行命令返回的输出,不要忽略关键的输出结果。

(4)查看系统的/var/log/messages。

(5)如果是关联服务,要同时查看相关服务的LOG。

8 Mysql多实例登录

Mysql安装完成后,默认情况下管理员账号root是无密码的。登录不同的mysql数据库需要指定不同库的sock路径。如果是远程的话就指定IP地址。

[root@mysql ~]# mysql -S /data/3306/mysql.sock 
[root@mysql ~]# mysql -S /data/3307/mysql.sock 

9 MySQL安全配置

为root增加密码

mysqladmin -u root -S /data/3306/mysql.sock password '123456'
mysqladmin -u root -S /data/3307/mysql.sock password '123456'

###设置完数据路密码登录数据库的方法

[root@mysql 3306]# mysql -uroot -p123456 -S /data/3306/mysql.sock
[root@mysql 3306]# mysql -uroot -p123456 -S /data/3307/mysql.sock

为mysql多实例启动脚本修改执行权限,只允许root用户有执行权限

[root@mysql ~]# find /data -type f -name "mysql" -exec ls -l {} \;
-rwxr-xr-x 1 mysql mysql 1252 1月  15 02:18 /data/3306/mysql
-rwxr-xr-x 1 mysql mysql 1252 1月  15 04:45 /data/3307/mysql
[root@mysql ~]# find /data -type f -name "mysql" -exec chmod 700 {} \;
[root@mysql ~]# find /data -type f -name "mysql" -exec chown 700 {} \;
[root@mysql ~]# find /data -type f -name "mysql" -exec ls -l {} \;
-rwx------ 1 root root 1252 1月  15 02:18 /data/3306/mysql
-rwx------ 1 root root 1252 1月  15 04:45 /data/3307/mysql
posted @ 2018-03-13 14:41  云无止境  阅读(156)  评论(0编辑  收藏  举报