如何配置MySQL 8.4 LTS的组复制Group Replication参数

雨静同学_4305

雨静同学_4305

2026-09-23

404人浏览

原创

mysql 8.4 lts 的 group replication 必须显式配置5个核心参数并重启生效:server_id、gtid_mode=on且enforce_gtid_consistency=on、binlog_format=row、log_bin与log_slave_updates=on、group_replication_group_name(uuid格式),缺一将导致start group_replication失败或卡在recovering状态。

如何配置mysql 8.4 lts的组复制group replication参数

MySQL 8.4 LTS 的 Group Replication 参数不能靠“开插件就完事”,必须显式配置关键参数并重启生效,否则 START GROUP_REPLICATION 会直接报错或卡在 RECOVERING 状态。

必须显式配置的 5 个核心参数

MySQL 8.4 默认不启用 MGR,group_replication 插件本身是禁用的,且多数控制参数无合理默认值。以下 5 项必须写入 my.cnf[mysqld] 段并重启:

  • server_id:每个节点唯一,不能为 0 或重复(例如 server_id = 101
  • gtid_mode = ONenforce_gtid_consistency = ON:MGR 强制依赖 GTID,缺一不可
  • binlog_format = ROW:仅支持基于行的日志,STATEMENTMIXED 会导致成员加入失败
  • log_binlog_slave_updates = ON:主库和副本都需开启二进制日志并记录中继日志变更
  • group_replication_group_name:UUID 格式(如 aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa),所有节点必须完全一致

group_replication_local_addressgroup_replication_group_seeds 怎么填

这两个地址参数决定节点能否互相发现和握手,填错会导致集群无法形成或反复断连:

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • group_replication_local_address 是本机对外暴露的 IP:PORT(不是 127.0.0.1),必须能被其他节点直连;云环境注意安全组放行该端口(默认 33061
  • group_replication_group_seeds 是初始引导节点列表,格式为 ip1:port1,ip2:port2,至少包含一个当前节点自身(用于单节点启动);首次部署建议全写上所有节点地址,避免冷启动失败
  • 若使用 Docker 或 Kubernetes,不要用 localhost 或容器 hostname,而应填宿主机可路由的 IP 或 Service DNS 名(如 mysql-node-0.mysql.svc.cluster.local:33061

group_replication_consistency 设成 BEFORE_ON_PRIMARY_FAILOVER 会卡住吗

会,但这是预期行为——不是故障,而是强一致性保障的代价:

  • 该参数在 MySQL 8.4 中默认启用,意味着 Primary 切换前,新主必须回放完所有已提交事务的 binlog;若存在大事务或网络延迟,切换耗时可能从几十毫秒升至数秒
  • 应用连接 MySQL Router 时,若超时时间设得太短(如 connect_timeout=2),可能在切换窗口内收到 Lost connectionTimeout during primary election
  • 它只影响故障转移过程,不影响日常读写;若业务能接受短暂最终一致性(如报表类查询),可降级为 EVENTUAL,但必须在 my.cnf 中显式配置并重启,SET GLOBAL 不生效

容易忽略的权限与插件加载顺序

即使参数全对,START GROUP_REPLICATION 仍可能报 ERROR 3092 (HY000) 或认证失败,常见原因有:

  • 执行用户缺少 GROUP_REPLICATION_ADMIN 权限(不是 REPLICATION SLAVE):运行 GRANT GROUP_REPLICATION_ADMIN ON *.* TO 'repl'@'%';
  • group_replication 插件未正确加载:检查 SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'group_replication'; 返回 ACTIVE,否则需先 INSTALL PLUGIN group_replication SONAME 'group_replication.so';
  • MySQL 8.4 默认禁用 mysql_native_password,如果复制账户用该插件认证(旧脚本常见),需在 CREATE USER 时显式指定 IDENTIFIED WITH caching_sha2_password,否则握手失败

真正麻烦的从来不是参数名记不住,而是某台节点漏配了 log_slave_updates,或者云服务器安全组只开了 3306 却忘了放行 33061 —— 这类问题不会报明确错误,只会让节点永远停在 RECOVERING 状态,查日志也只看到“waiting for view change”。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

mysql

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

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

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

2023.06.20

1933

6

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

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

2023.06.21

1179

5

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

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

2023.07.18

695

5

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

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

2023.07.19

2512

5

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

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

2023.07.25

4128

4

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

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

2023.08.08

979

3

sqlserver和mysql区别
sqlserver和mysql区别

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

2023.08.11

4391

4

mysql忘记密码
mysql忘记密码

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

2023.08.14

3982

7

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

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

2023.08.16

5114

11

热门下载

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

精品课程

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

共1课时 | 169人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 274人学习