Linux MariaDB集群搭建步骤是什么
导读:一、准备工作 环境确认:选择一致的Linux发行版(如Ubuntu 22.04+、CentOS 8+),准备3台及以上服务器(建议奇数台以提升容错能力);确保所有节点之间可通过SSH无密码互访(使用ssh-keygen和ssh-copy-...
一、准备工作
- 环境确认:选择一致的Linux发行版(如Ubuntu 22.04+、CentOS 8+),准备3台及以上服务器(建议奇数台以提升容错能力);确保所有节点之间可通过SSH无密码互访(使用
ssh-keygen和ssh-copy-id配置)。 - 网络配置:关闭节点防火墙(测试阶段)或放行关键端口(3306:MariaDB服务端口、4567:Galera集群通信端口、4568:IST/SST端口);确保节点间网络延迟≤10ms(可使用
ping和traceroute检测)。 - 软件版本:选择兼容的MariaDB版本(推荐10.11+)及对应Galera Provider(如Galera 4+),避免版本冲突。
二、安装MariaDB基础组件 在所有节点执行以下操作:
- 更新系统软件包:
sudo apt update & & sudo apt upgrade -y(Ubuntu)或sudo yum update -y(CentOS)。 - 安装MariaDB Server及Client:
sudo apt install mariadb-server mariadb-client -y(Ubuntu)或sudo yum install mariadb-server mariadb-client -y(CentOS)。 - 初始安全加固:运行
sudo mysql_secure_installation,设置root密码、移除匿名用户、禁止root远程登录、删除测试数据库。
三、配置MariaDB集群参数
在所有节点编辑MariaDB配置文件(路径因发行版而异,Ubuntu通常为/etc/mysql/mariadb.conf.d/99-cluster.cnf,CentOS为/etc/my.cnf.d/galera.cnf),添加以下核心配置:
[mysqld]
# 基础配置
bind-address = 0.0.0.0 # 允许远程访问
default-storage-engine = InnoDB # 使用InnoDB引擎(Galera仅支持InnoDB)
innodb_autoinc_lock_mode = 2 # 解决自增ID冲突
character-set-server = utf8mb4 # 设置字符集
collation-server = utf8mb4_general_ci
# Galera集群配置
wsrep_on = ON # 开启Galera功能
wsrep_provider = /usr/lib/galera/libgalera_smm.so # Galera Provider路径(Ubuntu/CentOS路径可能不同)
wsrep_cluster_name = "galera_cluster" # 集群名称(所有节点必须一致)
wsrep_cluster_address = "gcomm://node1-ip,node2-ip,node3-ip" # 集群节点地址列表(初始为空,用于第一个节点初始化)
wsrep_node_address = "当前节点IP" # 当前节点IP地址
wsrep_node_name = "node1" # 当前节点名称(需唯一,如node1/node2/node3)
wsrep_sst_method = rsync # 数据同步方法(可选rsync/xtrabackup-v2,xtrabackup更安全)
wsrep_sst_auth = sst_user:password # SST用户及密码(用于数据同步授权,需提前创建)
注:wsrep_cluster_address在第一个节点初始化时需设为gcomm://(空集群),后续节点加入时再改为完整节点列表。
四、初始化集群
- 第一个节点(Primary):停止MariaDB服务(
sudo systemctl stop mariadb),执行初始化命令生成集群:
启动MariaDB服务:sudo galera_new_clustersudo systemctl start mariadb。 - 验证第一个节点状态:登录MySQL,执行以下命令检查集群状态:
若mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'; "wsrep_cluster_size值为1,说明第一个节点初始化成功。 - 后续节点(Secondary):停止MariaDB服务,修改配置文件中的
wsrep_cluster_address为完整节点列表(如gcomm://node1-ip,node2-ip,node3-ip),重启MariaDB服务:
重启后节点会自动加入集群。sudo systemctl restart mariadb
五、验证集群状态 在任意节点登录MySQL,执行以下命令:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';
"
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_ready';
"
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_connected';
"
wsrep_cluster_size应等于节点总数(如3);wsrep_ready和wsrep_connected应为ON,表示节点正常连接集群。
六、可选配置(增强集群可用性)
- 配置负载均衡:安装HAProxy(
sudo apt install haproxy -y),编辑配置文件(/etc/haproxy/haproxy.cfg),添加以下内容:
重启HAProxy:frontend mysql_front bind 192.168.1.100:3306 # 负载均衡器IP default_backend mysql_back backend mysql_back balance roundrobin # 轮询算法 server node1 192.168.1.11:3306 check server node2 192.168.1.12:3306 check server node3 192.168.1.13:3306 checksudo systemctl restart haproxy,后续应用可通过负载均衡器IP访问集群。 - 设置SST用户:若使用
xtrabackup-v2作为同步方法,需提前创建专用用户:并在配置文件中更新mysql -u root -p -e "CREATE USER 'sst_user'@'%' IDENTIFIED BY 'strong_password'; " mysql -u root -p -e "GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sst_user'@'%'; " mysql -u root -p -e "FLUSH PRIVILEGES; "wsrep_sst_auth为sst_user:strong_password。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux MariaDB集群搭建步骤是什么
本文地址: https://pptw.com/jishu/742377.html
