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

異構作業系統下 MySQL 主從同步實戰:Windows Master 與 Linux Slave

     編輯:MySQL 綜合教學

背景與架構規劃

當資料庫讀寫頻繁、資料量龐大時,讀寫分離可顯著提升效能(亦可作備份用途)。MySQL 內建複寫功能正是解決之道。本文實測跨平台同步:Windows Master ↔ Linux Slave。

環境規格

角色作業系統MySQL 版本IP 位址
Master(主庫)Windows5.0.51192.168.1.156
Slave(從庫)Linux5.0.67192.168.1.154

核心原理速覽

Slave 端複寫由兩執行緒協作:

  • I/O Thread:連接 Master 3306 埠,拉取 Binary Log 寫入本地 Relay Log
  • SQL Thread:讀取 Relay Log,重放 SQL 完成同步

前置準備

  1. 同步目標資料庫:account
  2. Master 完整備份 account 導入 Slave
  3. Master 建立複寫帳號,授權 Slave 存取

Master 端配置 my.cnf

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

說明:server-id 唯一標識;log-bin 指定二進制日誌路徑;binlog-do-db 僅記錄指定資料庫變更。

Slave 端配置 my.cnf

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

啟動與驗證

  1. 重啟雙端 MySQL 服務
  2. 檢查 Master log-bin 路徑是否生成日誌檔
  3. Master 插入測試資料,觀察 Slave 是否同步
  4. 若失敗,查閱 Slave 錯誤日誌排查

實戰踩坑:變更 log-bin 路徑導致同步中斷

調整 log-bin 路徑並重啟後,同步失效,錯誤:Could not find first log file name in binary log index。經排查發現 master.info 檔案記錄了舊日誌位置資訊。刪除該檔並重啟 MySQL,同步恢復正常。

經驗:變更 Binary Log 路徑時,務必同步清理 master.info、relay-log.info 等元資料檔案。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved