CentOS 7 MySQL主從復(fù)制配置指南
環(huán)境準(zhǔn)備
部署MySQL主從復(fù)制前,需準(zhǔn)備兩臺CentOS 7服務(wù)器并安裝相同版本的MySQL服務(wù)。主從服務(wù)器需保證網(wǎng)絡(luò)互通,建議關(guān)閉防火墻或開放3306端口。
# 關(guān)閉防火墻(臨時生效)
systemctl stop firewalld
# 永久禁用防火墻
systemctl disable firewalld
主庫配置
編輯主庫MySQL配置文件/etc/my.cnf
,添加以下參數(shù):
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW
重啟MySQL服務(wù)并創(chuàng)建用于復(fù)制的賬戶:
systemctl restart mysqld
mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'P@ssw0rd';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
mysql> FLUSH PRIVILEGES;
記錄主庫二進(jìn)制日志狀態(tài):
mysql> SHOW MASTER STATUSG
從庫配置
修改從庫配置文件/etc/my.cnf
:
[mysqld]
server-id=2
relay-log=mysql-relay-bin
read-only=1
重啟服務(wù)并配置同步參數(shù):
systemctl restart mysqld
mysql> CHANGE MASTER TO
MASTER_HOST='主庫IP',
MASTER_USER='repl',
MASTER_PASSWORD='P@ssw0rd',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
啟動從庫復(fù)制進(jìn)程:
mysql> START SLAVE;
驗(yàn)證同步狀態(tài)
檢查從庫復(fù)制狀態(tài):
mysql> SHOW SLAVE STATUSG
確認(rèn)Slave_IO_Running
和Slave_SQL_Running
均為Yes狀態(tài),且Seconds_Behind_Master
值接近0。
故障排查
- 網(wǎng)絡(luò)連接檢查:確保主從服務(wù)器間3306端口可通信
- 賬戶權(quán)限驗(yàn)證:確認(rèn)復(fù)制賬戶具有REPLICATION SLAVE權(quán)限
- 日志定位:核對MASTER_LOG_FILE和MASTER_LOG_POS參數(shù)準(zhǔn)確性
- 錯誤日志分析:查看
/var/log/mysqld.log
獲取詳細(xì)錯誤信息
同步機(jī)制優(yōu)化
根據(jù)業(yè)務(wù)需求調(diào)整以下參數(shù):
# 主庫配置
binlog_expire_logs_seconds=604800 # 日志保留7天
sync_binlog=1 # 每次寫入同步二進(jìn)制日志
# 從庫配置
relay_log_recovery=1 # 啟用中繼日志自動恢復(fù)
slave_parallel_workers=4 # 啟用并行復(fù)制