group_replication_admin 是 mysql 8.0.13+ 引入的动态管理权限,用于执行组复制启停、加入/退出等操作,不包含在 all privileges 中,须显式授予且不支持 with grant option。

GROUP_REPLICATION_ADMIN 权限是什么
GROUP_REPLICATION_ADMIN 是 MySQL 8.0.13+ 引入的专用管理权限,用于控制用户能否执行组复制(Group Replication)相关操作,比如启动/停止组复制、加入/退出组、查询组状态等。它**不等于** REPLICATION_SLAVE_ADMIN 或 BACKUP_ADMIN,也不能被 ALL PRIVILEGES 自动包含——必须显式授予。
为什么直接 GRANT ALL 不生效
常见错误是执行:GRANT ALL PRIVILEGES ON *.* TO 'repluser'@'%';,然后发现 START GROUP_REPLICATION; 仍报错 ERROR 3092 (HY000): The server is not configured properly to be an active member of the group. 或更直接的权限拒绝提示。
-
ALL PRIVILEGES覆盖的是传统 SQL 操作权限(如 SELECT、CREATE DATABASE),不包括动态管理类权限 -
GROUP_REPLICATION_ADMIN属于“动态权限”(dynamic privileges),需单独、显式授予 - MySQL 8.0+ 默认禁用动态权限自动继承,即使用户有
SUPER旧权限也不行
正确授予 GROUP_REPLICATION_ADMIN 的步骤
以高权限账号(如 root)登录后执行:
- 确保用户已存在(推荐先
CREATE USER,避免隐式创建带来的主机匹配歧义):CREATE USER 'repluser'@'192.168.5.%' IDENTIFIED BY 'strongpass123'; - 授予组复制管理权限:
GRANT GROUP_REPLICATION_ADMIN ON *.* TO 'repluser'@'192.168.5.%'; - 如果还需监控复制状态(如查
performance_schema.replication_group_members),补授:GRANT SELECT ON performance_schema.* TO 'repluser'@'192.168.5.%'; - **不需要**
FLUSH PRIVILEGES—— 动态权限通过GRANT授予后立即生效
验证是否成功:SHOW GRANTS FOR 'repluser'@'192.168.5.%'; 应看到明确包含 GROUP_REPLICATION_ADMIN 行。
容易忽略的兼容性与配置前提
授予权限只是必要条件,不是充分条件。以下任一缺失都会导致 START GROUP_REPLICATION 失败:
- MySQL 实例必须已启用组复制插件:
INSTALL PLUGIN group_replication SONAME 'group_replication.so'; - my.cnf 中必须配置基础参数:至少含
server_id、gtid_mode=ON、enforce_gtid_consistency=ON、binlog_checksum=NONE(MySQL 8.0.26+ 可为CRC32) - 用户连接时必须使用支持 SSL 的账户(组复制强制要求加密通道),或显式关闭检查(不推荐):
SET PERSIST group_replication_ssl_mode = 'DISABLED'; - 若用
WITH GRANT OPTION,注意该选项对动态权限无效 ——GROUP_REPLICATION_ADMIN不能被转授
最常卡住的地方其实是配置项缺失或 SSL 设置不匹配,而不是权限本身。授完权务必先检查 SELECT * FROM performance_schema.replication_group_members; 是否可查,再尝试启动组复制。











