Debian MariaDB如何进行集群搭建
导读:Debian 上 MariaDB Galera 多主集群搭建指南 一 架构与准备 采用 MariaDB Galera Cluster 实现 多主同步复制,建议至少 3 节点,示例 IP:192.168.100.111/112/113。各节...
Debian 上 MariaDB Galera 多主集群搭建指南
一 架构与准备
- 采用 MariaDB Galera Cluster 实现 多主同步复制,建议至少 3 节点,示例 IP:192.168.100.111/112/113。各节点需配置 主机名解析 或内网 DNS,保证互通。系统建议使用 Debian 12,MariaDB 版本示例 10.11。为提升稳定性,建议将各节点 /etc/hosts 加入记录:
192.168.100.111 galera-node1
192.168.100.112 galera-node2
192.168.100.113 galera-node3
同时准备数据库 root 密码与必要的系统账户权限。
二 安装 MariaDB 与 Galera
- 在所有节点安装软件包(Debian 12 通常安装 mariadb-server 会自动拉取 galera-4 等依赖):
apt update & & apt install -y mariadb-server mariadb-client galera-4
安装完成后先不要启动 MariaDB,后续通过引导方式启动第一个节点。
三 配置 Galera
- 编辑配置文件(Debian 12 常用路径:/etc/mysql/mariadb.conf.d/50-server.cnf),在文件末尾加入 Galera 配置。以下为 galera-node1 示例,其他节点仅修改 wsrep_node_address 与本机 IP:
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=“gcomm://192.168.100.111,192.168.100.112,192.168.100.113”
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name=“MariaDB_Cluster”
wsrep_node_address=“192.168.100.111”
wsrep_node_name=“galera-node1”
说明:- 注释或调整 bind-address,确保监听 0.0.0.0(或指定内网接口)。
- 各节点使用相同 wsrep_cluster_name 与 wsrep_cluster_address,但 wsrep_node_address/name 唯一。
四 启动集群与验证
- 首次引导(仅在一个节点执行,例如 galera-node1):
systemctl stop mariadb
galera_new_cluster
其他节点正常启动:
systemctl start mariadb
验证集群状态(任意节点执行):
mysql -e “show status like ‘wsrep_cluster_size’; ” # 期望值为 3
mysql -e “show status like ‘wsrep_connected’; ” # 期望值为 ON
mysql -e “show status like ‘wsrep_incoming_addresses’; ” # 应列出 3 个节点
mysql -e “show status like ‘wsrep_local_state_comment’; ” # 查看同步状态描述
完成后建议运行 mysql_secure_installation 完成安全初始化(设置 root 密码、移除匿名用户等)。
五 防火墙与常见维护
- 防火墙放通端口(示例为 firewalld,生产可按需收紧网段):
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --permanent --add-port=4567/tcp
firewall-cmd --permanent --add-port=4568/tcp
firewall-cmd --permanent --add-port=4444/tcp
firewall-cmd --reload
说明:- 3306 为 MySQL 客户端/复制流量;
- 4567 为 Galera 复制与组通信(TCP/UDP);
- 4568 为增量状态转移(IST);
- 4444 为状态快照传输(SST,如 rsync)。
- 维护账户一致性(Debian 系常见问题):
集群启动后,除第一个节点外,其他节点的 /etc/mysql/debian.cnf 中 debian-sys-maint 账户密码可能与数据库不一致,导致系统维护任务失败。将第一个节点的该文件内容同步到其余节点,确保 client 与 mysql_upgrade 段一致。 - 重启与引导安全:
正常重启整个集群时,先在一个节点执行 galera_new_cluster,其余节点再启动 mariadb。若某节点报错 “It may not be safe to bootstrap the cluster from this node”,检查 /var/lib/mysql/grastate.dat 的 safe_to_bootstrap 标记;必要时将其设为 1 在该节点引导,或清理 grastate.dat/gvwstate.dat 后重试。 - 重要提示:
- 生产环境避免使用 –wsrep-new-cluster 连接到现有集群;该选项仅用于首次引导。
- 建议始终保留 至少 3 个节点 以获得更稳定的仲裁与容错能力。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian MariaDB如何进行集群搭建
本文地址: https://pptw.com/jishu/762602.html
