ubuntu mysql集群搭建步骤
导读:Ubuntu 上搭建 MySQL 集群的三种常用方案与步骤 一、方案选型与适用场景 MySQL NDB Cluster(共享无共享架构) 组件:管理节点 ndb_mgmd、数据节点 ndbd/ndbmtd、SQL 节点 mysqld...
Ubuntu 上搭建 MySQL 集群的三种常用方案与步骤
一、方案选型与适用场景
-
MySQL NDB Cluster(共享无共享架构)
- 组件:管理节点 ndb_mgmd、数据节点 ndbd/ndbmtd、SQL 节点 mysqld。
- 特点:内存型、强一致、实时高可用,适合高吞吐与低延迟场景。
- 建议:至少 1 管理 + 2 数据 + 2 SQL,数据节点需为偶数便于副本分布。
-
Galera Cluster(多主同步复制)
- 实现:MariaDB Galera 或 Percona XtraDB Cluster(PXC),基于 wsrep 的同步多主。
- 特点:多主写入、自动节点自愈、对应用透明,适合读写分离与高可用。
- 建议:至少 3 节点,网络稳定,SST 方法优先 rsync/xtrabackup。
-
MySQL 主从复制(异步/半同步)
- 组件:1 主 + N 从,基于 binlog 的复制。
- 特点:部署简单、成本低,读扩展友好,主库单点需业务侧容错。
- 建议:关键业务配合 半同步 或 GTID 提升一致性。
二、方案一 MySQL NDB Cluster 快速搭建
-
节点规划(示例)
- mgmd:192.168.1.10
- ndbd1:192.168.1.11
- ndbd2:192.168.1.12
- mysqld1:192.168.1.13
- mysqld2:192.168.1.14
-
管理节点 mgmd
- 安装软件(Ubuntu 18.04 示例)
- 安装依赖:
sudo apt-get update & & sudo apt-get install -y libaio1 libmecab2 - 下载并安装 MySQL Cluster 7.6 二进制包(.deb-bundle),按依赖顺序
dpkg -i安装。
- 安装依赖:
- 创建配置
/var/lib/mysql-cluster/config.ini[ndb_mgmd DEFAULT] PortNumber=1186 [ndb_mgmd] HostName=192.168.1.10 DataDir=/var/lib/mysql-cluster [ndbd DEFAULT] NoOfReplicas=2 DataMemory=80M IndexMemory=18M DataDir=/usr/local/mysql/data [ndbd] HostName=192.168.1.11 [ndbd] HostName=192.168.1.12 [mysqld] HostName=192.168.1.13 [mysqld] HostName=192.168.1.14 - 启动管理节点
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-clusterndb_mgm进入控制台,执行show查看节点状态。
- 安装软件(Ubuntu 18.04 示例)
-
数据节点 ndbd
- 安装同版本 MySQL Cluster 二进制包(同上)。
- 配置
/etc/mysql/my.cnf[mysqld] ndbcluster [mysql_cluster] ndb-connectstring=192.168.1.10:1186 - 创建数据目录:
sudo mkdir -p /usr/local/mysql/data & & sudo chown mysql:mysql /usr/local/mysql/data - 启动:
sudo ndbd(首次可加--initial做初始化)。
-
SQL 节点 mysqld
- 安装 MySQL Server(与 Cluster 版本匹配)。
- 配置
/etc/mysql/my.cnf[mysqld] ndbcluster ndb-connectstring=192.168.1.10:1186 - 启动:
sudo systemctl restart mysql - 验证:
ndb_mgm -e "show"应看到 ndbd/ndbmtd 与 mysqld 均已连接。
三、方案二 Galera Cluster(MariaDB 或 PXC)快速搭建
-
节点规划(示例)
- node1:192.168.1.21
- node2:192.168.1.22
- node3:192.168.1.23
-
所有节点安装
- Ubuntu 16.04/18.04 可直接安装 MariaDB(自带 Galera):
sudo apt-get install -y mariadb-server rsync - 安全初始化:
sudo mysql_secure_installation - 防火墙放行端口(UFW):
sudo ufw allow 3306,4567,4568,4444/tcp与sudo ufw allow 4567/udp。
- Ubuntu 16.04/18.04 可直接安装 MariaDB(自带 Galera):
-
统一配置
/etc/mysql/conf.d/galera.cnf[mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_name="my_galera" wsrep_cluster_address="gcomm://192.168.1.21,192.168.1.22,192.168.1.23" wsrep_sst_method=rsync wsrep_node_address="this_node_ip" wsrep_node_name="this_node_name"将
this_node_ip/name替换为各节点实际值。 -
启动集群
- 在 node1 初始化:
sudo galera_new_cluster(或systemctl start mysql --wsrep-new-cluster) - 在 node2/node3 启动:
sudo systemctl start mysql - 验证:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'; "应返回 3。
- 在 node1 初始化:
四、方案三 MySQL 主从复制快速搭建
-
节点规划(示例)
- master:192.168.1.31
- slave:192.168.1.32
-
主库配置
/etc/mysql/mysql.conf.d/mysqld.cnf[mysqld] server-id=1 log_bin=/var/log/mysql/mysql-bin.log bind-address=192.168.1.31- 重启:
sudo systemctl restart mysql - 创建复制账号并授权:
CREATE USER 'replica'@'192.168.1.32' IDENTIFIED BY 'ReplicaPass!'; GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.1.32'; FLUSH PRIVILEGES; SHOW MASTER STATUS; -- 记录 File 与 Position
- 重启:
-
从库配置
/etc/mysql/mysql.conf.d/mysqld.cnf[mysqld] server-id=2 relay_log=/var/log/mysql/mysql-relay-bin.log bind-address=192.168.1.32 read_only=1- 重启:
sudo systemctl restart mysql - 配置复制链路并启动:
CHANGE MASTER TO MASTER_HOST='192.168.1.31', MASTER_USER='replica', MASTER_PASSWORD='ReplicaPass!', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=629; START SLAVE; SHOW SLAVE STATUS\G -- 确认 Slave_IO_Running/Slave_SQL_Running 均为 Yes
- 重启:
-
验证:在主库创建库表,在从库
SHOW DATABASES;应可见同步结果。
五、通用排错与运维要点
- 网络与防火墙
- 确认节点间 互通,必要时仅放通内网网段;Galera 需放行 3306/4567(tcp& udp)/4568/4444。
- 服务启动顺序
- NDB:先
ndb_mgmd,再ndbd,最后mysqld;用ndb_mgm> show检查。 - Galera:首个节点用
galera_new_cluster或--wsrep-new-cluster初始化,其余节点正常start mysql。
- NDB:先
- 数据与一致性
- 首次部署建议全量备份/恢复;Galera 选择 rsync/xtrabackup 作为 SST;NDB 注意 NoOfReplicas 与内存参数。
- 监控与验证
- NDB:
ndb_mgm -e "show";Galera:SHOW STATUS LIKE 'wsrep%';;复制:SHOW SLAVE STATUS\G。
- NDB:
- 安全加固
- 限制数据库端口来源 IP、使用 强口令/SSL、定期备份与演练恢复。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu mysql集群搭建步骤
本文地址: https://pptw.com/jishu/759638.html
