首页主机资讯Ubuntu MariaDB集群搭建步骤

Ubuntu MariaDB集群搭建步骤

时间2025-10-10 10:18:04发布访客分类主机资讯浏览1055
导读:Ubuntu环境下搭建MariaDB Galera集群步骤 一、准备工作 服务器要求:准备至少3台运行Ubuntu(如20.04/22.04)的服务器,确保每台服务器配置静态IP地址(如192.168.1.101、192.168.1.10...

Ubuntu环境下搭建MariaDB Galera集群步骤

一、准备工作

  1. 服务器要求:准备至少3台运行Ubuntu(如20.04/22.04)的服务器,确保每台服务器配置静态IP地址(如192.168.1.101192.168.1.102192.168.1.103),并能通过SSH互相访问。
  2. 系统更新:在所有节点上执行以下命令,更新系统软件包至最新版本:
    sudo apt update &
        &
         sudo apt upgrade -y
    
  3. 网络配置:确保节点间3306端口(MariaDB默认端口)4567端口(Galera集群通信端口)、**4568端口(SST端口)**开放,可通过ufwiptables配置防火墙规则。

二、安装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.102192.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

注意事项

  1. 网络延迟:Galera Cluster对网络延迟敏感,建议节点间网络延迟≤1ms,避免集群性能下降。
  2. 数据一致性:Galera采用同步复制,写入操作需等待所有节点确认,可能影响写入性能,需根据业务需求调整wsrep_sync_wait参数。
  3. 备份策略:定期备份集群数据(如使用mysqldumpxtrabackup),防止数据丢失。
  4. 监控集群:使用Prometheus+GranafaZabbix监控集群状态(如节点存活、复制延迟、磁盘空间等),及时发现并解决问题。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu MariaDB集群搭建步骤
本文地址: https://pptw.com/jishu/722230.html
怎样备份Ubuntu MariaDB数据库 如何修复Ubuntu MariaDB错误

游客 回复需填写必要信息