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

MySQL 雙機熱備主從配置實戰:從安裝到驗證的標準化步驟

     編輯:MySQL 綜合教學

拓撲

  • Master:生產 MySQL (IP: 123.57.38.*)
  • Slave:備庫 (IP: 123.57.39.*),需預裝 MySQL Server/Client

標準化配置步驟

1. Master 創建複制賬號

CREATE USER 'replica'@'123.57.39.%' IDENTIFIED BY 'replica@123';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'123.57.39.%';
FLUSH PRIVILEGES;

2. Master 配置 my.cnf 並重啟

[mysqld]
server-id=1
log-bin=/var/lib/mysql/binlog/mysql-bin
expire_logs_days=7

注意:log-bin 目錄擁有者必須為 mysql 用戶,否則啟動報錯。

3. Slave 配置 my.cnf 並重啟

[mysqld]
server-id=2
innodb_flush_log_at_trx_commit=2  -- 提升性能,非必需
expire_logs_days=7

4. Master 導出全量數據 (含 Binlog 位置)

mysqldump --master-data=2 --single-transaction --all-databases \
  -uroot -p'password' > replica.sql
  • --master-data=2:輸出 CHANGE MASTER TO 註釋 (含 Binlog 文件/位置)。
  • --single-transaction:InnoDB 一致性備份無阻塞。

5. Slave 導入全量數據

mysql -uroot -p'password' < replica.sql

6. Slave 配置同步起點並啟動

查看 replica.sql 開頭註釋:

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;

在 Slave 執行:

CHANGE MASTER TO
  MASTER_HOST='123.57.38.*',
  MASTER_USER='replica',
  MASTER_PASSWORD='replica@123',
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=107;

7. 啟動同步並驗證

START SLAVE;
SHOW SLAVE STATUS\G

關鍵指標:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0

常見坑點提醒

  • 防火牆/安全組放通 3306 (Master→Slave)。
  • Master bind-address=0.0.0.0 或具體 IP。
  • Slave read_only=ON 防誤寫。
  • 定期監控 Seconds_Behind_Master、Slave_*_Running。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved