一、引言
在企业级应用中,MySQL 数据库的高可用是保障业务稳定运行的核心需求。MySQL Group Replication(简称 MGR)作为官方推荐的高可用解决方案,支持多主模式和单主模式,能实现数据实时同步与故障自动切换。本文将详细介绍如何基于 3 台服务器搭建 MGR 集群,结合 MySQL Shell 快速部署集群,并通过 MySQL Router 实现集群访问入口的统一管理,全程附带实操命令与配置说明,适用于运维人员和数据库工程师参考。
二、部署架构介绍
本次 MGR 集群部署采用 3 台物理机(或虚拟机),整体架构如下:
- 核心组件:3 台服务器(IP 分别为 192.168.184.151、184.152、184.153)各部署 1 个 MySQL 实例,组成 InnoDB Cluster 集群;
- 部署工具:通过 MySQL Shell 实现集群的创建、节点管理与状态监控;
- 访问入口:在 192.168.184.151 上部署 MySQL Router,作为集群的'中间件',提供读写分离端口(6446)和只读端口(6447),屏蔽后端节点细节;
- 生产环境建议:
- 每台 MySQL 服务器均部署 MySQL Shell,便于节点故障时的本地运维;
- MySQL Router 需单独搭建高可用环境(如双机热备),避免成为单点故障;
- 不同 MGR 集群可通过不同端口区分,或直接部署在应用服务器本地。
三、准备阶段:环境初始化与 MySQL 配置
3.1 修改 Hosts 文件(三台机器均执行)
为实现服务器间通过主机名通信,需在每台机器的 /etc/hosts 中添加 IP 与主机名的映射:
# 编辑 hosts 文件
vim /etc/hosts
# 添加以下内容(IP 与主机名对应)
192.168.184.151 maria-01
192.168.184.152 maria-02
192.168.184.153 maria-03
3.2 安装 MySQL 并修改核心配置
若服务器已存在旧版 MySQL,需先清理环境,再重新部署;若为新环境,可直接执行安装步骤。
3.2.1 清理旧 MySQL 环境(三台机器均执行)
# 停止 MySQL 服务
/etc/init.d/mysql.server stop
# 删除 MySQL 数据文件与安装目录(谨慎操作,确保数据已备份)
rm /data/mysql -rf
rm /usr/local/mysql/ -rf
3.2.2 执行 MySQL 安装脚本
# 进入安装脚本目录(需提前准备好 install_mysql.sh 脚本)
cd /data/script/install_mysql8
# 执行安装脚本
sh install_mysql.sh

3.2.3 验证 MySQL 安装
安装完成后,通过 root 用户登录测试:









