💡 准备
每台机器已安装 Docker环境。
1,每台机器防火墙(如 firewalld/iptables)已放通以下端口:
3306 MariaDB 连接
4444 Galera State Snapshot Transfer (SST)
4567 Galera 通信
4568 Incremental State Transfer (IST)
2,在每台节点上都创建类似的目录结构:
mkdir -p /data/mysql/{conf,data}
3,📝 创建配置文件 /opt/galera/conf/custom.cnf
这个配置文件每个节点内容一致
[mysqld]
server-id=1
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
# Galera settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name="my_galera_cluster"
wsrep_cluster_address="gcomm://192.168.1.101,192.168.1.102,192.168.1.103"
wsrep_node_address="THIS_NODE_IP"
wsrep_node_name="THIS_NODE_NAME"
wsrep_sst_method=rsync
# Authentication
# root密码或自定义密码
替换:
THIS_NODE_IP 为当前节点 IP
THIS_NODE_NAME 为节点名,如 node1、node2、node3
4,🚀 启动集群
第一步:启动第一个节点(Bootstrap)
在第一台机器执行(必须是 bootstrap 节点):
docker run -d --name mariadb-galera \
--network host \
-e MYSQL_ROOT_PASSWORD=密码 \
-v /data/mysql/conf:/etc/mysql/conf.d \
-v /data/mysql/data:/var/lib/mysql \
mariadb:10.11 \
--wsrep-new-cluster
–wsrep-new-cluster 表示初始化 Galera 集群。
第二步:启动其余两个节点
docker run -d --name mariadb-galera \
--network host \
-e MYSQL_ROOT_PASSWORD=密码 \
-v /opt/galera/conf:/etc/mysql/conf.d \
-v /opt/galera/data:/var/lib/mysql \
mariadb:10.11
✅ 验证集群状态
登录其中一个节点:
docker exec -it mariadb-galera mysql -uroot -p
SHOW STATUS LIKE 'wsrep_cluster_size';
应返回 3 表示有 3 个节点。

📌 小贴士
使用 rsync 作为 SST 方式最简单,不需要额外配置账户。
生产环境推荐用 xtrabackup-v2,需要额外工具支持。
建议使用 supervisord 或 systemd 管理容器,保证重启自动拉起。
No Comments