mysql级连型复制

Master:server3 172.25.25.3
Master&slave: server2 172.25.25.2
Slave: server1 172.25.25.1
先做好主从复制(基于gtid)
三个主机的配置文件/etc/my.cnf

##以server2为例
server-id=2(三个主机使用不同的数字)
log-bin=mysql-bin

gtid_mode=ON
enforce-gtid-consistency=true

这里写图片描述

Server3
建立用户并授权

 grant replication slave on *.* to 'server'@'172.25.25.%' identified by 'Redhat+123';

这里写图片描述
Server2

# 配置文件 /etc/my.cnf
log-slave-updates
# 重启
/etc/init.d/mysqld restart
# 授权
mysql> grant replication slave on *.* to 'server'@'172.25.25.%' identified by 'Redhat+123';
# 建立连接
mysql> CHANGE MASTER TO MASTER_HOST='172.25.25.3',MASTER_USER='server', mysql> MASTER_PASSWORD='Redhat+123',MASTER_AUTO_POSITION=1;
mysql> Start slave;
mysql> Show slave status\G

这里写图片描述
这里写图片描述
这里写图片描述
Server1
建立连接

mysql> CHANGE MASTER TO MASTER_HOST='172.25.25.2',MASTER_USER='server', mysql> MASTER_PASSWORD='Redhat+123',MASTER_AUTO_POSITION=1;
mysql> Start slave;
mysql> Show slave status\G

这里写图片描述
这里写图片描述
Server3
操作数据库:

mysql> create database test;

这里写图片描述
查看:
这里写图片描述
Server2

[root@server2 ~]# cd /var/lib/mysql
[root@server2 ~]# cat mysql-bin.index
./mysql-bin.000001
./mysql-bin.000002
./mysql-bin.000003
./mysql-bin.000004
./mysql-bin.000005
./mysql-bin.000006
./mysql-bin.000007
./mysql-bin.000008

这里写图片描述

[root@server2 mysql]# mysqlbinlog -v --base64-output=DECODE-ROWS mysql-bin.000008    #最后一个号
可以看见master上面对数据库的操作

这里写图片描述
这里写图片描述
在Server2,server1配置

编辑配置文件vim /etc/my.cnf
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
# 重启
/etc/init.d/mysqld restart

mysql> show processlist;

这里写图片描述
这里写图片描述
这里写图片描述

配置半同步

Server3

# 导入插件
mysql> install plugin rpl_semi_sync_master SONAME 'semisync_master.so';
mysql> set global rpl_semi_sync_master_enabled = 1;

这里写图片描述
Server2

# 导入插件
mysql> install plugin rpl_semi_sync_master SONAME 'semisync_master.so';

mysql> set global rpl_semi_sync_master_enabled = 1;

mysql> install plugin rpl_semi_sync_slave SONAME 'semisync_slave.so';

mysql> set global rpl_semi_sync_slave_enabled = 1;

这里写图片描述
Server1

# 导入插件
mysql> install plugin rpl_semi_sync_slave SONAME 'semisync_slave.so';

mysql> set global rpl_semi_sync_slave_enabled = 1;

mysql> stop slave IO_THREAD;

mysql> start slave IO_THREAD;
# 查看状态
mysql> show status like 'rpl_semi_sync%';

这里写图片描述
这里写图片描述
三个主机查看状态都为 on则配置成功

测试

Server2,关闭slave

mysql> stop slave IO_THREAD;

这里写图片描述
Server3
操作数据库

mysql> create table userlist (
    -> uesrname varchar(8) not null,
    -> password varchar(8) not null);   #需要等待十秒
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| userlist       |
+----------------+

这里写图片描述
这里写图片描述
Server1上查看

mysql> use test;
Database changed
mysql> show tables;    #没有同步,查询不到
Empty set (0.00 sec)

这里写图片描述

Server2
开启slave

mysql> start slave IO_THREAD;

这里写图片描述

Server1
可以同步到server3的数据

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| userlist       |
+----------------+

这里写图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值