測試環境如下:
master: 10.0.0.26
slave01: 10.0.0.27
slave02: 10.0.0.28
一、三台機均安裝mysql-server5.7
$ sudo apt-get update $ sudo apt-get install -y mysql-server
二、配置主從同步
1、 master配置
1) 修改配置文件/etc/mysql/mysql.conf.d/mysqld.cnf
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf [mysqld] log-bin=mysql-bin server-id=26 #注釋掉下面一行 #bind-address =127.0.0.1
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/mysql/mysql.conf.d/mysqld.cnf [mysqld] log-bin=mysql server-id=27 //另一台server-id=28 #注釋掉下面一行 #bind-address =127.0.0.1
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='10.0.0.26',
-> master_user='repl',
-> master_password='123456',
-> master_log_file='mysql-bin.000001',
-> 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 就代表同步設置成功。
