debian

Debian MariaDB集群搭建方法

小樊
37
2025-10-08 14:44:45
栏目: 云计算

Debian环境下搭建MariaDB Galera集群指南

一、准备工作

1. 环境要求

二、安装MariaDB与Galera组件

1. 更新系统并安装依赖

在所有节点执行以下命令,更新系统并安装必要的工具包:

sudo apt update && sudo apt upgrade -y
sudo apt install -y dirmngr software-properties-common rsync

2. 添加MariaDB官方存储库

以Debian 12为例,添加MariaDB 10.11的官方存储库(其他版本需调整URL):

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.11/debian bookworm main'
sudo apt update

3. 安装MariaDB与Galera

MariaDB 10.1及以上版本已将Galera集成到mariadb-server包中,直接安装即可:

sudo apt install -y mariadb-server galera-4

安装过程中会提示设置root密码(若未提示,后续通过mysql_secure_installation设置)。

三、配置MariaDB集群

1. 配置第一个节点(初始化集群)

在第一个节点(如192.168.1.11)上,创建Galera配置文件/etc/mysql/conf.d/galera.cnf,添加以下内容(替换为实际IP):

[mysqld]
# 基础配置
bind-address = 0.0.0.0  # 允许远程连接
default-storage-engine = InnoDB
innodb_autoinc_lock_mode = 2
binlog_format = ROW

# Galera集群配置
wsrep_on = ON
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_name = "my_galera_cluster"  # 集群名称(所有节点一致)
wsrep_cluster_address = "gcomm://192.168.1.11,192.168.1.12,192.168.1.13"  # 所有节点IP列表
wsrep_node_address = 192.168.1.11  # 当前节点IP
wsrep_node_name = "node1"  # 当前节点名称(可选,用于标识)
wsrep_sst_method = rsync  # 状态同步方法(可选:rsync/xtrabackup/mariabackup)

2. 配置其他节点

在其他节点(如192.168.1.12192.168.1.13)上,修改galera.cnf中的以下参数(保持其他配置一致):

wsrep_node_address = 192.168.1.12  # 替换为当前节点IP
wsrep_node_name = "node2"  # 替换为当前节点名称

注意:所有节点的wsrep_cluster_name必须完全一致,wsrep_cluster_address需包含所有节点IP。

四、启动集群

1. 启动第一个节点(初始化集群)

在第一个节点上,使用--wsrep-new-cluster参数启动MariaDB,初始化集群:

sudo systemctl stop mariadb  # 确保服务已停止
sudo mysqld_safe --wsrep-new-cluster --wsrep-cluster-address="gcomm://192.168.1.11" &

或使用systemd命令(部分版本支持):

sudo systemctl start mariadb --wsrep-new-cluster

2. 启动其他节点

在其他节点上,直接启动MariaDB服务,自动加入集群:

sudo systemctl start mariadb

3. 验证集群状态

在任意节点上登录MariaDB,执行以下命令检查集群状态:

mysql -uroot -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';"

若输出结果中的Value等于节点数量(如3),则表示集群搭建成功。

五、安全加固

1. 运行安全脚本

初始化数据库安全设置,删除匿名用户、禁止远程root登录等:

sudo mysql_secure_installation

按照提示设置root密码、移除匿名用户、禁止root远程登录、删除test数据库。

2. 配置远程访问(可选)

若需远程访问,修改/etc/mysql/mariadb.conf.d/50-server.cnf,注释bind-address

#bind-address = 127.0.0.1

然后授权远程用户:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

3. 放通防火墙端口

放通MariaDB与Galera所需端口:

sudo ufw allow 3306/tcp  # MariaDB客户端连接
sudo ufw allow 4444/tcp  # 状态快照转移
sudo ufw allow 4567/tcp  # Galera复制流量
sudo ufw allow 4568/tcp  # 增量状态转移
sudo ufw reload

六、测试集群功能

1. 创建测试数据库

在任意节点上创建数据库并插入数据:

CREATE DATABASE test_cluster;
USE test_cluster;
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO users (name) VALUES ('Alice'), ('Bob');

2. 验证数据同步

在其他节点上查询数据,确认同步成功:

USE test_cluster;
SELECT * FROM users;

若能查询到AliceBob的记录,则表示集群数据同步正常。

注意事项

0
看了该问题的人还看了