萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 主從同步配置實戰:Windows 環境下基於文件位置的單向復制部署

環境信息

  • Master (A):Windows 2003, IP 192.168.100.1, MySQL 4.1.20
  • Slave (B):Windows 2003, IP 192.168.100.2, MySQL 4.1.20

部署步驟

1. Master 創建同步賬號

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 PRIVILEGES;

2. 初始數據同步(關鍵:鎖表保證一致性)

# On Master
FLUSH TABLES WITH READ LOCK;
-- 記錄 SHOW MASTER STATUS\G 的 File/Position
-- 拷貝 datadir 到 Slave(或 mysqldump --master-data=2)
UNLOCK TABLES;

3. Master 配置 my.ini

[mysqld]
server-id = 1
log-bin = C:/mysql/log-bin.log
重啟 Master 服務。

4. Slave 配置 my.ini

[mysqld]
server-id = 2
master-host = 192.168.100.1
master-user = backup
master-password = 1234
master-port = 3306
master-connect-retry = 60
replicate-do-db = backup_db   # 僅同步指定庫
重啟 Slave 服務。

5. 驗證同步

# On Slave
SHOW SLAVE STATUS\G;
-- 關鍵指標:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0

故障排查與維護

  • 同步延遲:檢查 Seconds_Behind_Master,優化從庫長 SQL、升級硬件
  • 配置變更不生效:DataDir 下 master.info 存儲舊配置,修改配置前需 STOP SLAVE; RESET SLAVE; 刪除該文件
  • 手動修正位置:
    CHANGE MASTER TO
      MASTER_LOG_FILE='mysql-bin.000005',
      MASTER_LOG_POS=1234;
    
  • 雙向同步:在兩台互為 Master/Slave,server-id 唯一,auto_increment_increment/offset 交錯配置

升級建議

MySQL 4.1 已停止維護,生產環境請遷移至 5.7/8.0,使用 GTID 複制(MASTER_AUTO_POSITION=1)簡化故障切換與拓撲變更。

copyright © 萬盛學電腦網 all rights reserved