MySQL主從同步可以使多個數據庫之間實現數據一致性,提高可用性和可擴展性。本文將介紹MySQL主從同步的三種方式。
方式一:基于二進制日志同步(binlog)
1.在主庫上執行命令:show master status; 2.在從庫上執行命令:CHANGE MASTER TO MASTER_LOG_FILE='xxx', MASTER_LOG_POS=xxx; 3.在從庫上執行命令:start slave;
方式二:基于GTID同步
1.在主庫上執行命令:SET @@GLOBAL.GTID_MODE=ON_PERMISSIVE; 2.在從庫上執行命令:SET @@GLOBAL.GTID_MODE=ON_PERMISSIVE; 3.在主庫上執行命令:CREATE USER repl IDENTIFIED BY 'password'; 4.在主庫上執行命令:GRANT REPLICATION SLAVE on *.* TO repl@'%' IDENTIFIED BY 'password'; 5.在從庫上執行命令:CHANGE MASTER TO MASTER_AUTO_POSITION=1; 6.在從庫上執行命令:start slave;
方式三:基于半同步復制
1.在主庫上執行命令:install plugin rpl_semi_sync_master soname 'semisync_master.so'; 2.在從庫上執行命令:install plugin rpl_semi_sync_slave soname 'semisync_slave.so'; 3.在主庫上執行命令:set global rpl_semi_sync_master_enabled=1; 4.在從庫上執行命令:set global rpl_semi_sync_slave_enabled=1; 5.在從庫上執行命令:CHANGE MASTER TO MASTER_HOST='xxx', MASTER_USER='xxx', MASTER_PASSWORD='xxx', MASTER_AUTO_POSITION=1; 6.在從庫上執行命令:start slave;
總結:
以上三種方式都可用于MySQL主從同步,每種方式均有優缺點,根據實際需求選擇最合適的方式。