温馨提示×

linux下mariadb集群怎么搭建

小樊
45
2025-10-03 21:01:41
栏目: 云计算

在Linux下搭建MariaDB集群,通常可以使用MariaDB Galera Cluster。Galera Cluster是一个多主复制解决方案,支持同步复制和自动节点加入。以下是搭建MariaDB Galera Cluster的基本步骤:

1. 准备工作

确保所有节点上都安装了MariaDB,并且版本一致。

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

2. 配置MariaDB

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

编辑/etc/mysql/my.cnf文件

[mysqld]
# 基本配置
server-id = 1  # 每个节点的唯一ID
wsrep_cluster_address = gcomm://<node1_ip>,<node2_ip>,<node3_ip>  # 集群地址
wsrep_node_name = <node_name>  # 节点名称
wsrep_provider = /usr/lib/galera/libgalera_smm.so  # Galera提供者路径
wsrep_sst_method = rsync  # SST方法
wsrep_sst_auth = sstuser:sstpassword  # SST认证信息
binlog_format = ROW  # 行格式
default_storage_engine = innodb  # 默认存储引擎
innodb_autoinc_lock_mode = 2  # 自增锁模式

# 性能优化
innodb_buffer_pool_size = 70%  # 缓冲池大小
innodb_log_file_size = 256M  # 日志文件大小
innodb_log_buffer_size = 16M  # 日志缓冲区大小
innodb_flush_log_at_trx_commit = 1  # 事务提交时刷新日志

创建SST用户

在每个节点上创建一个用于SST的用户:

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

3. 启动MariaDB服务

在每个节点上启动MariaDB服务:

sudo systemctl start mariadb
sudo systemctl enable mariadb

4. 加入集群

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

sudo mysql -u root -p

在MySQL shell中执行:

SHOW STATUS LIKE 'wsrep_cluster_size';

如果显示wsrep_cluster_size为0,说明集群还没有节点加入。在第一个节点上执行:

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

然后重启MariaDB服务:

sudo systemctl restart mariadb

在其他节点上,启动MariaDB服务后,它们会自动加入集群。

5. 验证集群状态

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

SHOW STATUS LIKE 'wsrep_cluster_size';

如果显示的集群大小大于1,说明集群已经成功搭建。

6. 配置负载均衡和故障转移

可以使用HAProxy或Keepalived等工具来配置负载均衡和故障转移。

注意事项

  • 确保所有节点的时间同步。
  • 确保防火墙允许MariaDB的通信端口(默认3306)。
  • 根据实际需求调整配置参数。

通过以上步骤,你可以在Linux下搭建一个基本的MariaDB Galera Cluster。根据具体需求,可能还需要进行更多的配置和优化。

0