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

CentOS 7.2 Yum 安裝 MySQL 5.6 並配置主從同步完整實戰

     編輯:MySQL 資料庫相關知識

軟件源配置

啟用 CentOS SCLo 源獲取 MySQL 5.6 官方構建:

yum -y install centos-release-scl-rh centos-release-scl

# 設置優先級並禁用默認啟用 (按需啟用)
sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/CentOS-SCLo-scl.repo
sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-SCLo-scl.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo

MySQL 5.6 安裝與初始化

# 安裝
yum --enablerepo=centos-sclo-rh -y install rh-mysql56-mysql-server

# 載入環境變量 (scl 機制)
scl enable rh-mysql56 bash
mysql -V
# mysql Ver 14.14 Distrib 5.6.26

# 持久化環境變量
cat > /etc/profile.d/rh-mysql56.sh <<'EOF'
#!/bin/bash
source /opt/rh/rh-mysql56/enable
export X_SCLS="`scl enable rh-mysql56 'echo $X_SCLS'`"
EOF
chmod +x /etc/profile.d/rh-mysql56.sh

基礎配置與安全加固

# 配置字符集
vi /etc/opt/rh/rh-mysql56/my.cnf.d/mysql-server.cnf
# [mysqld] 區段添加
character-set-server=utf8

# 啟動並設置開機自啟
systemctl start rh-mysql56-mysqld
systemctl enable rh-mysql56-mysqld

# 安全向導
mysql_secure_installation
# 設置 root 密碼、移除匿名用戶、禁止遠程 root、刪除 test 庫、重載權限

防火牆放行

firewall-cmd --add-service=mysql --permanent
firewall-cmd --reload

主從同步配置實戰

拓撲規劃

  • Master: linuxprobe (10.1.1.53) → server-id=101
  • Slave: vdevops (10.1.1.56) → server-id=102, read_only=1

Master 配置

vi /etc/opt/rh/rh-mysql56/my.cnf.d/mysql-server.cnf
# [mysqld]
log-bin=mysql-bin
server-id=101

systemctl restart rh-mysql56-mysqld

# 創建同步用戶
mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Slave 配置

vi /etc/opt/rh/rh-mysql56/my.cnf.d/mysql-server.cnf
# [mysqld]
log-bin=mysql-bin
server-id=102
read_only=1
report-host=node01.srv.world

systemctl restart rh-mysql56-mysqld

數據同步與啟動

# Master: 鎖表備份
mysql -u root -p
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;  -- 記錄 File: mysql-bin.000001, Position: 400
EXIT

mysqldump -u root -p --all-databases --lock-all-tables --events > mysql_dump.sql

# 解鎖
mysql -u root -p -e "UNLOCK TABLES;"

# 傳輸備份文件
scp mysql_dump.sql vdevops:/tmp/

# Slave: 導入數據
mysql -u root -p < /tmp/mysql_dump.sql

# 配置同步位點並啟動
mysql -u root -p
CHANGE MASTER TO
  MASTER_HOST='10.1.1.53',
  MASTER_USER='replica',
  MASTER_PASSWORD='password',
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=400;
START SLAVE;

# 驗證
SHOW SLAVE STATUS\G
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes
# Seconds_Behind_Master: 0

關鍵驗證指標

指標正常值異常含義
Slave_IO_RunningYesI/O 線程連接主庫正常
Slave_SQL_RunningYesSQL 線程重放正常
Seconds_Behind_Master0 或小值大值表示延遲,需檢查慢查詢/鎖爭用
Last_IO_Error / Last_SQL_Error空非空即具體錯誤信息

總結

基於 SCLo 的 MySQL 5.6 安裝路徑隔離 (/opt/rh/rh-mysql56),多版本共存無衝突。主從配置核心在於:server-id 唯一、log-bin 啟用、同步用戶權限最小化、備份位點精確記錄、防火牆雙向放行。生產環境建議引入 GTID 模式簡化故障切換。

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