安装mysql的MGR集群

说明
1、 mysql数据库主从宕机,会影响到正常业务访问,并且要手动进行切换。
2、 MHA高可用搭建复杂,代码已停止更新。
3、 MGR集群搭建方便, master故障会自动进行切换,不影响业务正常访问。

一、环境准备

1、主机说明
IP地址主机名端口操作系统数据库版本
172.16.1.20db013306centos7.95.7.40
172.16.1.21db023306centos7.95.7.40
172.16.1.22db033306centos7.95.7.40

说明:数据库版本可以根据业务场景选择即可。

2、修改hosts文件
cat >> /etc/hosts << end
172.16.2.20 db01 
172.16.2.21 db02 
172.16.2.22 db03
end

[root@db03 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.2.20 db01 
172.16.2.21 db02 
172.16.2.22 db03
3、关闭防火漆
1、关闭selinux
cp -av /etc/selinux/config /etc/selinux/config.bak 
setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

2、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld 
systemctl stop postfix
systemctl disable postfix
4、安装mysql(略)

二、安装MGR集群

1、配置MGR参数
一、修改my.cnf文件
1、172.16.1.20
binlog_checksum=NONE
transaction_write_set_extraction=XXHASH64 
loose-group_replication_group_name    ="6c0d7856-1811-11ef-8c2d-000c29400c69"           
loose-group_replication_start_on_boot =off                     
loose-group_replication_local_address ="172.16.2.20:24301"                
loose-group_replication_group_seeds   ="172.16.2.20:24301,172.16.2.21:24301,172.16.2.22:24301"
loose-group_replication_bootstrap_group =off     
loose-group-replication-ip-whitelist="172.16.2.20,172.16.2.21,172.16.2.22"

2、172.16.1.21
binlog_checksum=NONE
transaction_write_set_extraction=XXHASH64 
loose-group_replication_group_name    ="6c0d7856-1811-11ef-8c2d-000c29400c69"           
loose-group_replication_start_on_boot =off                     
loose-group_replication_local_address ="172.16.2.21:24301"                
loose-group_replication_group_seeds   ="172.16.2.20:24301,172.16.2.21:24301,172.16.2.22:24301"
loose-group_replication_bootstrap_group =off     
loose-group-replication-ip-whitelist="172.16.2.20,172.16.2.21,172.16.2.22"

3、172.16.1.22
binlog_checksum=NONE
transaction_write_set_extraction=XXHASH64 
loose-group_replication_group_name    ="6c0d7856-1811-11ef-8c2d-000c29400c69"           
loose-group_replication_start_on_boot =off                     
loose-group_replication_local_address ="172.16.2.22:24301"                
loose-group_replication_group_seeds   ="172.16.2.20:24301,172.16.2.21:24301,172.16.2.22:24301"
loose-group_replication_bootstrap_group =off     
loose-group-replication-ip-whitelist="172.16.2.20,172.16.2.21,172.16.2.22"
loose-group_replication_single_primary_mode = true
loose-group_replication_enforce_update_everywhere_checks = false
二、参数说明
#定义用户事务期间哈希写入提取的算法,组复制模式下必须设置为XXHASH64
transaction_write_set_extraction=XXHASH64

#确定组复制恢复时是否应该应用SSL,通常设置为"开",但默认设置为"关"
loose-group_replication_recovery_use_ssl=ON

#该服务器的实例所在复制组的名称,必须是有效UUID,所有节点必须相同
loose-group_replication_group_name="6c0d7856-1811-11ef-8c2d-000c29400c69"

#确定服务器是否应该在服务器启动期间启动组复制
loose-group_replication_start_on_boot=OFF

#为复制组中其它成员提供网络地址,此处端口号避免使用3306,否则会冲突
loose-group_replication_local_address= "172.16.2.20:24301"

#用于建立新成员到组的连接组成员列表,该列表指定为由分隔号间隔的组成员网络地址列表
loose-group_replication_group_seeds= "172.16.2.20:24301,172.16.2.21:24301,172.16.2.22:24301"

#配置此服务器为引导组,该选项必须仅在一台服务器上设置,且仅当第一次启动组或重新启动整个组时,成功引导组启动后,将此选项设置为关闭
loose-group_replication_bootstrap_group=OFF

#使用mysql_native_password密码策略,防止navicat连不上mysql8
default_authentication_plugin=mysql_native_password

#设置mysql插件所在目录,因为MGR基于插件,所以必须设置插件路径
plugin_dir=/usr/lib64/mysql/plugin

#此参数决定primary节点到secondary节点的请求是否基于RSA密匙对的密码交换所需的公匙
loose-group_replication_recovery_get_public_key=on

2、重启服务mysql
1、重启服务mysql(三台执行) 
service mysqld restart
3、创建复制用户
1、创建复制用户repl  
set sql_log_bin=0;
create user 'repl'@'%' identified by 'repl';  
grant replication slave on *.* to 'repl'@'%';
flush privileges;  
set sql_log_bin=1;

注意:三台服务器都需要执行,否则后期slave添加MGR集群报错RECOVERING。
4、安装复制插件
1、安装组复制插件
INSTALL PLUGIN group_replication SONAME 'group_replication.so'; 
show plugins;

说明:
1、三台服务器都要执行。
2、如果查看group_replication状态是:ACTIVE,安装成功。

在这里插入图片描述

5、启动并引导复制
1、主库master执行
set global group_replication_bootstrap_group=on;
start group_replication;
select * from performance_schema.replication_group_members;
set global group_replication_bootstrap_group=off;

2、从库slave执行 
reset master;
change master to master_user="repl",master_password="Repl+2024" for channel 'group_replication_recovery';
start group_replication;

3、查询MGR集群
select * from performance_schema.replication_group_members;

在这里插入图片描述

三、MGR集群验证结果

1、创建数据库(主库master执行) 
create database shop01;
use shop01;
create table mgr(id int,name varchar(30),PRIMARY KEY (`id`)); 
insert into mgr select 1,'aa';
select * from mgr; flush privileges;

说明:
1、主库master创建数据库,从库slave能查询到对应数据。
2、从库slave无法创建数据库,只能查询数据。
3、MGR集群搭建完成,结果如下图所示:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋天枫叶35

希望能帮到你,谢谢你能阅读~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值