Ubuntu MariaDB集群搭建步骤
导读:Ubuntu环境下搭建MariaDB Galera集群步骤 一、准备工作 服务器要求:准备至少3台运行Ubuntu(如20.04/22.04)的服务器,确保每台服务器配置静态IP地址(如192.168.1.101、192.168.1.10...
Ubuntu环境下搭建MariaDB Galera集群步骤
一、准备工作
- 服务器要求:准备至少3台运行Ubuntu(如20.04/22.04)的服务器,确保每台服务器配置静态IP地址(如
192.168.1.101
、192.168.1.102
、192.168.1.103
),并能通过SSH互相访问。 - 系统更新:在所有节点上执行以下命令,更新系统软件包至最新版本:
sudo apt update & & sudo apt upgrade -y
- 网络配置:确保节点间3306端口(MariaDB默认端口)、4567端口(Galera集群通信端口)、**4568端口(SST端口)**开放,可通过
ufw
或iptables
配置防火墙规则。
二、安装MariaDB Server
在所有节点上执行以下命令,安装MariaDB Server及依赖(Galera组件已集成在MariaDB 10.1及以上版本中):
sudo apt install mariadb-server mariadb-client -y
安装完成后,运行安全加固脚本,设置root密码、移除匿名用户、禁止root远程登录等:
sudo mysql_secure_installation
三、配置MariaDB集群
1. 创建Galera配置文件
在每个节点的/etc/mysql/conf.d/
目录下创建galera.cnf
文件(若目录不存在则新建),添加以下配置(需替换为实际节点IP地址):
[mysqld]
# 基础配置
bind-address = 0.0.0.0 # 允许远程连接
default-storage-engine = InnoDB # 使用InnoDB存储引擎(Galera仅支持InnoDB)
innodb_autoinc_lock_mode = 2 # 解决自增ID冲突
binlog_format = ROW # 使用ROW格式二进制日志(Galera要求)
# Galera集群配置
wsrep_on = ON # 开启Galera功能
wsrep_provider = /usr/lib/galera/libgalera_smm.so # Galera provider路径(Ubuntu默认路径)
wsrep_cluster_name = "galera_cluster" # 集群名称(所有节点必须一致)
wsrep_cluster_address = "gcomm://192.168.1.101,192.168.1.102,192.168.1.103" # 集群节点地址列表(初始为空,用于第一个节点初始化)
wsrep_sst_method = rsync # 状态快照传输方法(可选rsync/xtrabackup,rsync性能较好但需关闭防火墙)
wsrep_node_address = "192.168.1.101" # 当前节点IP地址(每个节点需唯一)
wsrep_node_name = "node1" # 当前节点名称(每个节点需唯一,如node1/node2/node3)
注意:wsrep_cluster_address
在第一个节点初始化时需设置为gcomm://
(空集群),后续节点加入时再改为完整节点列表。
2. 验证配置文件语法
在每个节点上执行以下命令,检查MariaDB配置文件语法是否正确:
sudo mysql --help | grep "my.cnf" # 查看配置文件加载路径
sudo mysqld --validate-config # 验证配置文件语法(Ubuntu 22.04+)
四、初始化集群
1. 第一个节点初始化集群
在第一个节点(如192.168.1.101
)上,停止MariaDB服务并初始化集群:
sudo systemctl stop mariadb # 停止MariaDB服务
galera_new_cluster # 初始化集群(生成集群UUID并启动第一个节点)
初始化完成后,启动MariaDB服务:
sudo systemctl start mariadb
2. 其他节点加入集群
在其他节点(如192.168.1.102
、192.168.1.103
)上,修改galera.cnf
文件中的wsrep_cluster_address
为完整节点列表(包含所有节点IP):
wsrep_cluster_address = "gcomm://192.168.1.101,192.168.1.102,192.168.1.103"
然后重启MariaDB服务,使节点加入集群:
sudo systemctl restart mariadb
五、验证集群状态
在任意节点上,登录MariaDB并执行以下命令,检查集群状态:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep%';
"
重点关注以下指标,确认集群正常运行:
wsrep_cluster_size
:集群节点数量(应等于实际节点数,如3);wsrep_cluster_status
:集群状态(应为Primary
,表示集群健康);wsrep_ready
:节点是否准备好接收请求(应为ON
)。
六、后续配置(可选)
1. 安全加固
- 修改root密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPassword';
- 限制root远程访问:
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'; FLUSH PRIVILEGES;
2. 配置负载均衡(可选)
使用HAProxy或Nginx作为负载均衡器,将请求分发到各个MariaDB节点,提高集群可用性。以HAProxy为例,配置步骤如下:
sudo apt install haproxy -y # 安装HAProxy
sudo nano /etc/haproxy/haproxy.cfg # 编辑配置文件
添加以下内容(替换为节点IP地址):
frontend mysql_front
bind 192.168.1.200:3306 # 负载均衡器IP地址
default_backend mysql_back
backend mysql_back
balance roundrobin # 轮询算法
server node1 192.168.1.101:3306 check
server node2 192.168.1.102:3306 check
server node3 192.168.1.103:3306 check
重启HAProxy服务:
sudo systemctl restart haproxy
注意事项
- 网络延迟:Galera Cluster对网络延迟敏感,建议节点间网络延迟≤1ms,避免集群性能下降。
- 数据一致性:Galera采用同步复制,写入操作需等待所有节点确认,可能影响写入性能,需根据业务需求调整
wsrep_sync_wait
参数。 - 备份策略:定期备份集群数据(如使用
mysqldump
或xtrabackup
),防止数据丢失。 - 监控集群:使用
Prometheus+Granafa
或Zabbix
监控集群状态(如节点存活、复制延迟、磁盘空间等),及时发现并解决问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu MariaDB集群搭建步骤
本文地址: https://pptw.com/jishu/722230.html