首页主机资讯Linux MariaDB集群搭建步骤是什么

Linux MariaDB集群搭建步骤是什么

时间2025-11-04 22:31:03发布访客分类主机资讯浏览754
导读:一、准备工作 环境确认:选择一致的Linux发行版(如Ubuntu 22.04+、CentOS 8+),准备3台及以上服务器(建议奇数台以提升容错能力);确保所有节点之间可通过SSH无密码互访(使用ssh-keygen和ssh-copy-...

一、准备工作

  1. 环境确认:选择一致的Linux发行版(如Ubuntu 22.04+、CentOS 8+),准备3台及以上服务器(建议奇数台以提升容错能力);确保所有节点之间可通过SSH无密码互访(使用ssh-keygenssh-copy-id配置)。
  2. 网络配置:关闭节点防火墙(测试阶段)或放行关键端口(3306:MariaDB服务端口、4567:Galera集群通信端口、4568:IST/SST端口);确保节点间网络延迟≤10ms(可使用pingtraceroute检测)。
  3. 软件版本:选择兼容的MariaDB版本(推荐10.11+)及对应Galera Provider(如Galera 4+),避免版本冲突。

二、安装MariaDB基础组件 在所有节点执行以下操作:

  1. 更新系统软件包:sudo apt update & & sudo apt upgrade -y(Ubuntu)或sudo yum update -y(CentOS)。
  2. 安装MariaDB Server及Client:sudo apt install mariadb-server mariadb-client -y(Ubuntu)或sudo yum install mariadb-server mariadb-client -y(CentOS)。
  3. 初始安全加固:运行sudo mysql_secure_installation,设置root密码、移除匿名用户、禁止root远程登录、删除测试数据库。

三、配置MariaDB集群参数 在所有节点编辑MariaDB配置文件(路径因发行版而异,Ubuntu通常为/etc/mysql/mariadb.conf.d/99-cluster.cnf,CentOS为/etc/my.cnf.d/galera.cnf),添加以下核心配置:

[mysqld]
# 基础配置
bind-address = 0.0.0.0  # 允许远程访问
default-storage-engine = InnoDB  # 使用InnoDB引擎(Galera仅支持InnoDB)
innodb_autoinc_lock_mode = 2  # 解决自增ID冲突
character-set-server = utf8mb4  # 设置字符集
collation-server = utf8mb4_general_ci

# Galera集群配置
wsrep_on = ON  # 开启Galera功能
wsrep_provider = /usr/lib/galera/libgalera_smm.so  # Galera Provider路径(Ubuntu/CentOS路径可能不同)
wsrep_cluster_name = "galera_cluster"  # 集群名称(所有节点必须一致)
wsrep_cluster_address = "gcomm://node1-ip,node2-ip,node3-ip"  # 集群节点地址列表(初始为空,用于第一个节点初始化)
wsrep_node_address = "当前节点IP"  # 当前节点IP地址
wsrep_node_name = "node1"  # 当前节点名称(需唯一,如node1/node2/node3)
wsrep_sst_method = rsync  # 数据同步方法(可选rsync/xtrabackup-v2,xtrabackup更安全)
wsrep_sst_auth = sst_user:password  # SST用户及密码(用于数据同步授权,需提前创建)

注:wsrep_cluster_address在第一个节点初始化时需设为gcomm://(空集群),后续节点加入时再改为完整节点列表。

四、初始化集群

  1. 第一个节点(Primary):停止MariaDB服务(sudo systemctl stop mariadb),执行初始化命令生成集群:
    sudo galera_new_cluster
    
    启动MariaDB服务:sudo systemctl start mariadb
  2. 验证第一个节点状态:登录MySQL,执行以下命令检查集群状态:
    mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';
        "
    
    wsrep_cluster_size值为1,说明第一个节点初始化成功。
  3. 后续节点(Secondary):停止MariaDB服务,修改配置文件中的wsrep_cluster_address为完整节点列表(如gcomm://node1-ip,node2-ip,node3-ip),重启MariaDB服务:
    sudo systemctl restart mariadb
    
    重启后节点会自动加入集群。

五、验证集群状态 在任意节点登录MySQL,执行以下命令:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';
    "
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_ready';
    "
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_connected';
    "
  • wsrep_cluster_size应等于节点总数(如3);
  • wsrep_readywsrep_connected应为ON,表示节点正常连接集群。

六、可选配置(增强集群可用性)

  1. 配置负载均衡:安装HAProxy(sudo apt install haproxy -y),编辑配置文件(/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.11:3306 check
        server node2 192.168.1.12:3306 check
        server node3 192.168.1.13:3306 check
    
    重启HAProxy:sudo systemctl restart haproxy,后续应用可通过负载均衡器IP访问集群。
  2. 设置SST用户:若使用xtrabackup-v2作为同步方法,需提前创建专用用户:
    mysql -u root -p -e "CREATE USER 'sst_user'@'%' IDENTIFIED BY 'strong_password';
        "
    mysql -u root -p -e "GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sst_user'@'%';
        "
    mysql -u root -p -e "FLUSH PRIVILEGES;
        "
    
    并在配置文件中更新wsrep_sst_authsst_user:strong_password

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


若转载请注明出处: Linux MariaDB集群搭建步骤是什么
本文地址: https://pptw.com/jishu/742377.html
如何备份Linux MariaDB数据库 怎样调整Linux MariaDB内存使用

游客 回复需填写必要信息