首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 跨平台主從同步實戰:Windows Master → Linux Slave 完整配置與故障排查

     編輯:MySQL 綜合教學

當資料庫讀寫壓力激增,採用「一主多從」架構分流讀請求、實現熱備是經典方案。本文記錄 Windows (Master) 同步至 Linux (Slave) 的跨平台部署全過程,包含配置差異處理、關鍵參數解析、以及實戰遇到的 master.info 導致的同步中斷案例與解決方案。

一、環境規劃

角色OSMySQL 版本IP
MasterWindows5.0.51192.168.1.156
SlaveLinux5.0.67192.168.1.154

同步目標資料庫:account。兩側採用各自預設安裝配置,未強制對齊參數文件。

二、Master (Windows) 配置

修改 my.ini(Windows 下通常為 ini):

[mysqld]
server-id = 1
log-bin = d:/log-bin.log
binlog-do-db = account

原理補充:Slave 透過兩條線程同步——I/O 線程 從 Master 3306 端口拉取 Binlog 寫入本地 Relay-log;SQL 線程 讀取 Relay-log 重放邏輯,完成同步。

建立同步專用帳號:

GRANT REPLICATION SLAVE ON *.* TO 'sync_user'@'192.168.1.154' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

將 account 庫完整備份導入 Slave(mysqldump --master-data=2 可記錄 Binlog 位置)。

三、Slave (Linux) 配置

修改 /etc/my.cnf:

[mysqld]
server-id = 2
master-host = 192.168.1.156
master-user = sync_user
master-password = password
master-port = 3306
replicate-do-db = account

重啟兩側 MySQL 服務。

四、驗證與常見故障排查

  1. 檢查 Master d:/log-bin.log 是否生成 Binlog 檔案。
  2. Master 寫入測試資料,觀察 Slave 是否同步。
  3. 若失敗,查閱 Slave 錯誤日誌(通常在 /var/lib/mysql/hostname.err),依錯誤碼精準排查。

五、實戰血淚案例:修改 Binlog 路徑導致同步中斷

現象

將 log-bin 路徑從 D 槽移至其他磁碟後重啟,同步失效,錯誤日誌報:

"count not find first log file name in binary log in..."

根因分析

Slave 端 datadir 下的 master.info 檔案記錄了「從哪個 Binlog 檔案、哪個位置開始同步」。Master 更換 Binlog 路徑後,檔案命名從頭開始(如 log-bin.000001),但 master.info 仍記舊檔名 log-bin.000003,導致 Slave 找不到對應檔案。

master.info 內容範例:
14
log-bin.000003
337
192.168.1.156
sync_user
password
3306
60
0

解決方案

  1. 停止 Slave:STOP SLAVE;
  2. 刪除 master.info(或 RESET SLAVE ALL; 5.1+ 支援)
  3. 重新配置 CHANGE MASTER TO 指向新 Binlog 起始位置(可在 Master 執行 SHOW MASTER STATUS; 獲取)
  4. 啟動 Slave:START SLAVE;

同步恢復正常。

六、最佳實踐總結

  • Binlog 路徑規劃一次到位:避免後續遷移,若必須遷移,按上述流程重置 Slave 同步座標。
  • 跨平台同步無需配置文件完全一致:關鍵參數(server-id、log-bin、replicate-do-db)正確即可。
  • 監控指標:Seconds_Behind_Master、Slave_IO_Running/Slave_SQL_Running、Binlog 增長速率。
  • 備份驗證:定期在 Slave 執行 CHECKSUM TABLE 或 pt-table-checksum 驗證資料一致性。

掌握核心原理與故障排查思路,跨平台 MySQL 主從同步即可穩健落地。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved