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

Windows Server 2003 MySQL 主從單向同步配置全記錄(含故障排查)

     編輯:MySQL 資料庫相關知識

環境準備

角色IPMySQL版本備註
Master192.168.0.15.1.x同版本、同數據庫名、數據一致
Slave192.168.0.25.1.x

Master 端配置

1. 創建同步專用賬號

GRANT REPLICATION SLAVE, RELOAD, SUPER ON *.* 
TO 'backup'@'192.168.0.2' IDENTIFIED BY 'wwwjb51net';
FLUSH PRIVILEGES;

驗證:Slave 端執行 mysql -h 192.168.0.1 -u backup -p 測試連通性。

2. 修改 my.ini([mysqld] 區段)

server-id = 10
log-bin = mysql-bin
log = D:\mysql5.1\logs\mylog.log
# 可選:慢查詢、錯誤日志
# slow_query_log = 1
# slow_query_log_file = D:\mysql5.1\logs\slow.log
# log-error = D:\mysql5.1\logs\error.log

關鍵點:server-id 唯一,不要用默認 1;log-bin 必須開啟。

3. 註冊表修正服務啟動參數

路徑:HKLM\SYSTEM\CurrentControlSet\Services\mysql5.1
修改 ImagePath:
D:\mysql5.1\bin\mysqld --defaults-file="D:\mysql5.1\my.ini" mysql5.1

確保服務讀取正確配置文件。

Slave 端配置

1. 修改 my.ini

[mysqld]
server-id = 11
master-host = 192.168.0.1
master-user = backup
master-password = wwwjb51net
replicate-do-db = jb51
# 可選增強
log-bin = mysql-bin
log-slave-updates = 1
relay_log = mysql-relay-bin
read_only = 1

說明:read_only=1 防止誤寫入;log-slave-updates 支持鏈式復制。

2. 同步註冊表 ImagePath(同 Master)

3. 啟動服務並驗證

net start mysql5.1

同步狀態檢查與故障排查

核心命令

-- Master 端
SHOW MASTER STATUS;

-- Slave 端
SHOW SLAVE STATUS\G

健康標準

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0

常見故障:Slave_SQL_Running: No (Errno 1062)

原因:Slave 端有寫操作導致主鍵衝突、或重啟事務回滾。

修復方案一:重新定位 Binlog 位點(強制同步,可能丟數據)

-- 1. 停止 Slave
STOP SLAVE;

-- 2. Master 獲取當前位點
SHOW MASTER STATUS;
-- 記錄 File, Position

-- 3. Slave 重新指向
CHANGE MASTER TO
MASTER_HOST='192.168.0.1',
MASTER_USER='backup',
MASTER_PASSWORD='wwwjb51net',
MASTER_LOG_FILE='mysql-bin.000020',
MASTER_LOG_POS=135617781;

-- 4. 啟動
START SLAVE;

修復方案二:跳過錯誤事件(風險較低)

STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
START SLAVE;

經驗:方案一徹底但可能丟失未同步數據;方案二不一定有效。建議先試方案二,無效再用方案一。

運行維護建議

  • 監控腳本:定時檢查 Seconds_Behind_Master,超過閾值報警
  • 定期全量校驗:低峰期 FLUSH TABLES WITH READ LOCK + mysqldump 對比核心表 checksum
  • Binlog 清理:Master 設置 expire_logs_days = 7,防止磁碟撐爆
  • 版本一致性:主從版本主版本號必須一致(如 5.1 → 5.1),避免 Binlog 格式不兼容

總結

Windows 下 MySQL 主從配置核心在於:server-id 唯一、log-bin 必開、專用同步賬號、註冊表指定配置文件。故障多集中在 server-id 衝突、防火牆攔截 3306、Slave 端誤寫入。建立「每日巡檢 + 季度演練切換」機制,才能確保同步鏈路真正可靠。

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