1. 程式人生 > >Mysql5.7主從同步及半自動同步方式

Mysql5.7主從同步及半自動同步方式

系統環境:

master:192.168.1.40
OS:CentOS Linux release 7.2.1511 (Core)
mysql:5.7.21
db:demodb
dbuser:test
dbpassword:test
slave:192.168.1.41
OS:CentOS Linux release 7.2.1511 (Core)
mysql:5.7.21
db:demodb
dbuser:test
dbpassword:test

一、主從同步

1、master:

新建一個使用者backupAdmin,用以slave訪問master的binlog。

GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'backupAdmin'@'124.133.27.14' IDENTIFIED BY 'backupAdmin1_';

修改mysql的配置檔案

vi /etc/my.cnf
在mysqld下新增如下資訊
log-bin=mysql-bin
server-id=21495
binlog-do-db=demodb

其中 server-id必須為唯一的,其他的mysql伺服器沒有使用過,一般使用server的ip地址。

重啟mysql服務。

檢視狀態,記錄下日誌檔案的名稱及位置

mysql> show master status;
+------------------+-----------+--------------+------------------+-------------------+
| File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+-----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 608118299 | demodb   |                  |                   |
+------------------+-----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql>
2、slave:

修改msyql的配置檔案,在mysqld節點下新增如下資訊。

server-id=192168140
log-bin=mysql-bin
replicate-do-db=demodb
#log_slave_updates=1

read_only = 1
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=1
#super_read_only=1

重啟mysql服務。

mysql> stop slave io_thread;
mysql> change master to master_host='192.168.1.40',master_user='backupAdmin',master_password='backupAdmin',master_port=3306,
master_log_file='mysql-bin.000002',master_log_pos=608118299;

master_log_file:主伺服器的日誌檔名稱

master_log_pos:日誌檔案遊標位置

start slave;

檢視slave的狀態

show slave status\G;

二、半自動主從同步

需要安裝兩個外掛

master:

install plugin rpl_semi_sync_master soname 'semisync_master.so';

修改mysql的配置檔案/etc/my.cnf,新增如下資訊。

rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000   #此單位是毫秒
rpl_semi_sync_master_wait_point=AFTER_SYNC

檢視外掛安裝狀態

show global variables like '%rpl_semi%';

slave:

install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

修改mysql配置檔案,新增如下內容。

rpl_semi_sync_slave_enabled=1

檢視外掛安裝狀態

showstatus like "%rpl_semi%";
start slave;