温馨提示×

Linux MariaDB如何进行集群配置

小樊
39
2025-09-18 18:26:19
栏目: 云计算

在Linux上配置MariaDB集群可以通过多种方式实现,其中最常见的是使用MariaDB Galera Cluster。Galera Cluster是一个多主复制解决方案,支持同步复制,确保数据在所有节点之间的一致性。以下是配置MariaDB Galera Cluster的基本步骤:

前提条件

  1. 操作系统:确保所有节点运行相同的Linux发行版(例如Ubuntu、CentOS等)。
  2. MariaDB版本:确保所有节点上安装的MariaDB版本相同,并且支持Galera Cluster。
  3. 网络配置:所有节点之间需要能够通过网络互相通信。

安装MariaDB

在所有节点上安装MariaDB:

sudo apt-get update sudo apt-get install mariadb-server mariadb-client 

配置MariaDB

在每个节点上进行以下配置:

  1. 编辑MariaDB配置文件

    sudo nano /etc/mysql/my.cnf 
  2. 添加或修改以下配置

    [mysqld] # Galera Cluster配置 wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_address=gcomm://<node1_ip>,<node2_ip>,<node3_ip> wsrep_node_address=<node_ip> wsrep_node_name=<node_name> wsrep_sst_method=xtrabackup-v2 wsrep_sst_auth=<sst_user>:<sst_password> wsrep_sst_receive_address=<node_ip> wsrep_sst_port=4567 wsrep_certify_peer=true wsrep_on=ON 
    • wsrep_provider:指定Galera提供者的路径。
    • wsrep_cluster_address:指定集群中所有节点的地址,使用gcomm://协议。
    • wsrep_node_address:指定当前节点的IP地址。
    • wsrep_node_name:指定当前节点的名称。
    • wsrep_sst_method:指定SST(State Snapshot Transfer)方法,这里使用xtrabackup-v2
    • wsrep_sst_auth:指定SST用户的认证信息。
    • wsrep_sst_receive_address:指定接收SST的地址。
    • wsrep_sst_port:指定SST端口。
    • wsrep_certify_peer:指定是否认证对等节点。
    • wsrep_on:启用Galera Cluster。
  3. 重启MariaDB服务

    sudo systemctl restart mariadb 

初始化集群

在第一个节点上初始化集群:

sudo mysql -u root -p 

在MySQL shell中执行:

CREATE USER 'sst_user'@'%' IDENTIFIED BY 'sst_password'; GRANT ALL PRIVILEGES ON *.* TO 'sst_user'@'%'; FLUSH PRIVILEGES; 

然后退出MySQL shell并重启MariaDB服务:

sudo systemctl restart mariadb 

在其他节点上启动MariaDB服务:

sudo systemctl start mariadb 

验证集群状态

在任意节点上登录MySQL并检查集群状态:

mysql -u root -p 

在MySQL shell中执行:

SHOW STATUS LIKE 'wsrep%'; 

如果所有节点都显示为ON状态,说明集群配置成功。

注意事项

  • 确保防火墙允许Galera Cluster所需的端口(默认是4567)。
  • 在生产环境中,建议使用更安全的认证方式和配置。

通过以上步骤,你可以在Linux上成功配置一个MariaDB Galera Cluster。

0