在Linux上配置MariaDB集群可以通过多种方式实现,其中最常见的是使用MariaDB Galera Cluster。Galera Cluster是一个多主复制解决方案,支持同步复制,确保数据在所有节点之间的一致性。以下是配置MariaDB Galera Cluster的基本步骤:
在所有节点上安装MariaDB:
sudo apt-get update
sudo apt-get install mariadb-server mariadb-client
在每个节点上进行以下配置:
编辑MariaDB配置文件:
sudo nano /etc/mysql/my.cnf
添加或修改以下配置:
[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。重启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状态,说明集群配置成功。
通过以上步骤,你可以在Linux上成功配置一个MariaDB Galera Cluster。