rep1 / rep1abcd1243dCREATE USER 'rep1'@'%' IDENTIFIED BY 'rep1abcd1243d';
GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'%';
SHOW SLAVE STATUS\G
SHOW SLAVE HOSTS;
STOP SLAVE IO_THREAD;
SHOW SLAVE STATUS\G -- 確認 Slave_IO_Running: No, Slave_SQL_Running: Yes
STOP SLAVE;
RESET MASTER;
RESET SLAVE ALL;
SHOW BINARY LOGS; -- 確認 bin-log.000001, 120 bytes
注意:RESET SLAVE ALL 會刪除 replication 參數,SHOW SLAVE STATUS 將回傳空結果。
CHANGE MASTER TO
MASTER_HOST='192.168.1.61',
MASTER_PORT=3306,
MASTER_USER='rep1',
MASTER_PASSWORD='rep1abcd1243d',
MASTER_LOG_FILE='bin-log.000001',
MASTER_LOG_POS=120;
START SLAVE;
SHOW SLAVE STATUS\G
db1 日誌報錯:Error_code: 1045,連線被拒。排查發現 db2 存在匿名用戶(User=''),導致連線嘗試匹配匿名用戶而非 rep1。解決:
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;
刪除匿名用戶後重試,同步恢復正常。
新主庫 db2 插入測試資料:
INSERT INTO test_sr(id) VALUES(30);
SELECT * FROM test_sr ORDER BY id DESC LIMIT 1;
舊主庫 db1 驗證同步:
SELECT * FROM test_sr ORDER BY id DESC LIMIT 1;
雙端資料一致,主從切換成功。