Mysql5.7主從同步及半自動同步方式
阿新 • • 發佈:2019-01-27
系統環境:
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服務。
檢視狀態,記錄下日誌檔案的名稱及位置
2、slave: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>
修改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;