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

MySQL 主從同步配置完整指南 (3.23.54+ 版本適用)

     編輯:MySQL 資料庫相關知識

架構圖

Master (寫入) → Binlog → Slave (讀取/備份)

1. Master 端配置

[mysqld]
log-bin
binlog-do-db = dbname
server-id = 1

# 或使用 wildcard 過濾
replicate-wild-do-table = dbname.%
replicate-wild-ignore-table = dbname.tmp_%

建立同步帳號

GRANT FILE ON dbname.* TO 'sync_user'@'slave_host' IDENTIFIED BY 'sync_pass';
FLUSH PRIVILEGES;

2. Slave 端配置

[mysqld]
master-host = master_ip
master-user = sync_user
master-password = sync_pass
master-port = 3306
server-id = 2

3. 啟動同步標準流程

  1. 停止雙端服務:mysqladmin -u root -p shutdown
  2. 複製 Master 資料目錄到 Slave (含 ibdata、frm、MYD、MYI)
  3. 啟動 Master:safe_mysqld --defaults-file=master.cnf &
    確認生成 master-bin.000001
  4. 啟動 Slave:safe_mysqld --defaults-file=slave.cnf &
    Slave data/master.info 記錄同步位點

4. 監控驗證

-- Master
SHOW MASTER STATUS;
-- File: master-bin.000001, Position: 12345, Binlog_do_db: dbname

-- Slave
SHOW SLAVE STATUS\G
-- Slave_IO_Running: Yes, Slave_SQL_Running: Yes
-- Seconds_Behind_Master: 0

常見問題

  • Seconds_Behind_Master 增大 → 網路延遲、Slave SQL 執行慢、Master 負載高
  • 同步中斷 → 檢查錯誤日誌、SHOW SLAVE STATUS 的 Last_Error
  • 資料不一致 → mk-table-checksum (Percona Toolkit) 定期校驗
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved