在当今的企业级应用中,数据库的高可用性(High Availability)是核心需求之一。MySQL Group Replication(MGR)作为官方提供的插件,实现了多主或单主模式的数据同步,具备自动故障检测和容错能力。本文将带你手把手在 CentOS Stream 9 环境下搭建 MySQL 8.0 MGR 一主两从集群。
本文核心关键词:CentOS Stream 9、MySQL 8.0 MGR、数据库高可用、一主两从集群
为了保证集群正常运行,我们需要三台安装了 CentOS Stream 9 的虚拟机,配置如下:
| 节点角色 | IP地址 | 主机名 |
|---|---|---|
| Primary (主) | 192.168.1.10 | mysql-node1 |
| Secondary (从) | 192.168.1.11 | mysql-node2 |
| Secondary (从) | 192.168.1.12 | mysql-node3 |
1. 关闭防火墙和SELinux: 为了方便实验,建议关闭或开放对应端口(3306和33061)。
systemctl stop firewalldsetenforce 0 在所有节点执行以下命令安装 MySQL Server:
dnf install -y mysql-serversystemctl start mysqldsystemctl enable mysqld 初次启动后,通过 grep 'temporary password' /var/log/mysqld.log 获取临时密码并进行安全初始化。
图:MGR 高可用集群基本架构示意
这是 MGR 成功的关键。在每个节点编辑 /etc/my.cnf.d/mysql-server.cnf,加入以下配置(以 node1 为例,注意修改 server_id 和 local_address):
[mysqld]server_id = 1gtid_mode = ONenforce_gtid_consistency = ONbinlog_checksum = NONE# MGR 基础配置plugin_load_add = group_replication.sogroup_replication_group_name = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"group_replication_start_on_boot = OFFgroup_replication_local_address = "192.168.1.10:33061"group_replication_group_seeds = "192.168.1.10:33061,192.168.1.11:33061,192.168.1.12:33061"group_replication_bootstrap_group = OFF 登录 MySQL,为集群同步创建专门的用户:
CREATE USER 'repl'@'%' IDENTIFIED BY 'Password123!';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';CHANGE REPLICATION SOURCE TO SOURCE_USER='repl', SOURCE_PASSWORD='Password123!' FOR CHANNEL 'group_replication_recovery'; 1. 在 node1(主)上初始化:
SET GLOBAL group_replication_bootstrap_group = ON;START GROUP_REPLICATION;SET GLOBAL group_replication_bootstrap_group = OFF; 2. 在 node2 和 node3 上加入:
START GROUP_REPLICATION; 执行以下 SQL 查看集群成员状态:
SELECT * FROM performance_schema.replication_group_members; 若所有节点的 MEMBER_STATE 均为 ONLINE,则表示 CentOS Stream 9 上的 MySQL 8.0 MGR 高可用集群部署成功!
总结:通过以上步骤,我们完成了 MySQL MGR 的部署。这种架构不仅保证了数据的一致性,还提供了极强的容灾能力,是小白进阶架构师的必经之路。
本文由主机测评网于2026-03-23发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20260332388.html