温馨提示×

如何在Ubuntu上配置MariaDB集群

小樊
47
2025-10-16 14:12:28
栏目: 云计算

在Ubuntu上配置MariaDB集群可以通过多种方式实现,其中一种常见的方法是使用MariaDB Galera Cluster。Galera Cluster是一个多主复制解决方案,可以提供高可用性和数据一致性。以下是一个基本的步骤指南:

前提条件

  1. Ubuntu版本:确保你使用的是Ubuntu 16.04或更高版本。
  2. MariaDB版本:建议使用MariaDB 10.1或更高版本。

步骤指南

1. 安装MariaDB

首先,在所有节点上安装MariaDB。

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

2. 配置MariaDB

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

编辑/etc/mysql/mariadb.conf.d/50-server.cnf文件

在每个节点上编辑/etc/mysql/mariadb.conf.d/50-server.cnf文件,添加或修改以下内容:

[mysqld]
# 基本配置
bind-address = 0.0.0.0
server-id = 1  # 每个节点的唯一ID

# Galera Cluster配置
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://<node1_ip>,<node2_ip>,<node3_ip>
wsrep_node_name=<node_name>
wsrep_node_address=<node_ip>
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=your_sst_user:your_sst_password
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
  • <node1_ip>, <node2_ip>, <node3_ip>:所有节点的IP地址。
  • <node_name>:每个节点的唯一名称。
  • <node_ip>:当前节点的IP地址。
  • your_sst_useryour_sst_password:用于SST(State Snapshot Transfer)的用户和密码。
重启MariaDB服务

在每个节点上重启MariaDB服务以应用配置更改:

sudo systemctl restart mariadb

3. 初始化集群

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

sudo mysql -u root -p

在MySQL shell中执行以下命令:

CREATE USER 'sstuser'@'%' IDENTIFIED BY 'your_sst_password';
GRANT ALL PRIVILEGES ON *.* TO 'sstuser'@'%';
FLUSH PRIVILEGES;
EXIT;

然后,在第一个节点上启动Galera集群:

SET GLOBAL wsrep_cluster_size=3;
SET GLOBAL wsrep_cluster_name='mariadb_cluster';
START SLAVE;

4. 加入其他节点

在其他节点上启动MariaDB服务后,它们会自动尝试加入集群。如果它们没有自动加入,可以手动触发:

sudo mysql -u root -p

在MySQL shell中执行以下命令:

STOP SLAVE;
SET GLOBAL wsrep_cluster_address=gcomm://<node1_ip>,<node2_ip>,<node3_ip>;
START SLAVE;

5. 验证集群状态

在任意节点上检查集群状态:

SHOW STATUS LIKE 'wsrep_cluster_size';
SHOW STATUS LIKE 'wsrep_local_state_comment';

如果wsrep_cluster_size显示为集群中的节点数,并且wsrep_local_state_comment显示为Synced,则表示集群已经成功配置并运行。

注意事项

  • 确保所有节点之间的网络连接正常。
  • 在生产环境中,建议使用更安全的认证方式和配置。
  • 定期备份数据以防止数据丢失。

通过以上步骤,你应该能够在Ubuntu上成功配置一个MariaDB Galera Cluster。

0