在CentOS系统上配置MySQL主从复制(MasterSlave Replication)是实现数据库高可用性和负载均衡的常见方法,以下是关于如何在CentOS上设置MySQL主从复制的详细步骤:
1、安装MySQL

在两台服务器上分别执行以下命令安装MySQL
- sudo yum install y mysqlserver
启动并启用MySQL服务
- sudo systemctl start mysqld
- sudo systemctl enable mysqld
2、配置主服务器(Master)
登录MySQL
- mysql u root p
创建用于复制的用户并授权
- CREATE USER 'replica'@'%' IDENTIFIED BY 'password';
- GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
- FLUSH PRIVILEGES;
查看主服务器状态和位置信息

- SHOW MASTER STATUS;
记录下File
和Position
的值,后续配置从服务器时会用到。
修改主服务器配置文件/etc/my.cnf
- [mysqld]
- serverid=1
- logbin=mysqlbin
重启MySQL服务使配置生效
- sudo systemctl restart mysqld
3、配置从服务器(Slave)
登录MySQL
- mysql u root p
停止从服务器的MySQL服务

- STOP SLAVE;
配置从服务器
- CHANGE MASTER TO MASTER_HOST='主服务器IP', MASTER_USER='replica', MASTER_PASSWORD='password', MASTER_LOG_FILE='记录的File值', MASTER_LOG_POS=记录的Position值;
启动从服务器的复制功能
- START SLAVE;
查看从服务器状态
- SHOW SLAVE STATUS \G;
确认Slave_IO_Running
和Slave_SQL_Running
都为Yes
。
4、测试主从复制
在主服务器上创建一个数据库或表,并在从服务器上检查是否成功复制。
5、常见问题及解决方法
问题1:从服务器无法连接到主服务器
解决方法:检查防火墙设置,确保主服务器的3306端口开放;检查主从服务器之间的网络连接是否正常;确认从服务器配置中的MASTER_HOST
、MASTER_USER
、MASTER_PASSWORD
等信息是否正确。
问题2:复制过程中出现数据不一致
解决方法:检查主从服务器的版本是否一致;确认主服务器上的操作是否都被正确记录到二进制日志中;在从服务器上执行STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE;
跳过不一致的数据。
以下是两个相关问答FAQs:
1、问:如何监控MySQL主从复制的状态?
答:可以通过在主从服务器上分别执行SHOW MASTER STATUS;
和SHOW SLAVE STATUS \G;
来查看主从复制的状态,还可以使用第三方工具如Nagios、Zabbix等进行监控。
2、问:如果需要切换主从服务器的角色,应该如何操作?
答:首先需要停止主从复制,然后将原主服务器设置为从服务器,将原从服务器设置为新的主服务器,具体步骤包括修改配置文件中的serverid
,重新配置主从关系,并重新启动MySQL服务。