一、环境准备
apt list --installed | grep mariadb-server确认版本。二、添加MariaDB官方源(可选但推荐)
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8。sudo add-apt-repository 'deb [arch=amd64] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.11/debian bookworm main'(替换为对应版本和系统代号)。sudo apt update。三、安装MariaDB与Galera组件
sudo apt install mariadb-server galera-4 rsync -y。其中:
mariadb-server:MariaDB数据库核心服务;galera-4:Galera集群同步引擎(MariaDB 10.1+版本已集成,无需单独安装);rsync:数据同步工具,用于Galera集群的状态转移。四、配置MariaDB集群(所有节点)
/etc/mysql/conf.d/galera.cnf),添加以下核心参数(需根据实际IP调整):[mysqld]
# 基础配置
binlog_format=ROW # 必须使用ROW格式保证数据一致性
default-storage-engine=innodb # 推荐使用InnoDB引擎(支持事务)
innodb_autoinc_lock_mode=2 # 解决自增ID冲突
query_cache_size=0 # 关闭查询缓存(提升集群性能)
query_cache_type=0
bind-address=0.0.0.0 # 允许远程访问
# Galera集群配置
wsrep_provider=/usr/lib/galera/libgalera_smm.so # Galera提供者路径(MariaDB 10.4+可能位于/lib/x86_64-linux-gnu/galera)
wsrep_cluster_name="my_wsrep_cluster" # 集群名称(所有节点必须一致)
wsrep_cluster_address="gcomm://192.168.1.131,192.168.1.132,192.168.1.133" # 所有节点IP列表(初始节点用此格式,后续节点去掉自身IP)
wsrep_node_name="node1" # 当前节点名称(唯一标识,如node1/node2)
wsrep_node_address="192.168.1.131" # 当前节点IP
wsrep_sst_method=rsync # 数据同步方法(推荐rsync,简单高效;也可选xtrabackup)
wsrep_cluster_address初始节点需填写所有节点IP,后续添加的节点需移除自身IP(如node2配置为gcomm://192.168.1.131,192.168.1.133)。五、初始化并启动集群
sudo systemctl stop mariadb(确保所有节点处于停止状态)。sudo systemctl start mariadb --wsrep-new-cluster(--wsrep-new-cluster参数表示初始化集群,仅第一次启动需要)。sudo systemctl start mariadb(会自动连接到已初始化的集群)。mysql -u root -p。SELECT VARIABLE_VALUE AS "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"。若返回值等于节点数量,则说明集群初始化成功。六、配置MariaDB远程访问(可选但常用)
mysql -u root -p。GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'YourStrongPassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
/etc/mysql/mariadb.conf.d/50-server.cnf,注释bind-address = 127.0.0.1(取消本地绑定),保存后重启服务:sudo systemctl restart mariadb。七、防火墙放通端口
ufw(Ubuntu默认防火墙)或iptables放通所需端口(以ufw为例):sudo ufw allow 3306/tcp # MariaDB服务端口
sudo ufw allow 4444/tcp # 状态快照传输端口
sudo ufw allow 4567/tcp # 复制流量端口
sudo ufw allow 4568/tcp # 增量状态转移端口
sudo ufw enable # 启用防火墙
八、添加新节点(集群扩容)
galera.cnf文件,将wsrep_cluster_address修改为现有集群节点IP列表(如gcomm://192.168.1.131,192.168.1.132,192.168.1.133)。sudo systemctl start mariadb(会自动同步现有集群数据)。SELECT VARIABLE_VALUE AS "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size",确认返回值增加1。