首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 主從複制配置實戰:從 5.1 到 5.6 跨版本部署

     編輯:MySQL 綜合教學

MySQL 主從複制配置實戰:從 5.1 到 5.6 跨版本部署

本文記錄一次在測試環境(主庫 MySQL 5.6、從庫 MySQL 5.1)部署主從複制的完整過程,包含配置檔修改、資料同步、賬號授權、狀態驗證等關鍵步驟,並特別強調「先同步資料再啟動複制」這一易被忽略的核心細節。

環境說明

  • 主庫:MySQL 5.6,IP 192.168.146.120,資料庫 wx
  • 從庫:MySQL 5.1,需同步 wx 庫

1. 主庫配置(my.cnf)

[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-do-db = wx
  • server-id:集群內唯一標識
  • log-bin:啟用二進制日誌
  • binlog-do-db:僅記錄指定庫的變更

2. 從庫配置(my.ini)

[mysqld]
server-id = 2
log-bin = mysql-bin
replicate-do-db = wx

replicate-do-db 告訴從庫只回放 wx 庫的事件。

3. 關鍵步驟:主庫資料先行同步到從庫

⚠️ 必須先完成此步,否則後續報錯極難排查!

可用 mysqldump 導出主庫 wx 庫,再在從庫導入:

# 主庫導出
mysqldump -uroot -p wx > wx_backup.sql

# 從庫導入
mysql -uroot -p wx < wx_backup.sql

4. 主庫建立複制專用賬號

GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' IDENTIFIED BY '123';

5. 記錄主庫二進制日誌位置

SHOW MASTER STATUS\G
-- 輸出示例
File: mysql-bin.000003
Position: 256
Binlog_Do_DB: wx

File 與 Position 將用於從庫定位同步起點。

6. 從庫關聯主庫並啟動複制

CHANGE MASTER TO
  MASTER_HOST = '192.168.146.120',
  MASTER_USER = 'replication',
  MASTER_PASSWORD = '123',
  MASTER_LOG_FILE = 'mysql-bin.000003',
  MASTER_LOG_POS = 256;

START SLAVE;

7. 驗證複制狀態

SHOW SLAVE STATUS\G

重點檢查兩個 Yes:

  • Slave_IO_Running: Yes — I/O 執行緒正常連接主庫
  • Slave_SQL_Running: Yes — SQL 執行緒正常回放日誌

若均為 Yes 且 Seconds_Behind_Master: 0,代表複制運行正常、無延遲。

8. 實測驗證

在主庫 wx 庫任意表插入一筆資料,從庫瞬間可查詢到,確認複制鏈路通暢。

常見坑點總結

  1. 未先同步基線資料:導致從庫啟動時找不到對應表,報錯 Table doesn't exist。
  2. server-id 重複:主從必須不同。
  3. 防火牆阻擋 3306 埠:需開放主庫對從庫 IP 的入站規則。
  4. 版本差異導致語法不兼容:5.1→5.6 通常向下兼容,但建議測試環境先驗證。

主從複制是 MySQL 高可用與讀寫分離的基石,掌握標準化部署流程能有效避免生產事故。

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