mysql如何配置Group Replication

来源:个人站长作者:弦宿​头衔:草根站长
导读:本期聚焦于小伙伴创作的《mysql如何配置Group Replication》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《mysql如何配置Group Replication》有用,将其分享出去将是对创作者最好的鼓励。

mysql的Group Replication也就是组复制功能,是官方提供的原生高可用解决方案,支持单主和多主两种模式,能够让多个mysql实例组成一个复制组,组内数据自动同步,当主节点故障时可以自动选举新的主节点,保障业务连续性。本文以单主模式为例,介绍完整的配置流程。

mysql如何配置Group Replication

环境准备

本次配置使用3台mysql 8.0版本的实例,实例信息如下:

实例标识IP地址端口角色
节点1192.168.0.1013306初始主节点
节点2192.168.0.1023306从节点
节点3192.168.0.1033306从节点

所有节点的mysql版本需要保持一致,且网络互通,防火墙开放对应端口。

基础参数配置

所有节点都需要修改mysql的配置文件my.cnf,添加以下组复制相关参数,修改完成后重启mysql实例。

[mysqld]
# 基础配置
server_id=1  # 每个节点的server_id必须唯一,节点2设为2,节点3设为3
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_checksum=NONE
log_bin=binlog
log_slave_updates=ON
binlog_format=ROW

# 组复制核心配置
plugin_load_add='group_replication.so'
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"  # 组名,所有节点保持一致,格式为UUID
group_replication_start_on_boot=OFF  # 关闭启动时自动加入组,手动控制
group_replication_single_primary_mode=ON  # 开启单主模式
group_replication_enforce_update_everywhere_checks=OFF  # 单主模式下关闭多主检查
group_replication_local_address="192.168.0.101:33061"  # 节点本地通信地址,端口和mysql端口区分,节点2改为192.168.0.102:33061,节点3改为192.168.0.103:33061
group_replication_group_seeds="192.168.0.101:33061,192.168.0.102:33061,192.168.0.103:33061"  # 所有节点的通信地址列表

创建复制用户

所有节点都需要创建用于组复制的用户,该用户需要有REPLICATION SLAVE权限,并且使用mysql native密码插件。

-- 创建复制用户,所有节点执行相同操作
CREATE USER 'repl'@'%' IDENTIFIED BY 'Repl@123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'Repl@123456';
FLUSH PRIVILEGES;

安装并启动组复制

初始主节点操作

在节点1上执行以下操作,初始化组复制。

-- 安装组复制插件
INSTALL PLUGIN group_replication SONAME 'group_replication.so';

-- 配置复制通道
CHANGE REPLICATION SOURCE TO
SOURCE_USER='repl',
SOURCE_PASSWORD='Repl@123456',
SOURCE_HOST='192.168.0.101',
SOURCE_PORT=3306,
GET_SOURCE_PUBLIC_KEY=1
FOR CHANNEL 'group_replication_recovery';

-- 启动组复制,作为第一个节点初始化组
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

其他节点操作

节点2和节点3执行以下操作,加入已有的复制组。

-- 安装组复制插件
INSTALL PLUGIN group_replication SONAME 'group_replication.so';

-- 配置复制通道,注意SOURCE_HOST填写当前节点的IP
CHANGE REPLICATION SOURCE TO
SOURCE_USER='repl',
SOURCE_PASSWORD='Repl@123456',
SOURCE_HOST='192.168.0.102',  -- 节点3改为192.168.0.103
SOURCE_PORT=3306,
GET_SOURCE_PUBLIC_KEY=1
FOR CHANNEL 'group_replication_recovery';

-- 启动组复制,加入已有组
START GROUP_REPLICATION;

验证配置结果

在任意节点执行以下SQL,查看组复制成员状态:

SELECT * FROM performance_schema.replication_group_members;

如果所有节点的MEMBER_STATE字段都为ONLINE,说明组复制配置成功。在单主模式下,MEMBER_ROLE字段会显示一个PRIMARY和多个SECONDARY。

注意事项

  • 所有节点的server_id必须唯一,group_replication_group_name必须完全一致
  • 组复制要求表必须有主键,否则写入数据时会报错
  • 新增节点时,需要先同步已有组的基础数据,再执行加入组的操作
  • 如果需要切换多主模式,需要关闭所有节点的组复制,修改group_replication_single_primary_mode为OFF,再重新启动组复制

mysqlGroup_Replication组复制配置数据库高可用修改时间:2026-07-21 17:27:30

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。