首页 » db » MySQL » MySQL8.4 MGR主从高可用集群搭建(基于wlnmp源)

MySQL8.4 MGR主从高可用集群搭建(基于wlnmp源)

 

本文部署的MySQL Group Replication (MGR) 集群采用最小化三节点:db01、db02和db03。其中db01作为主节点,具有读写权限,db02和db03作为从节点,仅为只读。所有写操作须通过db01节点执行,当db01节点发生故障(宕机或不可达)时,MGR集群将自动触发故障转移流程,系统将从db02和db03中选举出一个新的主节点,新主节点将自动获得读写权限,接管所有写入操作,另一个节点继续保持只读模式。

MySQL部署基于wlnmp一键安装包(https://www.wlnmp.com/)提供的预编译包部署MySQL 8.4.6,并通过MySQL my.cnf配置文件生成器(https://dbcnf.wlnmp.com/)生成优化配置。将搭建三节点MySQL Group Replication(MGR)单主模式集群,具体环境如下:

操作系统:AlmaLinux 8.10
服务器配置:4核CPU/8GB内存
节点信息:主节点db01 (10.10.10.5) ,从节点db02 (10.10.10.6) ,从节点db03 (10.10.10.7)

1、分别配置主机名

2、分别配置hosts

3、分别添加wlnmp源

4、分别安装mysql8.4

5、生成my.cnf配置文件

访问MySQL my.cnf配置文件生成器(https://dbcnf.wlnmp.com/),选择MySQL8.4版本生成配置文件,生成3份,分别配置到3台MySQL server中。

注1:如果你是通过wlnmp安装的MySQL,这里仅需要填写CPU、内存以及开启主从,填写相关IP地址即可,其他参数可结合实际情况自行调整。
注2:确保三台MySQL server组复制group_replication_group_name标识ID一致。
注3:确保组复制通信的本地监听地址为本机,所有MySQL的group_replication_local_address参数值为本机地址。
注4:server_id不能相同,我这里主节点db01是5,从节点db02是6,从节点db03是7。

下面是生成后的my.cnf文件(https://dbcnf.wlnmp.com/随时更新,可能会出现一些参数与当前的参数不一致情况)

主节点db01配置文件如下:

从节点db02配置文件如下:

从节点db03配置文件如下:

6、启动MySQL

7、登录MySQL确保插件正常启用

mysql -uroot -p
Enter password:默认密码为空,直接回车进入

SHOW PLUGINS;
这里确保clone和group_replication插件处于ACTIVE,如未处于ACTIVE状态,可参考以下两种方法设置

方法一:通过my.cnf配置方式开启

plugin-load-add = mysql_clone.so
# MySQL从8.0.17版本引入克隆插件
plugin-load-add = group_replication.so
# MySQL从5.7.17版本引入组复制插件

方法二:通过安装方式开启

8、引导主节点初始化

在主节点db01上,登录MySQL执行以下操作

禁用二进制日志

创建MySQL用户

注:GROUP_REPLICATION_STREAM 是 MySQL 8.4 新引入的权限,专门用于组复制的二进制日志流传输机制

启动组复制

查看状态

一切正常的话,所看到的内容如下:

9、加入从节点使用mysql_native_password

在其余两个从节点db02、db03上,登录MySQL执行以下操作

禁用二进制日志

创建MySQL用户、执行相关操作,启动组复制

查看状态

注1:单主模式和多主模式区别在于MGR初始化时,group_replication_single_primary_mode参数,多主模式需设置group_replication_single_primary_mode=OFF,其他配置与单主模式操作一模一样。

注2:如果你没有通过https://dbcnf.wlnmp.com/生成my.cnf文件,则注意以下几个参数
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
server_id = 100
gtid_mode = ON
enforce_gtid_consistency = ON
plugin_load_add='group_replication.so'
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "s3:33061"
group_replication_group_seeds= "s1:33061,s2:33061,s3:33061"
group_replication_bootstrap_group= off

10、验证

最后,在主库创建或插入数据,看是否会同步到从库中,成功同步表示验证通过。

 

原文链接:MySQL8.4 MGR主从高可用集群搭建(基于wlnmp源),转载请注明来源!

0