| 角色 | IP | OS | MySQL 版本 |
|---|---|---|---|
| Master (A) | 192.168.100.1 | Win 2003 Server | 4.1.20 |
| Slave (B) | 192.168.100.2 | Win 2003 Server | 4.1.20 |
目標:A 寫入變更 → B 即時同步,達到熱備份效果。
GRANT REPLICATION SLAVE, RELOAD, SUPER ON *.*
TO 'backup'@'192.168.100.2' IDENTIFIED BY '1234';
-- 修正舊版密碼演算法相容性
SET PASSWORD FOR 'backup'@'192.168.100.2' = OLD_PASSWORD('1234');
FLUSH TABLES WITH READ LOCK)。mysqldump --master-data=1 --all-databases)。UNLOCK TABLES)。my.ini[mysqld]
server-id = 1
log-bin = C:/mysql/logs/binlog
# 可選:只同步特定資料庫
binlog-do-db = mydb
binlog-ignore-db = test
重啟 Master,開始產生二進制日誌。
my.ini[mysqld]
server-id = 2
master-host = 192.168.100.1
master-user = backup
master-password = 1234
master-port = 3306
# 可選:只同步特定資料庫
replicate-do-db = mydb
重啟 Slave,自動連線 Master 開始同步。
-- Master
SHOW MASTER STATUS;
-- 記下 File、Position
-- Slave
SHOW SLAVE STATUS\G
-- 關鍵欄位:
-- Slave_IO_Running: Yes
-- Slave_SQL_Running: Yes
-- Seconds_Behind_Master: 0
SHOW SLAVE STATUS 的 Last_Error、Last_IO_Error;檢查防火牆 3306、帳號密碼、server-id 唯一性。master.info 紀錄舊參數,需停止 Slave → 刪除 master.info → 重啟 Slave。嚴禁兩台伺服器同時對同一資料寫入!若作業系統鎖機制失效,會導致資料損毀。單向主從架構下,唯有 Master 可寫入,Slave 僅接收同步。