MySQL Cluster是MySQL官方推出的分布式数据库解决方案,支持高可用、高扩展的存储能力,源码编译安装可以根据实际业务需求调整编译参数,适配不同的系统架构。下面详细介绍完整的安装流程。

环境准备
首先确认系统版本,本文以CentOS 7为例,需要提前安装编译所需的依赖包,执行以下命令完成依赖安装:
# 安装编译依赖 yum install -y gcc gcc-c++ cmake bison ncurses-devel openssl-devel # 创建MySQL运行用户 useradd -s /sbin/nologin mysql
下载与解压源码包
从MySQL官方渠道获取MySQL Cluster源码包,这里以7.2.15版本为例,下载完成后解压到指定目录:
# 解压源码包 tar -zxvf mysql-cluster-gpl-7.2.15.tar.gz cd mysql-cluster-gpl-7.2.15
编译配置与安装
使用cmake进行编译参数配置,根据需求调整安装路径、字符集等参数,配置完成后执行编译和安装:
# 配置编译参数 cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-cluster \ -DMYSQL_DATADIR=/usr/local/mysql-cluster/data \ -DWITH_NDB=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci # 编译并安装,j参数指定并行编译数,根据CPU核心数调整 make -j4 make install
配置集群节点
MySQL Cluster包含管理节点、数据节点、SQL节点三类角色,需要根据角色编写对应的配置文件。首先在/usr/local/mysql-cluster下创建配置文件目录:
mkdir -p /usr/local/mysql-cluster/conf
管理节点配置
创建管理节点配置文件config.ini,定义集群所有节点的信息:
[ndbd default] NoOfReplicas=2 DataMemory=512M IndexMemory=128M [ndb_mgmd] NodeId=1 hostname=192.168.0.1 datadir=/usr/local/mysql-cluster/data [ndbd] NodeId=2 hostname=192.168.0.2 datadir=/usr/local/mysql-cluster/data [ndbd] NodeId=3 hostname=192.168.0.3 datadir=/usr/local/mysql-cluster/data [mysqld] NodeId=4 hostname=192.168.0.4 [mysqld] NodeId=5 hostname=192.168.0.5
数据节点与SQL节点配置
数据节点和SQL节点共用my.cnf配置文件,在对应节点的/usr/local/mysql-cluster/conf目录下创建该文件:
[mysqld] basedir=/usr/local/mysql-cluster datadir=/usr/local/mysql-cluster/data socket=/tmp/mysql.sock ndbcluster ndb-connectstring=192.168.0.1 [mysql_cluster] ndb-connectstring=192.168.0.1
初始化与启动集群
首先初始化SQL节点的系统库,然后按照管理节点、数据节点、SQL节点的顺序启动服务:
# 初始化SQL节点 /usr/local/mysql-cluster/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql-cluster --datadir=/usr/local/mysql-cluster/data # 启动管理节点,首次启动加--initial参数 /usr/local/mysql-cluster/bin/ndb_mgmd -f /usr/local/mysql-cluster/conf/config.ini --initial # 启动数据节点,首次启动加--initial参数 /usr/local/mysql-cluster/bin/ndbd --initial # 启动SQL节点 /usr/local/mysql-cluster/bin/mysqld_safe --user=mysql &
集群状态验证
使用管理节点的客户端工具查看集群所有节点的运行状态,确认所有节点正常连接:
/usr/local/mysql-cluster/bin/ndb_mgm -e show
如果输出中所有节点的状态显示为connected,说明集群部署成功。后续可以创建NDB存储引擎的表验证数据同步功能,创建表时指定ENGINE=NDB即可让表数据在集群数据节点间同步存储。
常见问题说明
- 编译时提示ncurses库缺失,需要安装ncurses-devel包后再重新执行cmake
- 数据节点启动失败,检查datadir目录权限是否属于mysql用户,执行chown -R mysql:mysql /usr/local/mysql-cluster/data修改权限
- SQL节点无法连接集群,检查my.cnf中ndb-connectstring配置的地址和管理节点地址是否一致,同时确认防火墙已开放对应端口
MySQL_Cluster源码编译数据库集群分布式存储修改时间:2026-06-06 23:44:36