CentOS 7 MySQL主从配置详解

CentOS 7 MySQL主从复制配置指南

环境准备

部署MySQL主从复制前,需准备两台CentOS 7服务器并安装相同版本的MySQL服务。主从服务器需保证网络互通,建议关闭防火墙或开放3306端口。


# 关闭防火墙(临时生效)
systemctl stop firewalld

# 永久禁用防火墙
systemctl disable firewalld

主库配置

编辑主库MySQL配置文件/etc/my.cnf,添加以下参数:


[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW

重启MySQL服务并创建用于复制的账户:


systemctl restart mysqld
mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'P@ssw0rd';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
mysql> FLUSH PRIVILEGES;

记录主库二进制日志状态:

mysql> SHOW MASTER STATUSG

从库配置

修改从库配置文件/etc/my.cnf


[mysqld]
server-id=2
relay-log=mysql-relay-bin
read-only=1

重启服务并配置同步参数:


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;

启动从库复制进程:

mysql> START SLAVE;

验证同步状态

检查从库复制状态:

mysql> SHOW SLAVE STATUSG

确认Slave_IO_RunningSlave_SQL_Running均为Yes状态,且Seconds_Behind_Master值接近0。

故障排查

  • 网络连接检查:确保主从服务器间3306端口可通信
  • 账户权限验证:确认复制账户具有REPLICATION SLAVE权限
  • 日志定位:核对MASTER_LOG_FILE和MASTER_LOG_POS参数准确性
  • 错误日志分析:查看/var/log/mysqld.log获取详细错误信息

同步机制优化

根据业务需求调整以下参数:


# 主库配置
binlog_expire_logs_seconds=604800 # 日志保留7天
sync_binlog=1 # 每次写入同步二进制日志

# 从库配置
relay_log_recovery=1 # 启用中继日志自动恢复
slave_parallel_workers=4 # 启用并行复制

寰宇互联服务器4核4G云服务器1元/月,网络稳定、抗DDos、国际BGP、性能强劲,十年服务经验QQ:97295700 微信:huanidc

阅读剩余
THE END