Debian MariaDB 集群部署方案
一 方案选型与拓扑
二 环境准备与基础配置
apt update && apt install -y mariadb-server mariadb-client galera-4mysql_secure_installation 完成 root 密码、匿名用户、test 库、远程 root 等安全项设置。firewall-cmd --permanent --add-port={3306,4567,4568,4444}/tcp --permanent --add-port=4567/udp && firewall-cmd --reload。如使用云安全组,同样需放行上述端口段。三 Galera 集群部署步骤
/etc/mysql/mariadb.conf.d/50-server.cnf,注释或调整 bind-address,确保监听 0.0.0.0(或指定内网地址),并开启必要的 InnoDB 与复制参数(见下一节示例片段)。/etc/mysql/mariadb.conf.d/galera.cnf,设置 wsrep_* 关键参数(集群名、节点地址、SST 方法、节点名/IP 等)。systemctl start mariadb --wsrep-new-clustersystemctl start mariadb(将自动与集群同步)mysql -uroot -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';" 应返回集群节点数(如 3)。--wsrep-new-cluster 启动,其余节点常规启动即可加入。debian-sys-maint 访问被拒,确保各节点 /etc/mysql/debian.cnf 内容一致(尤其是密码)。四 高可用接入与运维要点
binlog_format=ROWinnodb_autoinc_lock_mode=2default-storage-engine=InnoDBbind-address=0.0.0.0(或内网地址)rsync;生产建议 mariabackup(需安装相应包并配置凭据)wsrep_node_address 与 wsrep_node_name,避免自动探测异常。mariabackup/mysqldump),并在变更窗口外执行;SST 选用 mariabackup 可获得一致性更好的全量同步。galera.cnf 后直接启动,将自动完成 IST/SST 同步;缩容:先迁移业务连接,再下线节点,确保 wsrep_cluster_size 符合预期。五 配置片段示例
[mysqld]
bind-address = 0.0.0.0
skip-name-resolve
binlog_format = ROW
default-storage-engine = InnoDB
innodb_autoinc_lock_mode= 2
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
[mysqld]
wsrep_on = ON
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_name = "galera_prod"
wsrep_cluster_address = "gcomm://192.168.100.111,192.168.100.112,192.168.100.113"
wsrep_node_address = "本机内网IP"
wsrep_node_name = "本机主机名"
wsrep_sst_method = rsync # 生产建议 mariabackup
wsrep_sst_auth = "sstuser:StrongPass" # 仅 mariabackup 需要
注:首次引导仅在一个节点执行 systemctl start mariadb --wsrep-new-cluster,其余节点直接 systemctl start mariadb。