上一篇博文已经说明了,如何在一台linux机器上安装多个mysql实例,如果不清楚可以参照上一篇的博文来完成,这篇文章就介绍如何在两个实例配置主从。
这个文章涉及到的两个数据端口分别为3398, 3399 对应的安装目录分别为/usr/local/mysql3398, /usr/local/mysql3399 ,这里我让3399作为主库,3398作为从库。
1. 修改主库设置。
登录到主库
cd /usr/local/mysql3399/bin ./mysql -uroot -p
添加从库访问主库的账号
GRANT REPLICATION SLAVE ON *.* to 'slave1'@'%' identified by 'test123';
这时候我们如果输入如下命令查看状态,应该是看不到结果的
show slave status\G;
这是因为我们没有在主库中添加二进制文件日志,我们在/etc/my3399.cnf 中的[mysqld] 下加入如下内容以开启二进制日志,和设置id
[mysqld] port =3399 server-id = 1 log-bin innodb_flush_log_at_trx_commit=1 sync_binlog=1 character-set-server=utf8 init_connect='SET NAMES utf8'
接下来我们重启mysql服务
cd /usr/local/mysql3399 /usr/local/mysql3399/bin/mysqld_safe --defaults-file=/etc/my3399.cnf
2. 修改从库配置
在/etc/my3398.cnf 中添加如下配置
[mysqld] port =3398 server-id=2 character-set-server=utf8 init_connect='SET NAMES utf8'
重启从库服务
cd /usr/local/mysql3398 /usr/local/mysql3398/bin/mysqld_safe --defaults-file=/etc/my3398.cnf
登录从服务器
cd /usr/local/mysql3398 bin/mysql -uroot -p
建立主从之间的联系
change master to master_host='masterIp',master_port='3399' master_user='slave1',master_password='test123';
这时候可以启动slave 了
start slave;
同时可以查看状态
show slave status;
这时候如果有问题,可以根据输出的结果来解决,主要是看端口,服务IP ,密码之类的是否可用,一直到看到类似的东西
Waiting for master to send event | xxx.xxx.xxx.xx | slave1 | 3399 | 60 | iZ254w8xpdjZ-bin.000001 | 807 | iZ254w8xpdjZ-relay-bin.000002 | 977 | iZ254w8xpdjZ-bin.000001 | Yes