VPS测评 VPS推荐 VPS优惠
Linux运维

MYSQL数据库的级联复制配置教程

MYSQL实现三台主机的级联复制,数据从master 复制到slave1,再由slave1复制到slave2。

配置方法和一般的主从复制架构一样。

唯一的区别就是中间节点必须开启log_slave_updates选项。

此选项在MYSQL8.0中为默认值,可以不用人为添加。

实现级联复制

准备三台服务器,服务器租用的按时计费的vultr AMD

master: 45.63.34.240

slave1: 66.42.75.199

slave2: 149.248.44.24

操作系统环境:8 Stream x64

永久关闭防火墙(如果你的云服务器有的话)

systemctl disable --now firewalld

安装MYSQL

yum -y install mysql-server

master配置

[mysqld]
server-id=240 #一般用ip最后一段作为服务器id
log-bin

slave1配置(中间节点)

[mysqld]
server-id=199
log-bin
read-only
log_slave_updates

slave2配置

[mysqld]
server-id=24
log-bin
read-only

重启MYSQL服务

systemctl restart mysqld

登录master数据库

登录master节点观察目前二进制日志文件的名称和位置,记住000002,156这个位置。

mysql> show master logs;
+------------------+-----------+-----------+
| Log_name         | File_size | Encrypted |
+------------------+-----------+-----------+
| vultr-bin.000001 |       179 | No        |
| vultr-bin.000002 |       156 | No        |
+------------------+-----------+-----------+
2 rows in set (0.00 sec)

在master节点创建复制账号并授权

CREATE USER repluser@66.42.75.199 identified by '123456';
GRANT replication slave on *.* TO repluser@66.42.75.199;

登录slave1数据库

在slave1连接主节点

CHANGE REPLICATION SOURCE TO SOURCE_HOST='45.63.34.240',
SOURCE_USER='repluser',
SOURCE_PASSWORD='123456',
SOURCE_LOG_FILE='vultr-bin.000002',
SOURCE_LOG_POS=156;

开始复制

START REPLICA;

查看复制状态

SHOW REPLICA STATUS\G
IO和SQL线程的状态是YES,说明复制没有什么错误

在slave1节点观察二进制日志位置

mysql> SHOW MASTER LOGS;
+------------------+-----------+-----------+
| Log_name         | File_size | Encrypted |
+------------------+-----------+-----------+
| vultr-bin.000001 |       179 | No        |
| vultr-bin.000002 |       156 | No        |
+------------------+-----------+-----------+

在slave1节点创建复制账号并授权

CREATE USER repluser@149.248.44.24 identified by '123456';
GRANT replication slave on *.* TO repluser@149.248.44.24;

登录slave2数据库

在slave2节点连接slave1节点

CHANGE REPLICATION SOURCE TO SOURCE_HOST='66.42.75.199',
SOURCE_USER='repluser',
SOURCE_PASSWORD='123456',
SOURCE_LOG_FILE='vultr-bin.000002',
SOURCE_LOG_POS=156;

开始复制

START REPLICA;

查看复制状态

SHOW REPLICA STATUS\G
IO和SQL线程的状态是YES,说明复制没有什么错误

三个节点到这里就差不多配置好了。

现在做测试,在master节点创建一个数据库

CREATE DATABASE frog1;

在slave1节点观察,数据已经同步

在slave2节点观察,数据已经同步

在master节点修改的数据,成功同步到了slave1和slave2,说明级联复制搭建成功。

未经允许不得转载:青蛙主机 » MYSQL数据库的级联复制配置教程

VPS相关常用工具

PING测试工具自用毛子接码站