環境準備: master:192.168.0.106:3306slave:192.168.0.105:3306 主和從都必須配置有唯一的ID(server_id:建議ip最後一組+MySQL埠號,例如:1063306,1053306) 採用gtid模式複製,需要配置mysqld開啟以下兩個參數 操 ...
環境準備:
master:192.168.0.106:3306
slave:192.168.0.105:3306
主和從都必須配置有唯一的ID(server_id:建議ip最後一組+MySQL埠號,例如:1063306,1053306)
採用gtid模式複製,需要配置mysqld開啟以下兩個參數
1 gtid_mode=ON 2 enforce-gtid-consistency=ON
操作步驟:
1、在master創建用於複製的賬號
1 mysql> CREATE USER 'repl'@'192.168.0.%' IDENTIFIED BY 'repl'; 2 mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.%';
2、mysqldump備份master資料庫
1 mysqldump -S /tmp/mysql3306.sock -p --master-data=2 --single-transaction -A |gzip >3306-`date +%F`.tar.gz
3、slave上還原master的備份
1 gunzip < 3306-2019-10-13.sql.gz | mysql -S /tmp/mysql3306.sock -p
提示:ERROR 3546 (HY000) at line 26: @@GLOBAL.GTID_PURGED cannot be changed: the added gtid set must not overlap with @@GLOBAL.GTID_EXECUTED
登錄slave資料庫,清除從站已有GTID_EXECUTED值,然後再執行還原
1 mysql> reset master; 2 mysql> exit; 3 gunzip < 3306-2019-10-13.sql.gz | mysql -S /tmp/mysql3306.sock -p
5、 登錄slave資料庫,執行主從配置連接命令
1 CHANGE MASTER TO 2 MASTER_HOST='192.168.0.106', 3 MASTER_USER='repl', 4 MASTER_PASSWORD='repl', 5 MASTER_PORT=3306, 6 MASTER_AUTO_POSITION=1;
MASTER_HOST: master主機ip
MASTER_USER:master複製連接賬號
MASTER_PASSWORD:master複製連接密碼
MASTER_PORT:master埠
MASTER_AUTO_POSITION:使用GTID模式
6、登錄slave資料庫,啟動複製
1 start slave;
7、查看複製狀態信息
1 show slave status\G
查看以下兩個參數都為Yes代表複製啟動成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes