ubuntu16配置mysql5.7主从同步
测试环境如下:
master: 192.168.3.11
slave01: 192.168.3.12
slave02: 192.168.3.13
一、三台机均安装mysql-server5.7
二、配置主从同步
1、 master配置
1) 修改配置文件/etc/my.cnf
$ sudo vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=26
2) 重启mysql服务
$ sudo service mysql restart
3) 添加同步帐号
#进入数据库
$ mysql -uroot -p
#数据库配置
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'IDENTIFIED BY '123456';
#使配置生效
mysql> flush privileges;
mysql> exit
4) 安装插件,并启动半同步复制
#进入数据库
$ mysql -uroot -p
#同步安装插件
mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';
mysql> set global rpl_semi_sync_master_enabled=ON;
mysql> flush privileges;
# 查看master是否开启同步复制
mysql> show status like '%semi%';
#查看master状态,slave要用到
mysql> show master status;
2、 两台slave配置
1) 修改配置文件
$ sudo vim /etc/my.cnf
[mysqld]
log-bin=mysql
server-id=27 //另一台server-id=28
2) 重启mysql服务
$ sudo service mysql restart
3) 数据库配置
#进入数据库
$ mysql -uroot -p
#安装同步插件
mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
mysql> set global rpl_semi_sync_slave_enabled=ON;
mysql> flush privileges;
#查看从库是否开启同步复制
mysql> show status like '%semi%';
#连接master
mysql> change master to master_host='192.168.3.11',
-> master_user='repl',
-> master_password='123456',
-> master_log_file='mysql-bin.000011',
-> master_log_pos=741;
mysql> flush privileges;
# 启动并查看slave状态
mysql> start slave;
mysql> show slave status\G;
PS:查看slave状态时,选项中的Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 就代表同步设置成功。