MySQL Group Replication需满足版本、存储引擎、主键等条件,配置binlog、GTID及组通信参数,安装插件后引导首个节点创建组,其余节点通过种子地址加入,创建复制用户并授予权限,最后验证成员状态与日志确保集群正常运行。
MySQL Group Replication 是一种高可用、高容错的复制方案,基于 Paxos 协议实现多主或单主模式下的数据同步。要成功配置 Group Repl
ication,需要确保实例满足基本要求,并正确设置相关参数。以下是详细配置步骤。
在开始配置前,请确认以下几点:
编辑 my.cnf(或 my.ini)文件,在 [mysqld] 段添加如下关键配置:
[mysqld]说明:
首次部署时,需手动引导组创建:
登录 MySQL 执行:
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
启动组并作为初始主节点:
SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION USER='repl' PASSWORD='repl_password'; SET GLOBAL group_replication_bootstrap_group=OFF;
注意:仅第一个节点执行 bootstrap 操作一次即可,后续节点不要开启。
在其余节点完成 my.cnf 配置后,执行:
START GROUP_REPLICATION USER='repl' PASSWORD='repl_password';
无需设置 bootstrap,它们会自动连接 seeds 中的节点加入组。
检查是否加入成功:
SELECT * FROM performance_schema.replication_group_members;
正常输出应显示 MEMBER_STATE 为 ONLINE。
组复制依赖一个复制用户进行分布式恢复(distributed recovery),需提前创建:
CREATE USER 'repl'@'%' IDENTIFIED BY 'repl_password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; -- (可选)若启用了 clone 插件,还需 BACKUP_ADMIN 权限 -- GRANT BACKUP_ADMIN ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES;
如果节点无法加入,检查以下内容:
监控组状态:
-- 查看成员列表 SELECT MEMBER_HOST, MEMBER_PORT, MEMBER_STATE FROM performance_schema.replication_group_members;-- 查看事务冲突、丢弃情况 SELECT * FROM performance_schema.replication_group_member_stats\G
基本上就这些。只要网络通、配置对、用户权限足,Group Replication 能稳定运行。生产环境建议结合 MySQL Router 实现应用透明接入。不复杂但容易忽略细节,比如主键和时区。