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

在两台服务器上分别执行以下命令安装MySQL
sudo yum install y mysqlserver启动并启用MySQL服务
sudo systemctl start mysqld
sudo systemctl enable mysqld2、配置主服务器(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 mysqld3、配置从服务器(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服务。
