server_id **全局唯一**[mysqld] server_id = 102 log-bin = mysql3306-bin重啟:
systemctl restart mysqld
GRANT REPLICATION SLAVE ON *.* TO 'kongzhong'@'192.168.1.100' IDENTIFIED BY 'kongzhong'; FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; -- 記錄 File: mysql3306-bin.000001, Position: 414 UNLOCK TABLES;
mysqldump -uroot -p -S /tmp/mysql3306.sock --all-databases > /tmp/mysql.sql scp /tmp/mysql.sql root@192.168.1.100:/tmp
[mysqld] server_id = 100重啟,導入備份:
mysql -uroot -p -S /tmp/mysql3306.sock < /tmp/mysql.sql
CHANGE MASTER TO MASTER_HOST='192.168.1.102', MASTER_USER='kongzhong', MASTER_PASSWORD='kongzhong', MASTER_PORT=3306, MASTER_LOG_FILE='mysql3306-bin.000001', MASTER_LOG_POS=414; START SLAVE; SHOW SLAVE STATUS\G; -- 核心確認:Slave_IO_Running: Yes, Slave_SQL_Running: Yes
log-bin、設置唯一 server_idCHANGE MASTER TO ... 指向對方-- 主庫寫入測試 CREATE TABLE test_repl (id INT PRIMARY KEY); INSERT INTO test_repl VALUES (1); -- 從庫查詢確認 SELECT * FROM test_repl; -- 應可見 -- 監控關鍵指標 SHOW SLAVE STATUS\G; -- Seconds_Behind_Master: 0 -- Slave_IO_Running / Slave_SQL_Running: Yes -- Last_IO_Error / Last_SQL_Error: 空
server_id 衝突 → 復制斷裂**單向主從 = 主庫開 binlog + 唯一 server_id + 授權 + 鎖表備份 + 從庫導入 + CHANGE MASTER + START SLAVE**。將此流程固化為《MySQL 主從部署 SOP》,新環境交付「對著清單勾、跑著腳本跑」,零失誤上線。