my.cnf,需複製範本:
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
/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
CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; SHOW MASTER STATUS; -- 記錄 File 與 Position
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
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 確認從庫已註冊 |
explicit_defaults_for_timestamp=true 解決 MySQL 5.6+ 啟動報錯此架構讓你在 Windows 圖形化工具中輕鬆管理 Mac 主庫資料,兼具開發便利性與資料安全性。