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

MySQL 主從複寫部署手冊:從安裝到驗證的標準化流程

     編輯:MySQL 資料庫相關知識

環境規劃

角色IPServer ID
Master10.130.30.2121
Slave10.130.30.2142

軟體安裝(RHEL 5 x86_64,RPM 方式)

rpm -ivh MySQL-server-community-5.1.30-0.rhel5.x86_64.rpm \
         MySQL-client-community-5.1.30-0.rhel5.x86_64.rpm
mysqladmin -u root password 'wlsun'

Master 配置

cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
vi /etc/my.cnf
# [mysqld] 區段新增:
log-bin=mysql-bin
binlog-ignore-db=mysql
server-id=1
service mysql restart
mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'10.130.30.214' IDENTIFIED BY 'replication';
SHOW MASTER STATUS;
# 記錄 File 與 Position(如 mysql-bin.000005, 106)

Slave 配置

cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
vi /etc/my.cnf
# [mysqld] 區段新增/修改:
server-id=2
master-host=10.130.30.212
master-user=replication
master-password=replication
master-port=3306
# 建議補全:
relay-log=mysql-relay-bin
log-slave-updates=1
read-only=1
skip-slave-start=1
service mysql restart
mysql -u root -p
STOP SLAVE;
CHANGE MASTER TO
  MASTER_HOST='10.130.30.212',
  MASTER_PORT=3306,
  MASTER_USER='replication',
  MASTER_PASSWORD='replication',
  MASTER_LOG_FILE='mysql-bin.000005',
  MASTER_LOG_POS=106;
START SLAVE;
SHOW SLAVE STATUS\G
# 確認 Slave_IO_Running=Yes, Slave_SQL_Running=Yes

驗證測試

# Master 建庫建表寫入
CREATE DATABASE lingfeng;
USE lingfeng;
CREATE TABLE userid (id INT);
INSERT INTO userid VALUES (1),(2),(3),(4),(5);

# Slave 查詢
USE lingfeng;
SELECT * FROM userid;
# 應回傳 5 筆資料

生產環境強化清單

  • GTID 模式(MySQL 5.6+):gtid_mode=ON; enforce_gtid_consistency=ON,簡化故障切換。
  • 半同步複寫:rpl_semi_sync_master_enabled=1,降低資料遺失風險。
  • 複寫過濾:replicate-do-db/replicate-ignore-db 控制同步範圍。
  • 監控告警:Seconds_Behind_Master、Slave_IO_Running、Slave_SQL_Running 接入 Prometheus/Grafana。
  • 備份策略:Slave 端定時 mysqldump --single-transaction --master-data=2 或 Percona XtraBackup 熱備。

常見故障快速排查

現象可能原因處理
IO_Running=No網路不通、認證失敗、Master binlog 損壞檢查防火牆、CHANGE MASTER TO 重指定 File/Pos
SQL_Running=No主鍵衝突(1062)、DDL 不相容、外鍵失敗SET GLOBAL sql_slave_skip_counter=1 或重建 Slave
延遲飆高長事務、無索引大量更新、Slave 規格不足優化 SQL、升級硬體、啟用並行複寫 slave_parallel_workers
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved