mysql(五)全同步复制(组复制)

实验环境

server1 172.25.254.10master
server2 172.25.254.20slave
server3 172.25.254.30slave

将之前的实验环境都清空
server1和server2上的/var/lib/mysql下的内容清空
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

组复制(全同步)

(1)在server1上面进行设置(组同步的发起者)

vim /etc/mysql.cnf
先删掉之前实验加入的内容,然后加入下面的东西
server_id=1第一个节点
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE #关闭binlog校验
log_slave_updates=ON
log_bin=binlog

binlog_format=ROW#组复制依赖基于行的复制格式
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="查出来的uuid"##可以看/var/lib/mysql/auto.cnf
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "172.25.254.10:33061"当前节点的ip
loose-group_replication_group_seeds="172.25.254.10:33061,172.25.254.20:33061,172.25.254.30:33061"
loose-group_replication_bootstrap_group=off
##插件是否自动引导,这个选项一般都要off掉,只需要由发起组复制的节点开启,并只启动一次,如果是on,下次再启动时,会生成一个同名的组,可能会发生脑裂
loose-group_replication_ip_whitelist="127.0.0.1,172.25.254.0/24"
loose-group_replication_enforce_update_everywhere_checks=ON
loose-group_replication_single_primary_mode=OFF#后两行是开启多主模式的参数

在这里插入图片描述

开启mysql服务 systemctl restart mysqld
查看临时密码grep password /var/log/mysqld.log复制密码
mysql -uroot -p粘贴密码,登录数据库

mysql -uroot -pLIxin123.登录数据库
show databases;查看数据库
SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%' IDENTIFIED BY 'LIxin123.';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='LIxin123.' FOR CHANNEL 'group_replication_recovery';配置用户
INSTALL PLUGIN group_replication SONAME 'group_replication.so';安装组复制插件
SET GLOBAL group_replication_bootstrap_group=ON;在第一个节点上要先打开一次
START GROUP_REPLICATION;开启组复制
SET GLOBAL group_replication_bootstrap_group=OFF; 关闭组复制激活
SELECT * FROM performance_schema.replication_group_members;查看组的状态,当前只有一个节点在线

在这里插入图片描述
(2)在第二个节点server2上面进行配置

vim /etc/my.cnf
复制server1的
systemctl start mysqld
grep password /var/log/mysqld.log

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mysql -uroot -pLIxin123.
SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%' IDENTIFIED BY 'Yan+123kou';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='LIxin123.' FOR CHANNEL 'group_replication_recovery';
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
set global group_replication_allow_local_disjoint_gtids_join=on;
START GROUP_REPLICATION;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)在第三个节点server3上面进行配置

vim /etc/my.cnf
systemctl start mysqld
grep password /var/log/mysqld.log

在这里插入图片描述
在这里插入图片描述

mysql -uroot -pLIxin123.
SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%' IDENTIFIED BY 'Yan+123kou';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='LIxin123.' FOR CHANNEL 'group_replication_recovery';
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
set global group_replication_allow_local_disjoint_gtids_join=on;
START GROUP_REPLICATION;

在这里插入图片描述
(4)在server1上面:查看
在这里插入图片描述
(5)测试:

server2:

CREATE DATABASE test; 创建库
USE test;进入库
CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL);创建表
INSERT INTO t1 VALUES (1, 'Luis');插入数据

在这里插入图片描述
server1和server3均可查看到

在这里插入图片描述

在server3上传数据
在这里插入图片描述

server1和server2均可查看
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值