在单台服务器上配置MySQL集群,通常适用于测试、学习场景,能帮助开发者快速熟悉集群工作原理,无需多台服务器资源。下面以MySQL NDB集群为例,介绍完整的配置步骤。

环境准备
首先确保服务器安装了MySQL NDB集群版本的软件包,本文以MySQL 8.0 NDB集群为例,需要准备以下组件:
- 管理节点ndb_mgmd
- 数据节点ndbd(或ndbmtd)
- SQL节点mysqld
单服务器上需要为不同节点分配不同的端口和数据目录,避免冲突。
配置文件编写
首先创建统一的配置文件,比如放在/etc/mysql-cluster.ini,内容如下:
[ndbd default] NoOfReplicas=2 DataMemory=80M IndexMemory=18M [ndb_mgmd] hostname=127.0.0.1 datadir=/var/lib/mysql-cluster/mgmd PortNumber=1186 [ndbd] hostname=127.0.0.1 datadir=/var/lib/mysql-cluster/ndbd1 PortNumber=1184 [mysqld] hostname=127.0.0.1 PortNumber=3306
启动各节点
启动管理节点
执行以下命令启动管理节点:
ndb_mgmd -f /etc/mysql-cluster.ini --initial
启动数据节点
初始化并启动数据节点:
# 初始化数据节点 ndbd --initial # 启动数据节点(初始化后去掉--initial参数) ndbd
启动SQL节点
修改MySQL的配置文件/etc/my.cnf,添加NDB相关配置:
[mysqld] ndbcluster ndb-connectstring=127.0.0.1:1186
然后启动MySQL服务:
systemctl start mysqld
验证集群状态
进入管理节点客户端查看集群状态:
ndb_mgm # 进入客户端后执行 show
如果看到管理节点、数据节点、SQL节点都处于连接状态,说明集群配置成功。
注意事项
- 单服务器部署的集群没有高可用能力,服务器故障会导致整个集群不可用,仅适合测试学习
- 不同节点的数据目录、端口要提前规划,避免冲突
- 生产环境建议至少使用三台以上服务器部署,保证集群可用性