HCRM博客

如何在CentOS系统上设置MySQL主从复制?

在CentOS上搭建MySQL主从复制环境,可以增强数据库的可用性、负载均衡和数据冗余,以下是一个详细的步骤指南,包括环境准备、主节点配置、从节点配置以及常见问题解答:

一、环境准备

1、操作系统:两台运行CentOS 7的服务器,确保它们在同一个局域网中,并且可以相互通信。

如何在CentOS系统上设置MySQL主从复制?-图1
(图片来源网络,侵权删除)

2、IP地址:为每台服务器分配唯一的IP地址,例如主节点(Master)为192.168.70.114,从节点(Slave)为192.168.70.115

3、MySQL版本:建议在两台服务器上安装相同版本的MySQL,以避免兼容性问题,可以从MySQL官方网站下载YUM源并安装MySQL 5.7或更高版本。

二、主节点配置

1、修改配置文件:编辑主节点的MySQL配置文件/etc/my.cnf,添加以下配置以启用二进制日志和设置服务器ID。

   [mysqld]
   logbin=masterbin
   binlogformat=ROW
   serverid=1

保存并关闭文件。

2、重启MySQL服务:执行以下命令重启MySQL服务,使配置生效。

   sudo systemctl restart mysqld

3、创建同步用户:登录MySQL控制台,创建一个用于从节点连接的同步用户,并授予必要的权限。

如何在CentOS系统上设置MySQL主从复制?-图2
(图片来源网络,侵权删除)
   CREATE USER 'repl'@'%' IDENTIFIED BY 'strong_password';
   GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
   FLUSH PRIVILEGES;

4、查看主节点状态:执行以下命令获取主节点的二进制日志文件名和位置。

   SHOW MASTER STATUS;

记下输出中的FilePosition值,稍后在从节点配置中会用到。

三、从节点配置

1、修改配置文件:编辑从节点的MySQL配置文件/etc/my.cnf,添加以下配置以启用二进制日志和设置服务器ID(确保与主节点不同)。

   [mysqld]
   logbin=slavebin
   binlogformat=ROW
   serverid=2

保存并关闭文件。

2、重启MySQL服务:执行以下命令重启MySQL服务,使配置生效。

   sudo systemctl restart mysqld

3、配置主从同步:登录从节点的MySQL控制台,执行以下命令连接到主节点,并指定要同步的日志文件和位置。

如何在CentOS系统上设置MySQL主从复制?-图3
(图片来源网络,侵权删除)
   CHANGE MASTER TO
       MASTER_HOST='192.168.70.114',
       MASTER_USER='repl',
       MASTER_PASSWORD='strong_password',
       MASTER_LOG_FILE='masterbin.000002',
       MASTER_LOG_POS=154;

注意:将MASTER_HOSTMASTER_USERMASTER_PASSWORDMASTER_LOG_FILEMASTER_LOG_POS替换为实际的主节点信息。

4、启动从节点:执行以下命令启动从节点的复制进程。

   START SLAVE;

5、查看从节点状态:执行以下命令查看从节点的复制状态。

   SHOW SLAVE STATUS\G;

确认Slave_IO_RunningSlave_SQL_Running都显示为Yes,表示复制已成功建立。

四、验证主从复制

1、在主节点上插入数据:在主节点的某个数据库中插入一条记录,

   USE wyl;
   INSERT INTO test_table (id, name) VALUES (1, 'Test');

2、在从节点上查询数据:切换到从节点,查询相同的表,确认数据是否已同步。

   USE wyl;
   SELECT * FROM test_table;

如果从节点能够查询到刚在主节点上插入的数据,说明主从复制配置成功。

五、常见问题及解决方案

Q1: 从节点无法连接到主节点怎么办?

A1: 检查以下几点:

确保主节点的防火墙允许从节点的IP地址访问MySQL端口(默认3306)。

确认主节点的MySQL服务正在运行,并且网络连接正常。

检查从节点上的CHANGE MASTER TO语句中的参数是否正确。

Q2: 从节点复制延迟严重怎么办?

A2: 复制延迟可能由多种因素引起,包括但不限于网络延迟、主节点负载过高、从节点性能不足等,可以尝试以下方法优化:

提高从节点的硬件配置。

优化主节点的查询性能,减少锁等待时间。

调整MySQL的复制相关参数,如sync_binloginnodb_flush_log_at_trx_commit等。

如果可能,考虑使用更高效的复制拓扑结构,如多源复制或GTID复制。

通过以上步骤,您可以在CentOS上成功搭建MySQL主从复制环境,并根据需要进行调整和优化。

分享:
扫描分享到社交APP
上一篇
下一篇