MySQL 集群独立服务器搭建教程
本教程详细介绍了如何在独立服务器上搭建 MySQL 集群(MySQL Cluster,即 NDB Cluster),涵盖架构组成(管理节点、数据节点、SQL 节点)、环境准备、配置文件(config.ini 和 my.cnf)编写、各节点安装与启动顺序、基础验证及常见问题排查,强调单机多实例部署的注意事项,适用于学习高可用、分布式 MySQL 架构的开发者和运维人员。
MySQL集群独立服务器搭建实战指南(基于InnoDB Cluster 8.0)
在高可用与数据安全日益重要的今天,单节点MySQL已难以满足业务连续性要求,本文以MySQL 8.0.33+为基准,手把手带你用三台物理独立服务器(非Docker/VM虚拟化)搭建生产级InnoDB Cluster集群——零依赖外部中间件,全原生组件,真正实现故障自动接管。
✅ 前提条件
- 3台Linux服务器(推荐CentOS 7.9+/Ubuntu 20.04),IP分别为192.168.1.10、192.168.1.11、192.168.1.12
- 每台均安装MySQL 8.0.33+(官方二进制包或YUM源),禁用SELinux,开放3306、33061(XCom端口)、33062(Group Replication端口)
- 所有节点时间同步(
chronyd服务启用),主机名解析已配置(/etc/hosts中互相映射)
🔧 关键步骤精要(非冗余说明)
1️⃣ 初始化单实例(每台执行)
mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql systemctl start mysqld mysql -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPass123!';"
2️⃣ 配置统一my.cnf(核心参数)
[mysqld] server_id=10 # 各节点分别设为10/11/12 gtid_mode=ON enforce_gtid_consistency=ON binlog_checksum=NONE log_slave_updates=ON transaction_write_set_extraction=XXHASH64 loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" loose-group_replication_start_on_boot=OFF loose-group_replication_local_address="192.168.1.10:33061" # 各节点改对应IP loose-group_replication_group_seeds="192.168.1.10:33061,192.168.1.11:33061,192.168.1.12:33061"
重启服务后验证:mysql -uroot -p -e "SELECT @@server_id, @@gtid_mode;"
3️⃣ 创建集群用户(主节点执行)
CREATE USER 'clusteradmin'@'%' IDENTIFIED BY 'ClusterAdmin@2024'; GRANT CLUSTER_ADMIN, CLUSTER_MONITOR ON *.* TO 'clusteradmin'@'%'; FLUSH PRIVILEGES;
4️⃣ 启动集群(仅首节点执行)
INSTALL PLUGIN group_replication SONAME 'group_replication.so'; SET SQL_LOG_BIN=0; CREATE USER 'repl'@'%' IDENTIFIED BY 'ReplPass@2024'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; SET SQL_LOG_BIN=1; CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='ReplPass@2024' FOR CHANNEL 'group_replication_recovery'; START GROUP_REPLICATION; -- 此时状态为RECOVERING → ONLINE
5️⃣ 加入其余节点(次节点执行)
INSTALL PLUGIN group_replication SONAME 'group_replication.so'; START GROUP_REPLICATION; -- 自动从种子节点同步,无需手动CHANGE MASTER
✅ 验证集群状态
登录任一节点执行:
SELECT MEMBER_HOST, MEMBER_STATE, MEMBER_ROLE FROM performance_schema.replication_group_members; -- 三行均为 ONLINE + PRIMARY/SECONDARY 即成功
⚠️ 注意事项(实测经验)
- 禁用防火墙临时测试:
systemctl stop firewalld(生产环境请放行指定端口) - 若出现
ERROR 3092,检查group_replication_ip_allowlist是否设为AUTOMATIC或显式包含所有节点网段 - 不支持MyISAM表;DDL操作需在PRIMARY节点执行
- 备份仍需独立策略(如
mysqldump --single-transaction或Percona XtraBackup)
💡 小结
该方案摒弃MHA、ProxySQL等第三方组件,利用MySQL原生Group Replication+Router构建轻量高可用集群,三节点最小规模下可容忍单点宕机,写入自动路由至PRIMARY,读请求建议通过MySQL Router分发(另文详述),全程无共享存储、无单点故障,真正实现“独立服务器”自主协同。
(全文共986字)
热门产品
弹性云服务器
强悍硬件配置结合弹性云服务器采用纯SSD架构硬件设备,只需几分钟,便可轻松云端获取和启用,实现您的计算需求。
立刻选购跨境云服务器
助力出海业务快速部署我们在全球多个地域,和可用区部署云数据中心,并采用CN2网络,优化网络访问体验 瞬达全球。
立刻选购企业邮箱
让邮件畅通全球让每一封商务邮件高效送达安全稳定企业邮箱 深耕行业廿余载,业内首推外贸专属邮箱,让邮件畅通全球。
立刻选购裸金属服务器
主流服务器配置裸金属服务器 弹性伸缩的高性能计算服务 可根据客户行业和业务特点,个性化定制服务器租用方案。
立刻选购