MySQL 8.0 配置 MGR 时 group_replication_group_name 必须为合法 UUID v4 格式,所有节点严格一致;单主模式需同时设置 group_replication_single_primary_mode=ON 和 group_replication_enforce_update_everywhere_checks=OFF;group_replication_local_address 必须填其他节点可达的真实 IP 和端口(如 33061),不可用 127.0.0.1;3 节点集群仅容错 1 节点宕机。

MySQL 8.0 中 group_replication_group_name 必须是有效 UUID
配置 MGR 时最常卡住的地方,不是网络或权限,而是这个配置项填了非标准格式的字符串。MySQL 启动时不会报错,但 START GROUP_REPLICATION 会静默失败,SELECT * FROM performance_schema.replication_group_members 里始终为空。
- 必须用合法 UUID v4 格式,例如
'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'(32 字符 + 4 个短横线) - 不能用全零、全字母、带大写或中文字符;
mysql_uuid()函数生成的值可直接用,但别复制执行结果里的引号 - 所有节点必须完全一致——哪怕只差一个字母,节点就无法加入组,且错误日志里只提示
Plugin group_replication reported: 'This server is not able to reach a majority'
单主模式下 group_replication_single_primary_mode 和 group_replication_enforce_update_everywhere_checks 要配对关
想让集群只有一个可写节点,光开 group_replication_single_primary_mode=ON 不够。MySQL 8.0.27+ 默认开启强一致性检查,它会在单主模式下误判主节点为“多主冲突”,导致事务被拒绝,错误信息是:ERROR 3092 (HY000): The server is not configured properly to be an active member of the group。
-
group_replication_single_primary_mode=ON是开关,决定是否启用单主逻辑 -
group_replication_enforce_update_everywhere_checks=OFF是配套开关,关闭跨节点 DML 冲突校验,否则单主节点也会被自己拦住 - 二者必须同时生效;如果只开前者,
INSERT或UPDATE会直接报错,而不是降级到只读
成员自动发现失败?检查 group_replication_local_address 的绑定地址
MGR 节点之间靠这个地址互相握手,不是靠 bind-address。填错会导致节点看似启动成功,实则无法建立 P2P 连接,performance_schema.replication_connection_status 显示 CONNECTING 然后超时断开。
- 不能写
127.0.0.1或localhost,必须是其他节点能路由到的真实 IP,比如'192.168.10.11:33061' - 端口建议避开 3306,MGR 默认用
33061做内部通信,防火墙要放行该端口(TCP),不只是 3306 - 若用 Docker 或云主机,注意宿主机网络模式:bridge 下容器内看到的
eth0地址通常不可达,得用host.docker.internal或宿主机真实内网 IP
Paxos 在 MGR 里不暴露接口,但影响你对故障恢复的预期
别试图调 Paxos 参数。MySQL 把 Raft-like 协议封装进插件底层,对外只暴露组行为控制项。真正影响你运维判断的是:它不保证“任意时刻都有多数派在线”,而只保证“只要多数派存活,就能达成一致”。这意味着:
- 3 节点集群挂掉 2 个,剩下一个节点自动只读,且无法通过
STOP/START GROUP_REPLICATION强行恢复写入——这是协议强制的,不是 bug - 网络分区时,小分区节点会主动退出组(状态变
UNREACHABLE),大分区继续服务;但没心跳超时参数可调,依赖默认的group_replication_member_expel_timeout=0(即立即驱逐) - 重启离线节点后,它不会自动重连旧组;必须手动执行
START GROUP_REPLICATION,且只有原组多数仍在运行时才能加入
实际部署时,3 节点是最小可行规模,但别指望它扛住任意两台宕机;5 节点才能容忍 2 台同时失效——这点容易被监控面板上的“online”字样误导。










