在Linux环境下搭建MySQL 5.7的一主多从架构,可以有效地提升数据库的读写性能和数据的可靠性。接下来,我们将详细介绍如何配置MySQL主从复制,包含所有必要的步骤和代码示例。

一、环境准备

首先,确保你已经安装了MySQL 5.7,并且对MySQL有基本的了解。本教程将使用两台服务器:一台作为主服务器(Master),另一台作为从服务器(Slave)。

二、主服务器配置

  1. 编辑MySQL配置文件

找到MySQL的配置文件,一般位于/etc/my.cnf/etc/mysql/my.cnf,使用文本编辑器打开并进行以下设置:

ini [mysqld] server-id = 1 # 主服务器ID,必须是唯一的 log_bin = /var/log/mysql/mysql-bin.log # 开启二进制日志 bind-address = 0.0.0.0 # 允许外部连接 binlog-do-db = your_database # 需要复制的数据库

修改完后,保存并关闭文件。

  1. 重启MySQL服务

bash sudo systemctl restart mysql

  1. 创建复制用户

登录MySQL,创建一个用于复制的用户,并授予REPLICATION SLAVE权限:

sql mysql -u root -p

然后输入以下SQL命令:

sql CREATE USER 'replica'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%'; FLUSH PRIVILEGES;

  1. 记录二进制日志位置

在主服务器上,执行以下命令来获取当前的二进制日志文件名和位置:

sql FLUSH TABLES WITH READ LOCK; # 锁定表,确保数据一致性 SHOW MASTER STATUS; # 查看当前的二进制日志文件和位置

记下返回的FilePosition,稍后在从服务器配置时需要用到。

  1. 解除表锁

sql UNLOCK TABLES;

三、从服务器配置

  1. 编辑从服务器配置文件

在从服务器的MySQL配置文件中进行类似的设置:

ini [mysqld] server-id = 2 # 从服务器ID,不能与主服务器相同

同样重启MySQL服务:

bash sudo systemctl restart mysql

  1. 设置主服务器信息

登录到从服务器的MySQL,执行以下命令以设置主服务器的信息:

sql mysql -u root -p

然后输入:

sql CHANGE MASTER TO MASTER_HOST = '主服务器_IP', MASTER_USER = 'replica', MASTER_PASSWORD = 'your_password', MASTER_LOG_FILE = '记录的File', MASTER_LOG_POS = 记录的Position;

例如:

sql CHANGE MASTER TO MASTER_HOST = '192.168.1.100', MASTER_USER = 'replica', MASTER_PASSWORD = 'your_password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 154;

  1. 启动复制进程

执行以下命令启动复制进程:

sql START SLAVE;

  1. 检查复制状态

输入以下命令检查复制的状态:

sql SHOW SLAVE STATUS\G;

如果Slave_IO_RunningSlave_SQL_Running都显示为Yes,这表示复制配置成功。

四、验证主从复制

在主服务器上向数据库中插入一些数据,然后在从服务器上查询,看数据是否能够同步过来。这样,我们就完成了一主多从的MySQL配置。

结语

通过以上步骤,你已经成功地在Linux中配置了MySQL 5.7的一主多从架构。这种架构可以有效地提高系统的整体性能和数据安全性,适用于高并发的应用程序场景。根据业务需求,后续你还可以进行进一步的优化和监控。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部