关于在RHEL 7上安装MariaDB Galera Cluster 11.1.11的技术咨询
嗨 Vijay,我刚好有在RHEL 7上部署MariaDB Galera Cluster 11.1.11的实操经验,针对你关注的tar包安装MariaDB 11.1.11和RPM安装Galera的方式,整理了一步步的实操指引,你可以跟着来:
1. 提前准备依赖与系统用户
首先安装编译和运行所需的依赖包:
yum install -y gcc-c++ libaio-devel openssl-devel ncurses-devel numactl
然后创建MariaDB专用的系统用户和组(避免用root运行服务):
groupadd mysql useradd -r -g mysql -s /sbin/nologin mysql
2. 下载并解压Tar包
下载MariaDB 11.1.11的Linux x86_64版本tar包(你可以从MariaDB官方渠道获取对应包),然后解压到/usr/local目录:
tar -xvf mariadb-11.1.11-linux-x86_64.tar.gz -C /usr/local/
为了方便后续操作,创建一个软链接指向安装目录:
ln -s /usr/local/mariadb-11.1.11-linux-x86_64 /usr/local/mysql
3. 配置目录权限与数据目录
设置安装目录的所有者为mysql用户:
chown -R mysql:mysql /usr/local/mysql
创建独立的数据存储目录(推荐和安装目录分离,方便备份):
mkdir -p /data/mysql chown -R mysql:mysql /data/mysql
4. 初始化MariaDB
进入MariaDB安装目录,执行初始化命令(注意11.1版本用mariadb-install-db替代了旧版的mysql_install_db):
cd /usr/local/mysql bin/mariadb-install-db --user=mysql --datadir=/data/mysql
5. 配置系统服务与环境变量
复制官方提供的systemd服务文件到系统目录:
cp support-files/systemd/mariadb.service /usr/lib/systemd/system/
编辑服务文件,修正执行路径和数据目录(用vi或nano打开):
[Service] ExecStart=/usr/local/mysql/bin/mariadbd --datadir=/data/mysql PIDFile=/data/mysql/mariadb.pid
重新加载systemd配置并设置开机自启:
systemctl daemon-reload systemctl enable mariadb
最后把MariaDB的bin目录加到系统PATH,方便全局调用命令:
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile source /etc/profile
6. 启动服务并完成安全配置
启动MariaDB服务:
systemctl start mariadb
运行安全初始化脚本,设置root密码、删除匿名用户、关闭远程root登录等:
mysql_secure_installation
MariaDB 11.1版本对应使用Galera 4,我们可以通过YUM源或直接下载RPM包安装:
1. 配置Galera YUM源
创建Galera的YUM源配置文件/etc/yum.repos.d/galera.repo:
[galera] name=Galera Repository baseurl=https://releases.galeracluster.com/galera-4/rhel/7/x86_64/ gpgkey=https://releases.galeracluster.com/GPG-KEY-galeracluster.com gpgcheck=1 enabled=1
2. 安装Galera包
执行安装命令:
yum install -y galera-4
3. 验证安装
运行以下命令验证Galera是否安装成功:
galera_recovery
如果输出类似Galera 4.x.x的版本信息,说明安装没问题。
装完MariaDB和Galera后,需要配置集群参数:
- 编辑MariaDB的配置文件(tar包安装默认路径是
/usr/local/mysql/my.cnf,也可以放在/etc/my.cnf.d/server.cnf),添加以下Galera相关配置:
[mysqld] # 基础配置 binlog_format=ROW default-storage-engine=InnoDB innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 # Galera集群配置 wsrep_on=ON wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so wsrep_cluster_name="my_galera_cluster" wsrep_cluster_address="gcomm://node1_ip,node2_ip,node3_ip" # 替换成你的集群节点IP wsrep_node_name="node1" # 当前节点的名称 wsrep_node_address="node1_ip" # 当前节点的IP wsrep_sst_method=rsync # 数据同步方式,rsync适合小集群
- 启动第一个集群节点(必须加
--wsrep-new-cluster参数初始化集群):
systemctl start mariadb --wsrep-new-cluster
- 其他节点直接启动服务即可自动加入集群:
systemctl start mariadb
- 登录MariaDB验证集群状态:
SHOW STATUS LIKE 'wsrep_cluster_size';
如果返回的Value等于你的集群节点数,说明集群搭建成功。
内容的提问来源于stack exchange,提问作者Vijaykumar S Mathad

