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

MySQL 主從復制(雙機熱備)部署操作手冊

     編輯:MySQL 資料庫相關知識

架構定義

  • Master (A):192.168.0.217,寫入節點,啟用 Binlog。
  • Slave (B):192.168.0.216,讀取節點,自動回放 Relay Log。

單向復制:Master 寫入 → Binlog → Slave I/O Thread 拉取 → Relay Log → Slave SQL Thread 重放。

Master 配置步驟

  1. 建立同步帳號:GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.216' IDENTIFIED BY '123';
  2. 修改 my.ini [mysqld] 區段:
    server-id=1
    log-bin="C:/mysql-bin.log"
  3. 重啟服務:net stop mysql && net start mysql
  4. 鎖表防寫入:FLUSH TABLES WITH READ LOCK;
  5. 記錄同步座標:SHOW MASTER STATUS; → 記下 File、Position。
  6. 備份資料:mysqldump 或直接複製 data 目錄傳至 Slave。
  7. 解鎖:UNLOCK TABLES;

Slave 配置步驟

  1. 停止服務,修改 my.ini:
    server-id=2
    master-host=192.168.0.217
    master-user=backup
    master-password=123
  2. 啟動服務,登入 MySQL 執行:
    CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106;
  3. 啟動復制:START SLAVE;

驗證與監控

  • Master:SHOW PROCESSLIST; 出現 Binlog Dump 線程表示 Slave 已連線。
  • Slave:SHOW SLAVE STATUS\G 確認 Slave_IO_Running=Yes、Slave_SQL_Running=Yes、Seconds_Behind_Master=0。
  • 測試:Master 建表/插入資料,Slave 秒級同步出現。

常見坑點

  • server-id 雙端必須不同且非 0。
  • 防火牆需放行 3306 埠。
  • Slave 讀寫分離需應用層路由,資料庫層不限制 Slave 寫入(但寫入會破壞一致性)。
  • 網路抖動設定 master-connect-retry、master-retry-count。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved