MySQL怎么搭建官方原生的MGR(MySQLGroupReplication)组复制

小宇君_7699

小宇君_7699

2026-10-30

256人浏览

原创

MySQL 8.4 LTS中MGR插件已稳定集成,但需严格配置:group_replication_group_name须为合法UUID;group_replication_local_address须用独立端口(如33061);group_replication_group_seeds须完整列出所有节点地址;bootstrap仅首节点临时启用一次;SSL强制启用(REQUIRED),必须配全证书路径。

mysql怎么搭建官方原生的mgr(mysqlgroupreplication)组复制

MySQL 8.4 LTS 版本起,group_replication 插件已稳定集成,无需额外下载;只要满足基础约束(InnoDB、主键、GTID、ROW 格式),三节点单主 MGR 就能跑起来——但配置错一个参数、漏掉一次初始化顺序、或网络端口不通,START GROUP_REPLICATION 就会卡住或报 ERROR 3092,根本加不进组。

my.cnf 里哪些 group_replication_* 参数不能乱设

MySQL 8.4 的 MGR 参数比 8.0 更严格,尤其是引导阶段。关键项不是“越多越好”,而是“必须精准匹配组内语义”:

  • group_replication_group_name 必须是合法 UUID(如 aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa),不能用字符串或空值,否则插件加载直接失败
  • group_replication_local_address 必须写成 host:port 形式,且该 port 不能和 MySQL 实例端口相同(推荐用 33061 这类专用端口),否则节点间无法建立 GCS 连接
  • group_replication_group_seeds 必须包含所有节点的 group_replication_local_address,且顺序无关,但少写一个,新节点就找不到引导源
  • group_replication_start_on_boot=OFF —— 强烈建议关掉,避免 systemd 启动时因网络未就绪导致插件加载失败后静默退出
  • group_replication_bootstrap_group=OFF —— 仅第一个节点首次启动时临时设为 ON,其他节点必须为 OFF,否则多个节点同时引导会脑裂

START GROUP_REPLICATION 失败最常见的三个原因

执行 START GROUP_REPLICATION 后卡住、报错或状态始终是 RECOVERING,基本逃不出这三类:

kashen-mysql DDLtoExcel
kashen-mysql DDLtoExcel

解析 MySQL 8.0 的 DDL 脚本,并将表结构导出为 Excel 格式。适用于用户需将 MySQL 的 `CREATE TABLE` 语句转换为结构化的 Excel 文件场景,导出内容包含字段名、数据类型、长度及精度等信息。支持多张表的批量处理,每张表对应 Excel 中的一个独立工作表。适用于数据库文档编写、数据字典生成及模式分析等任务。

下载
  • 网络不通:telnet mgr2 33061 连不上?检查防火墙(firewalld 或 iptables)、SELinux 是否拦截了非标准端口、/etc/hosts 解析是否准确(禁用 skip-name-resolve 时尤其关键)
  • 账号权限不足:MGR 要求复制账号有 GROUP_REPLICATION_ADMIN 权限,光给 REPLICATION SLAVE 不行;且该账号必须用 CREATE USER ... IDENTIFIED WITH 'caching_sha2_password' 创建(8.4 默认认证插件变了)
  • 事务冲突残留:如果之前启停过 MGR 但没清干净,SELECT * FROM performance_schema.replication_group_members 可能看到旧成员状态为 UNREACHABLE 或 ERROR,此时必须先在所有节点执行 STOP GROUP_REPLICATION,再用 RESET MASTER 和 RESET SLAVE ALL 清理元数据

为什么第一次必须只在一个节点上执行 bootstrap

所谓“引导”,本质是让第一个节点以“空组”身份启动共识服务,生成初始视图(view_id)。这个动作只能发生一次:

  • 在节点 A 上执行 SET GLOBAL group_replication_bootstrap_group=ON → START GROUP_REPLICATION → 成功后立刻执行 SET GLOBAL group_replication_bootstrap_group=OFF
  • 这时 A 的状态是 ONLINE,且 SELECT * FROM performance_schema.replication_group_members 显示它自己为 PRIMARY
  • 其余节点 B/C 只需配置好 group_replication_group_seeds 指向 A 的 local_address,然后直接 START GROUP_REPLICATION 即可加入——它们会自动从 A 拉取全量状态,不需要、也不允许再开 bootstrap
  • 如果 B 也开了 bootstrap,A 和 B 会各自形成孤立组,performance_schema.replication_group_members 查不到对方,后续也无法合并

真正容易被忽略的是 SSL:MySQL 8.4 默认强制组通信加密,group_replication_ssl_mode=REQUIRED 是硬性要求,哪怕测试环境也得配好证书路径(group_replication_recovery_ssl_ca 等),否则节点间握手直接拒绝——这不是可选项,是连接建立的前提。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

2413

6

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.21

1459

5

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

855

5

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.19

3392

5

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.25

5828

4

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.08

1259

3

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.11

6091

4

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

2023.08.14

5282

7

mysql事务隔离级别
mysql事务隔离级别

mysql规范中定义了四种事务隔离级别,不同的隔离级别对事务的处理有所不同。本专题为大家提供mysql事务隔离级别相关的文章内容,大家可以免费体验。

2023.08.16

7094

11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 193人学习