Mysql Group Replication 搭建集群(主从数据同步)

        在mysql5.7以上,mysql支持使用组复制插件和克隆插件去完成集群搭建和数据同步。本次搭建两台服务器,两台服务器都作为主机进行数据同步,我的两台服务器的ip分别是10.5.2.103和10.5.2.104;我的mysql使用的是docker部署的(mysql采用host模式,使用docker自定义网卡没有搭建成功),请注意搭建集群需要两台服务器的mysql是互通的,Mysql Group Replication默认使用的端口是33061;

1.主从配置

主机1配置

主机1的docker-compose.yml文件配置如下:

主机2的my.cnf配置如下:

主机2配置

主机2的docker-compose.yml文件配置如下:

主机2的my.cnf文件配置:

2.搭建步骤

使用docker部署,需要使用docker exec -it  <容器id>    /bin/bash   命令进入容器后使用  mysql -uroot -p 命令连接数据库后执行如下操作,因为我在搭建的时候,主库已经有了一部分数据,所以执行了克隆操作,如果两个数据不存在数据差异可以忽略克隆操作。

1.在两台服务器安装复制和克隆插件命令:

INSTALL PLUGIN group_replication SONAME 'group_replication.so';
INSTALL PLUGIN clone SONAME 'mysql_clone.so';

2.主服务器添加复制用户并分配权限命令:

CREATE USER 'repluser'@'%' IDENTIFIED BY 'replpassword';
GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%';
FLUSH PRIVILEGES;

3.主服务器添加克隆用户命令并分配权限:

CREATE USER 'clone_user'@'%' IDENTIFIED BY 'your_password';
GRANT BACKUP_ADMIN, CLONE_ADMIN ON *.* TO 'clone_user'@'%';
FLUSH PRIVILEGES;

4.主服务器启动复制组命令:

SET GLOBAL group_replication_bootstrap_group = ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group = OFF;

5.查看复制组状态命令:

SELECT * FROM performance_schema.replication_group_members;

6.从服务器添加复制用户命令:

CHANGE MASTER TO MASTER_USER='repluser', MASTER_PASSWORD='replpassword' FOR CHANNEL 'group_replication_recovery';

7.从机克隆主库命令:

SET GLOBAL clone_valid_donor_list = '192.168.1.110:3306';
CLONE INSTANCE FROM 'clone_user'@'10.5.2.103':3306 IDENTIFIED BY 'your_password';

上述中192.168.1.110:3306是的主库地址和端口,执行CLONE INSTANCE命令后数据库会进行克隆,需要等待一会,数据库克隆完成之后会断开连接。

8.从库启动复制组命令:

START GROUP_REPLICATION;

9.查看从库复制组状态命令

SELECT * FROM performance_schema.replication_group_members;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值