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

MySQL 主從同步配置完整教程(基於 5.1 版本實戰)

     編輯:MySQL 資料庫相關知識

本文以雙節點(Master 192.168.124.51 / Slave 192.168.124.52,均為 MySQL 5.1.48)為例,詳細記錄主從同步的配置步驟、驗證方法與常見故障排查。

環境準備

  • Master:192.168.124.51,MySQL 5.1.48-community-log
  • Slave:192.168.124.52,MySQL 5.1.48-community-log
  • 同步庫:database1、database2

一、Master 配置

1. 編輯 /etc/my.cnf([mysqld] 區段)

server-id=1
log-bin=log
binlog-do-db=database1
binlog-do-db=database2
binlog-ignore-db=mysql

2. 建立同步帳號

GRANT REPLICATION SLAVE ON *.* TO 'AffairLog'@'192.168.124.52' IDENTIFIED BY 'password';

3. 重啟服務並查看 Binlog 狀態

service mysql restart;
SHOW MASTER STATUS\G;
-- 記錄 File (如 log.000027) 與 Position (如 3151)

二、Slave 配置

1. 編輯 /etc/my.cnf([mysqld] 區段)

server-id=2
master-host=192.168.124.51
master-user=AffairLog
master-password=password
master-port=3306
master-connect-retry=60
replicate-do-db=database1
replicate-do-db=database2
replicate-ignore-db=mysql

2. 重啟服務並啟動同步

service mysql restart;
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G;

3. 成功標誌

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0

三、常見故障與排查

現象:Slave_IO_Running 或 Slave_SQL_Running 為 No

方法 1:基於 Master 當前 Binlog 手動同步

  1. Master 執行 SHOW MASTER STATUS\G 獲取最新 File、Position。
  2. Slave 停止同步:STOP SLAVE;
  3. 重新指向:
CHANGE MASTER TO
  MASTER_HOST='192.168.124.51',
  MASTER_USER='AffairLog',
  MASTER_PASSWORD='password',
  MASTER_LOG_FILE='log.000027',
  MASTER_LOG_POS=3151;
START SLAVE;

方法 2:跳過錯誤事件(慎用)

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

驗證

再次 SHOW SLAVE STATUS\G 確認雙線程均為 Yes。

四、線程角色說明

  • Slave_IO_Running:連接 Master,讀取 Binlog 寫入本地 Relay Log。
  • Slave_SQL_Running:讀取 Relay Log,執行其中 SQL 事件。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved