【MySQL运维】主从复制架构修改为MGR架构教程

TangLu MySQL 2022-02-08 1270 0

1、停掉从库slave线程

mysql > stop slave;


2、关闭从库线程自启动,然后重启服务

vi /etc/my.cnf
skip_slave_start = OFF


3、各节点设置group_replication_group_name、group_replication_local_address、group_replication_group_seeds

vi /etc/my.cnf
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"  #GROUP组名,UUID格式,可以select uuid()生成,各节点保持一致
loose-group_replication_local_address="192.168.94.11:33061"  #各节点自身IP和端口,这里的端口用于集群内部通信,不是MySQL提供服务的端口
loose-group_replication_group_seeds="192.168.94.11:33306,192.168.94.12:33306,192.168.94.13:33306"   #种子节点的IP和端口,新节点加入集群时要与种子节点通信,而启动集群的第一个节点不需要做该配置

4、各节点创建组复制用户,并且加入MGR复制通道

mysql > set sql_log_bin = 0;  #避免下面的语句写入到binlog,导致已有这些账号的节点出现主从异常  #新集群可以忽略这步
mysql > grant replication slave on *.* to 'repl'@'192.168.%' identified by '123456'
mysql > grant replication slave on *.* to 'repl'@'localhost' identified by '123456'
mysql > change master to master_user='repl',master_password='123456' for channel 'group_replication_recovery'  #channel是通道的固定名字


5、选取一个节点作为引导节点

mysql > set global group_replication_bootstrap_group = ON ;


6、启动引导节点

mysql > start group_replication;


7、关闭引导

mysql > set global group_replication_bootstrap_group = OFF


8、启动其他节点

mysql > start group_replication;


9、检查MGR集群状态,如果状态都正常的话可以在不同节点新增数据进行测试,看是否正常同步到其它节点

mysql > select * from performance_schema.replication_group_members  #检查MGR集群状态


评论