本文記錄一次在測試環境(主庫 MySQL 5.6、從庫 MySQL 5.1)部署主從複制的完整過程,包含配置檔修改、資料同步、賬號授權、狀態驗證等關鍵步驟,並特別強調「先同步資料再啟動複制」這一易被忽略的核心細節。
wxwx 庫[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-do-db = wx
server-id:集群內唯一標識log-bin:啟用二進制日誌binlog-do-db:僅記錄指定庫的變更[mysqld]
server-id = 2
log-bin = mysql-bin
replicate-do-db = wx
replicate-do-db 告訴從庫只回放 wx 庫的事件。
⚠️ 必須先完成此步,否則後續報錯極難排查!
可用 mysqldump 導出主庫 wx 庫,再在從庫導入:
# 主庫導出
mysqldump -uroot -p wx > wx_backup.sql
# 從庫導入
mysql -uroot -p wx < wx_backup.sql
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' IDENTIFIED BY '123';
SHOW MASTER STATUS\G
-- 輸出示例
File: mysql-bin.000003
Position: 256
Binlog_Do_DB: wx
File 與 Position 將用於從庫定位同步起點。
CHANGE MASTER TO
MASTER_HOST = '192.168.146.120',
MASTER_USER = 'replication',
MASTER_PASSWORD = '123',
MASTER_LOG_FILE = 'mysql-bin.000003',
MASTER_LOG_POS = 256;
START SLAVE;
SHOW SLAVE STATUS\G
重點檢查兩個 Yes:
Slave_IO_Running: Yes — I/O 執行緒正常連接主庫Slave_SQL_Running: Yes — SQL 執行緒正常回放日誌若均為 Yes 且 Seconds_Behind_Master: 0,代表複制運行正常、無延遲。
在主庫 wx 庫任意表插入一筆資料,從庫瞬間可查詢到,確認複制鏈路通暢。
Table doesn't exist。server-id 重複:主從必須不同。主從複制是 MySQL 高可用與讀寫分離的基石,掌握標準化部署流程能有效避免生產事故。