Windows 環境下配置 MySQL 複製,核心差異在於配置文件位置 (my.ini)、服務管理、路徑寫法。本文針對 Windows 2000/Server 2003/XP/7/10/11,給出主從與雙主完整配置步驟。
| 節點 | IP | 角色 | Server ID | my.ini 路徑 |
|---|---|---|---|---|
| A | 10.10.10.22 | Master | 1 | C:\Windows\my.ini 或 安裝目錄\my.ini |
| B | 10.10.10.53 | Slave | 2 | 同左 |
-- 在 A 執行
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.10.10.53' IDENTIFIED BY 'SyncPass123!';
CREATE DATABASE sync_db;
-- 在 B 執行
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.10.10.22' IDENTIFIED BY 'SyncPass123!';
CREATE DATABASE sync_db;
server-id = 1
log-bin = mysql-bin
binlog-do-db = sync_db
binlog-format = ROW
sync_binlog = 1
expire_logs_days = 7
重啟服務:net stop mysql80 && net start mysql80 (或服務管理器)。驗證:SHOW MASTER STATUS;
server-id = 2
master-host = 10.10.10.22
master-user = repl
master-password = SyncPass123!
master-port = 3306
master-connect-retry = 60
replicate-do-db = sync_db
log-slave-updates = 1
read-only = 1
重啟服務。驗證:SHOW SLAVE STATUS\G 確認 Slave_IO_Running=Yes, Slave_SQL_Running=Yes。
在主從基礎上,雙向添加對方為 Master。
master-host = 10.10.10.53
master-user = repl
master-password = SyncPass123!
master-connect-retry = 10
replicate-do-db = sync_db
auto-increment-increment = 2
auto-increment-offset = 1
log-bin = mysql-bin
binlog-do-db = sync_db
auto-increment-increment = 2
auto-increment-offset = 2
重啟 A、B 服務。驗證雙向同步:在 A 寫入 → B 可見;在 B 寫入 → A 可見。
C:\Windows\my.ini > 安裝目錄 my.ini > my.cnf。建議統一用安裝目錄 my.ini,並在服務啟動參數指定 --defaults-file="D:\MySQL\my.ini"。/ 或雙反斜槓 \\,避免單反斜槓轉義。mysql80),啟停用 net start/stop mysql80 或 sc 命令。log-error = "D:/MySQL/logs/error.log",關鍵字 Duplicate entry、Can't connect。Slave 啟動後會在 datadir 生成 master.info (記錄 Master 連接信息) 和 relay-log.info。修改複製配置前必須刪除這兩個文件,否則新配置不生效。
Windows MySQL 複製配置核心:my.ini 精準配置、服務重啟生效、master.info 管理、防火牆放行、雙主 auto_increment 錯位。生產環境建議遷移至 Linux + MGR/Galera,獲得更穩定的高可用與自動故障轉移能力。