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

MySQL 主從複制配置實戰:Mac 主庫 + VirtualBox Windows 從庫

     編輯:MySQL 資料庫相關知識

場景與架構

  • 主庫:Mac Pro 本機 MySQL
  • 從庫:VirtualBox 虛擬機 Windows 7 + MySQL
  • 目的:在 Windows 下使用 SQLyog 等圖形工具連接管理、備份主庫資料
  • 網路模式:虛擬機採用橋接模式,獲取獨立 LAN IP,與主機互通

步驟一:虛擬機網路配置

  1. VirtualBox 設定網卡為「橋接模式」
  2. 路由器綁定主機與虛擬機 IP(如小米路由器「設備 IP 綁定」),避免 DHCP 導致 IP 變動
  3. 驗證雙向 Ping 通

步驟二:主庫配置

  1. Mac MySQL 預設無 my.cnf,需複製範本:
    cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
  2. 編輯 /etc/my.cnf,在 [mysqld] 區段新增:
    [mysqld]
    server-id=1
    log-bin=mysql-bin
    binlog-format=ROW
    explicit_defaults_for_timestamp=true
    # 可選:只同步特定庫
    # binlog-do-db=your_db
  3. 重啟 MySQL,進入客戶端建立複制帳號:
    CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
    FLUSH PRIVILEGES;
    SHOW MASTER STATUS;  -- 記錄 File 與 Position

步驟三:從庫配置

  1. 編輯 Windows MySQL my.ini(通常在安裝目錄或 C:\ProgramData\MySQL\MySQL Server 5.x\my.ini):
    [mysqld]
    server-id=2
    relay-log=relay-bin
    log-slave-updates=1
    read-only=1
    # 可選:只同步特定庫
    # replicate-do-db=your_db
  2. 重啟 MySQL 服務
  3. 配置主從關聯:
    CHANGE MASTER TO
      MASTER_HOST='192.168.x.x',  -- Mac LAN IP
      MASTER_USER='repl',
      MASTER_PASSWORD='password',
      MASTER_LOG_FILE='mysql-bin.000002',  -- 主庫 SHOW MASTER STATUS 結果
      MASTER_LOG_POS=16093;
    START SLAVE;
    SHOW SLAVE STATUS\G  -- 確認 Slave_IO_Running=Yes, Slave_SQL_Running=Yes

常見坑點與解決

錯誤現象原因分析解決方案
Got fatal error 1236 from master when reading data from binary log從庫 Relay Log 與主庫 Binlog 位置不匹配記錄主庫 SHOW MASTER STATUS 的 File/Position,在從庫執行 CHANGE MASTER TO MASTER_LOG_FILE=..., MASTER_LOG_POS=...
Slave can not handle replication events with the checksum that master is configured to log主庫 5.6+ 預設 CRC32 checksum,從庫版本較低不支援主庫 my.cnf 加入 binlog-checksum=NONE 並重啟
從庫狀態正常但資料不同步SQLyog 等工具連線可能觸發不同會話/事務隔離,或從庫 SQL 執行緒阻塞1) 確認 SHOW PROCESSLIST 無長時間 Sleep/Waiting 線程
2) 嘗試直接在主庫終端機執行 DML 驗證同步
3) 檢查 SHOW SLAVE HOSTS 確認從庫已註冊

關鍵經驗總結

  • 橋接模式讓虛擬機成為獨立網路節點,最適合主從部署
  • 路由器綁定 IP 避免重啟後 IP 漂移導致複制中斷
  • explicit_defaults_for_timestamp=true 解決 MySQL 5.6+ 啟動報錯
  • 版本差異導致 checksum 不相容時,主庫關閉 checksum 即可
  • 工具連線與終端機連線可能表現不同,以終端機驗證為準

此架構讓你在 Windows 圖形化工具中輕鬆管理 Mac 主庫資料,兼具開發便利性與資料安全性。

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