首页主机资讯Ubuntu MariaDB集群搭建流程是怎样的

Ubuntu MariaDB集群搭建流程是怎样的

时间2025-10-31 21:26:03发布访客分类主机资讯浏览599
导读:Ubuntu环境下搭建MariaDB Galera Cluster实战流程 一、准备工作 环境要求:需3台及以上运行Ubuntu(推荐22.04及以上)的服务器,确保节点间可通过SSH互相访问。 网络配置:关闭节点间防火墙或开放3306(...

Ubuntu环境下搭建MariaDB Galera Cluster实战流程

一、准备工作

  1. 环境要求:需3台及以上运行Ubuntu(推荐22.04及以上)的服务器,确保节点间可通过SSH互相访问。
  2. 网络配置:关闭节点间防火墙或开放3306(MySQL服务端口)4567(Galera集群通信端口)4568(IST/SST端口),避免网络隔离导致集群同步失败。
  3. 版本兼容性:选择MariaDB 10.1及以上版本(Ubuntu 22.04仓库默认提供MariaDB 10.6+,兼容Galera 4)。

二、安装MariaDB Server

在所有节点上执行以下命令,安装MariaDB及依赖:

sudo apt update &
    &
     sudo apt upgrade -y  # 更新系统包
sudo apt install mariadb-server mariadb-client -y  # 安装MariaDB

安装完成后,通过mysql --version确认安装版本。

三、配置MariaDB集群(关键步骤)

1. 创建Galera配置文件

在每个节点的/etc/mysql/conf.d/目录下新建galera.cnf(避免覆盖默认配置),添加以下内容(需替换为实际节点IP):

[mysqld]
# 基础配置
binlog_format=ROW  # 必须为ROW格式,保证数据同步一致性
default-storage-engine=InnoDB  # 推荐使用InnoDB引擎(支持事务)
innodb_autoinc_lock_mode=2  # 解决多主插入时的自增ID冲突
bind-address=0.0.0.0  # 允许远程访问

# 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://node1-ip,node2-ip,node3-ip"  # 集群节点地址列表(首次初始化需包含所有节点)
wsrep_node_address="当前节点IP"  # 当前节点的IP地址(如192.168.1.111)
wsrep_node_name="node1"  # 当前节点名称(如node1,需唯一标识)
wsrep_sst_method=rsync  # 数据同步方法(可选rsync/xtrabackup-v2,xtrabackup性能更好但需额外安装)

注意wsrep_cluster_address在首次初始化时需包含所有节点IP,后续加入节点时可简化为gcomm://(由集群自动发现其他节点)。

2. 初始化集群

  • 第一步:停止所有节点的MariaDB服务
    在所有节点执行:
    sudo systemctl stop mariadb
    
  • 第二步:在第一个节点上初始化集群
    选择其中一个节点(如node1)作为初始节点,执行:
    galera_new_cluster
    
    此命令会启动集群并生成集群UUID(后续节点需加入该集群)。
  • 第三步:启动其他节点的MariaDB服务
    node2node3等节点执行:
    sudo systemctl start mariadb
    
    节点会自动连接至node1所在的集群。

四、验证集群状态

在任意节点上登录MySQL,执行以下命令查看集群状态:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';
    "

若输出结果中wsrep_cluster_size的值等于节点数量(如3),则说明集群搭建成功。

五、安全加固(可选但推荐)

  1. 运行安全设置向导
    执行sudo mysql_secure_installation,按提示设置root密码、移除匿名用户、禁止root远程登录等。
  2. 配置SST用户(用于数据同步)
    在任意节点登录MySQL,执行:
    CREATE USER 'sst_user'@'%' IDENTIFIED BY 'strong_password';
        
    GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sst_user'@'%';
        
    FLUSH PRIVILEGES;
        
    
    然后在galera.cnf中添加wsrep_sst_auth=sst_user:strong_password(替换为实际用户名密码)。

六、可选:配置负载均衡(提升可用性)

为避免单点故障,可部署HAProxy或Nginx作为负载均衡器,将请求分发至各个MariaDB节点。以HAProxy为例:

  1. 安装HAProxy:sudo apt install haproxy -y
  2. 编辑配置文件/etc/haproxy/haproxy.cfg,添加以下内容:
    frontend mysql_front
        bind 192.168.1.100:3306  # 负载均衡器IP
        default_backend mysql_back
    backend mysql_back
        balance roundrobin  # 轮询算法
        server node1 192.168.1.111:3306 check  # 节点1
        server node2 192.168.1.112:3306 check  # 节点2
        server node3 192.168.1.113:3306 check  # 节点3
    
  3. 重启HAProxy:sudo systemctl restart haproxy
    此后,客户端可连接至负载均衡器IP(如192.168.1.100:3306)访问集群。

注意事项

  • 网络延迟:Galera Cluster对网络延迟敏感,建议节点间延迟≤10ms。
  • 监控与备份:使用Prometheus+Granafa监控集群状态,定期通过mysqldumpxtrabackup备份数据。
  • 版本升级:升级MariaDB前需停止集群,逐个节点升级并验证兼容性。

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


若转载请注明出处: Ubuntu MariaDB集群搭建流程是怎样的
本文地址: https://pptw.com/jishu/740353.html
Ubuntu MariaDB日志管理如何进行 debian进程兼容性问题

游客 回复需填写必要信息