首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 主從同步配置實戰:從零搭建 Replication

     編輯:MySQL 資料庫相關知識

架構規劃

  • Master:192.168.0.1,server-id=1
  • Slave:192.168.0.2,server-id=2
  • 同步專用帳號:back/back
  • 同步庫:test,忽略 mysql 系統庫

Master 配置 (/etc/my.cnf)


[mysqld]
log-bin=/var/log/mysql/updatelog
server-id=1
binlog-do-db=test
binlog-ignore-db=mysql

重啟後建立同步帳號:


GRANT REPLICATION SLAVE, RELOAD, SUPER ON *.* TO 'back'@'192.168.0.2' IDENTIFIED BY 'back';
FLUSH PRIVILEGES;

Slave 配置 (/etc/my.cnf)


[mysqld]
server-id=2
master-host=192.168.0.1
master-user=back
master-password=back
master-port=3306
replicate-do-db=test
replicate-ignore-db=mysql

重啟 Slave 服務。

啟動同步

  1. Master 查看二進制日誌位置:
    SHOW MASTER STATUS;
    記錄 File (如 updatelog.000028) 與 Position (如 313361)
  2. Slave 停止同步執行緒並指定起點:
    SLAVE STOP;
    CHANGE MASTER TO MASTER_LOG_FILE='updatelog.000028', MASTER_LOG_POS=313361;
    SLAVE START;
  3. 驗證:
    SHOW SLAVE STATUS\G
    關鍵:Slave_IO_Running: Yes、Slave_SQL_Running: Yes

常見問題排查

  • IO_Running=No:網路不通、帳號密碼錯、Master 防火牆擋 3306、master-host 寫錯
  • SQL_Running=No:主從表結構不一致、主鍵衝突、觸發器/存儲過程異常 → SHOW SLAVE STATUS 看 Last_SQL_Error
  • 跳過錯誤 (謹慎):SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; SLAVE START;
  • 延遲監控:Seconds_Behind_Master 持續增大需檢查 Slave 機能、長事務、無索引更新
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved