MySQL 5.7 主从复制 GTID

GTID中slave端的binlog是必须开启的,目的是记录执行过的GTID

主库
#开启gtid
log-bin=mysql-bin
expire_logs_days = 5
binlog_format=mixed
server-id = 1
gtid_mode=on
enforce_gtid_consistency=true
log_slave_updates=on


#授权从库复制账号
grant replication slave on *.* to 'slave'@'%' identified by 'goodluck' ;


从库:
#开启gtid
log-bin=mysql-bin
expire_logs_days = 5
binlog_format=mixed
server-id = 2
gtid_mode=on
enforce_gtid_consistency=true
log_slave_updates=on


#从库配置连接主库
change master to master_host="主库IP",master_port=5506,MASTER_USER='slave',MASTER_PASSWORD='goodluck',MASTER_AUTO_POSITION=1;
flush privileges;
show slave status\G

#查看连接主库的配置
select * from mysql.slave_master_info;

 

将传统复制切换到GTID复制
在主从库执行 set global enforce_gtid_consistency=WARN;
在主从库执行 set global enforce_gtid_consistency=on;
在主从库执行 set @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;
在从库执行 set @@GLOBAL.GTID_MODE = ON_PERMISSIVE;
在主库执行 set @@GLOBAL.GTID_MODE = ON_PERMISSIVE;
查看 show status like 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';是否为0,等于0是表示所有连接都转为gtid复制
主从库执行 set global gtid_mode=on;
主从库执行 set global master_info_repository = 'TABLE';
主从库执行 set global relay_log_info_repository = 'TABLE';
在从库执行
stop slave;
change master to master_auto_position=1;
start slave;
更改配置文件my.cnf ,同开始。

参考:
https://blog.csdn.net/wjw465150/article/details/127043721
https://baijiahao.baidu.com/s?id=1724704235787909853&wfr=spider&for=pc
https://blog.csdn.net/weixin_36462703/article/details/113936852
https://www.jianshu.com/p/7e7935df249d

posted @ 2022-12-03 19:29  莫让年华付水流  阅读(146)  评论(0编辑  收藏  举报