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

Ubuntu 14.04 配置 MySQL 5.5 主從複製:從環境準備到驗證的完整步驟

     編輯:MySQL 綜合教學

環境資訊

項目MasterSlave
OSUbuntu 14.04 LTS
MySQL5.5.37
IP192.168.63.133192.168.63.134
Port3306
同步庫backup
複製帳號suxh / 111111

步驟 1:主從資料一致性初始化

在啟動複製前,確保 Slave 擁有與 Master 完全一致的 backup 庫資料。可用 mysqldump 導出並導入,或直接複製 datadir(需停庫)。

步驟 2:配置 Master(/etc/my.cnf)

[mysqld]
# 啟用二進制日誌,採用 MIXED 格式兼顧效能與一致性
binlog_format = mixed

# 忽略系統庫,僅同步業務庫
binlog-ignore-db = mysql
binlog-do-db = backup

# 唯一 server_id(1~2^32-1),Master 預設 1
server-id = 1

修改後重啟:service mysql restart

步驟 3:配置 Slave(/etc/my.cnf)

MySQL 5.1.7+ 不再支援配置檔指定 master-host 等參數,僅需設定唯一 server-id:

[mysqld]
server-id = 2

重啟:service mysql restart

步驟 4:在 Slave 執行 CHANGE MASTER 並啟動複製

mysql -u root -p
CHANGE MASTER TO
  MASTER_HOST = '192.168.63.133',
  MASTER_USER = 'suxh',
  MASTER_PASSWORD = '111111',
  MASTER_PORT = 3306,
  MASTER_LOG_FILE = 'mysql-bin.000001',   -- 在 Master 執行 SHOW MASTER STATUS 獲取
  MASTER_LOG_POS = 107;

START SLAVE;

步驟 5:驗證複製狀態

SHOW SLAVE STATUS\G

關鍵指標均為 Yes 表示正常:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes
  • Seconds_Behind_Master: 0

常見問題排查

現象可能原因處理
IO_Running = No網路不通/帳號密碼錯誤/MASTER_LOG_FILE/POS 錯誤檢查防火牆、重新 CHANGE MASTER
SQL_Running = No執行衝突/重複鍵/外鍵約束查看 Last_SQL_Error,手動修復或跳過
Seconds_Behind_Master 偏大Slave 機能不足/長事務/大批量 DML優化 SQL、升級硬體、調整 parallel replication

進階建議(生產環境)

  • 啟用 log_slave_updates=1 支援鏈式複製
  • 設定 sync_binlog=1、innodb_flush_log_at_trx_commit=1 保證持久化
  • 使用 GTID(MySQL 5.6+)簡化故障切換與拓撲變更
  • 部署監控:Seconds_Behind_Master、Slave_IO_Running、Slave_SQL_Running 告警
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved