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

MySQL 5.6 主從復制(讀寫分離)完整配置指南:基於 Binlog 的標準化部署

     編輯:MySQL 綜合教學

MySQL 5.6 主從復制(讀寫分離)完整配置指南:基於 Binlog 的標準化部署

MySQL 5.6 支援 Binlog 與 GTID 兩種復制模式。GTID 不支援臨時表,生產環境仍以 Binlog 位點模式為主。本文提供 14 步標準化部署流程、雙端配置模板、驗證方法與常見坑點。

架構規劃

  • Master: 192.168.1.100
  • Slave: 192.168.1.101
  • 版本: MySQL 5.6.18 RPM 安裝

14 步部署流程

  1. 雙端安裝 MySQL,刪除默認 /usr/my.cnf,部署優化版 /etc/my.cnf
  2. Master 配置:server-id=1、log-bin=mysqlmaster-bin.log、sync_binlog=1
  3. Slave 配置:server-id=2、log-bin=mysqlslave-bin.log、sync_binlog=1
  4. 雙端重啟:service mysql restart
  5. Master 建復制帳號:GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.101' IDENTIFIED BY '111111';
  6. Master 鎖表獲取位點:FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; 記錄 File、Position
  7. Master 全量備份:mysqldump --all-databases --triggers --routines --events > all.sql(共享存儲或 scp 傳遞)
  8. Master 解鎖:UNLOCK TABLES;
  9. Slave 導入備份:mysql < all.sql
  10. Slave 配置復制源:
    CHANGE MASTER TO
        MASTER_HOST='192.168.1.100',
        MASTER_USER='repl',
        MASTER_PASSWORD='111111',
        MASTER_LOG_FILE='mysqlmaster-bin.000004',
        MASTER_LOG_POS=327;
  11. 啟動復制:START SLAVE;
  12. 驗證狀態:SHOW SLAVE STATUS\G 確認 Slave_IO_Running: Yes、Slave_SQL_Running: Yes
  13. 業務驗證:Master 寫入 → Slave 秒級同步
  14. 運維提示:查詢高峰可 STOP SLAVE 暫停,低峰 START SLAVE 追趕,不丟數據

關鍵配置模板(雙端通用優化版)

[mysqld]
server-id=1/2
log-bin=mysqlmaster-bin/mysqlslave-bin
sync_binlog=1
binlog_format=mixed
expire-logs-days=10
skip-name-resolve
lower_case_table_names=1
log_bin_trust_function_creators=1

innodb_buffer_pool_size=2G
innodb_log_file_size=10M
innodb_flush_log_at_trx_commit=1
innodb_file_per_table=1

max_connections=500
thread_cache_size=8
query_cache_size=32M

# Master 獨有
binlog-ignore-db=mysql,information_schema

# Slave 獨有
replicate-ignore-db=mysql,information_schema
# skip-slave-start  防止啟動自動拉取,手動控制

常見坑點

現象原因解決
Slave_IO_Running: Connecting網絡/防火牆/帳號密碼/主機名解析telnet 3306、檢查 GRANT host、skip-name-resolve
Slave_SQL_Running: No數據衝突/臨時表/非確定性函數跳過事務、改用 ROW 格式、避免 UUID()/NOW()
Seconds_Behind_Master 巨大長 SQL/大事務/硬件瓶頸優化慢查詢、升級從庫配置、並行復制 (5.7+)
GTID 模式報錯使用了臨時表改用 Binlog 模式或避免臨時表

官方文檔

MySQL 5.6 Replication Reference

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