上一篇
mysql 集群 物理机搭建
- 物理机
- 2025-07-21
- 5
# MySQL集群物理机搭建步骤,1. 环境准备:关闭防火墙,确保节点间网络通信正常。,2. 安装软件:在所有节点上安装MySQL集群相关软件包。,3. 配置管理节点:编辑配置文件,定义集群参数,启动管理服务。,4. 配置数据节点:设置数据存储目录,启动数据节点进程。,5. 配置SQL节点:部署MySQL实例,连接集群,测试查询操作
MySQL集群在物理机上的搭建指南
MySQL集群是一种通过多节点协同工作,实现高可用性、高性能和可扩展性的数据库架构,它通过数据分片、复制和负载均衡等技术,确保系统在单点故障时仍能正常运行,并提升处理高并发请求的能力,以下是MySQL集群在物理机上搭建的详细步骤及关键要点:
环境准备
-
硬件要求
- CPU:建议四核及以上,以支持多任务处理和并行计算。
- 内存:至少8GB RAM,高并发场景推荐16GB以上。
- 存储:使用SSD硬盘,容量根据数据量需求分配(建议≥100GB)。
- 网络:千兆网卡,低延迟网络(如局域网),所有节点需在同一子网内。
- 节点数量:至少3台物理机(1个管理节点、2个数据节点、1个SQL节点),生产环境建议冗余配置。
-
软件要求

- 操作系统:CentOS 7/8、Ubuntu 18.04/20.04(Linux发行版优先)。
- MySQL版本:建议使用MySQL 8.0或兼容的NDB Cluster版本(如MySQL Cluster 7.x)。
- 时间同步:通过NTP服务确保所有节点时间一致,避免数据不一致问题。
-
关闭防火墙与SELinux
# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 设置SELinux为宽松模式 setenforce 0
MySQL集群组件与角色
| 组件 | 功能 | 节点示例 |
|---|---|---|
| 管理节点 | 负责集群配置管理、节点通信协调 | 168.1.10 |
| 数据节点 | 存储数据并执行分布式事务(使用NDB存储引擎) | 168.1.11, 168.1.12 |
| SQL节点 | 处理客户端SQL请求,通过API与数据节点交互 | 168.1.13 |
安装与配置步骤
-
安装MySQL Cluster软件
在所有节点上执行以下操作:
-
配置管理节点

- 创建配置文件 config.ini: [NDBD DEFAULT] NoOfReplicas=2 [NDB_MGMD] NodeId=1 HostName=192.168.1.10 DataDir=/var/lib/mysql-cluster [NDBD] NodeId=2 HostName=192.168.1.11 DataDir=/var/lib/mysql-cluster [NDBD] NodeId=3 HostName=192.168.1.12 DataDir=/var/lib/mysql-cluster
- 启动管理节点: ndb_mgmd -f /etc/mysql-cluster/config.ini --initial
-
配置数据节点
- 修改my.cnf文件(以168.1.11为例): [mysqld] bind-address=192.168.1.11 ndbcluster_connectstring=192.168.1.10:1186
- 启动数据节点: ndbd
-
配置SQL节点

- 修改my.cnf文件(以168.1.13为例): [mysqld] bind-address=192.168.1.13 ndbcluster_connectstring=192.168.1.10:1186
- 启动SQL节点: mysqld_safe --defaults-file=/etc/my.cnf &
-
查看管理节点状态
输出示例:
-
测试SQL连接
在SQL节点上登录MySQL并创建表:
mysql -u root -p CREATE TABLE test (id INT PRIMARY KEY, name VARCHAR(50)); INSERT INTO test VALUES (1, 'MySQL Cluster'); SELECT FROM test;
验证集群状态
常见问题与解决方案
问题 解决方案 数据节点无法启动 检查config.ini中的主机名和端口是否正确,确保网络连通性。 主从同步失败 确保主节点开启binlog,从节点配置正确的MASTER_LOG_FILE和MASTER_LOG_POS。 性能瓶颈 优化数据分片策略,使用负载均衡工具(如HAProxy)分发请求。
FAQs
Q1:MySQL集群需要多少台物理机?
A1:至少需要3台物理机(1台管理节点 + 2台数据节点),生产环境建议增加冗余节点以提高可靠性。
Q2:如何监控MySQL集群的状态?
A2:可以使用ndb_mgm工具查看节点状态,或通过Prometheus、Grafana等监控工具采集集群性能指标(如CPU、内存、