Welcome to my website, have a nice day!
Dream it, Do it, Make it!

基于Mariadb 10.6.4在CentOS 7环境下配置Galera Cluster集群

这篇文章主要内容是MariaDB Galera Cluster集群搭建过程,至于这个集群的工作原理、优缺点比较,不在这里讨论。

环境信息:

  • CentOS Linux release 7.9.2009 (Core);
  • mariadb-10.6.4;

集群搭建,至少3台机器,信息如下:

IP地址 节点名称
10.200.67.27 MariaDB-Node1
10.200.67.29 MariaDB-Node2
10.200.67.26 MariaDB-Node3

需要安装的组件:MariaDB-serverMariaDB-client。从MariaDB版本10.1开始,MariaDB ServerMariaDB Galera Server安装包已经合并了。安装MariaDB-server会自动安装Galera及其依赖。

具体步骤如下:

一、仓库配置

执行下面命令配置mariadb仓库:

[[email protected] ~]$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
[info] Checking for script prerequisites.
[info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo
[info] Adding trusted package signing keys...
/etc/pki/rpm-gpg /home/xiaofang
/home/xiaofang
[info] Successfully added trusted package signing keys
[info] Cleaning package cache...
Loaded plugins: fastestmirror
Cleaning repos: base extras mariadb mariadb-main mariadb-maxscale mariadb-tools updates
Cleaning up list of fastest mirrors

然后,将上述步骤,在其余两台机器上照着执行一遍。

二、下载安装包并安装

安装包的下载地址:https://archive.mariadb.org/mariadb-10.6.4/yum/centos7-amd64/rpms/

2.1 依赖文件下载

执行下载:

wget https://archive.mariadb.org/mariadb-10.6.4/yum/centos7-amd64/rpms/MariaDB-common-10.6.4-1.el7.centos.x86_64.rpm

wget https://archive.mariadb.org/mariadb-10.6.4/yum/centos7-amd64/rpms/MariaDB-compat-10.6.4-1.el7.centos.x86_64.rpm

执行安装:

[[email protected] mariadb]$ ll
total 2292
-rw-rw-r-- 1 xiaofang xiaofang   83116 Aug  5 02:57 MariaDB-common-10.6.4-1.el7.centos.x86_64.rpm
-rw-rw-r-- 1 xiaofang xiaofang 2257544 Aug  5 02:57 MariaDB-compat-10.6.4-1.el7.centos.x86_64.rpm
[[email protected] mariadb]$ 
[[email protected] mariadb]$ 
[[email protected] mariadb]$ sudo yum -y install MariaDB-com*

2.2 安装MariaDB-client

wget https://archive.mariadb.org/mariadb-10.6.4/yum/centos7-amd64/rpms/MariaDB-client-10.6.4-1.el7.centos.x86_64.rpm

执行安装:

sudo yum -y install MariaDB-client-10.6.4-1.el7.centos.x86_64.rpm

2.3 安装MariaDB-server

wget https://archive.mariadb.org/mariadb-10.6.4/yum/centos7-amd64/rpms/MariaDB-server-10.6.4-1.el7.centos.x86_64.rpm

2.4 启动mariadb

安装完成之后,启动mariadb,命令如下:

sudo systemctl start mariadb

2.5 设置root用户密码

sudo mysql -uroot

MariaDB[(none)]> set password = password("your_password");

MariaDB[(none)]> quit;

2.6 确认rsync和policycoreutils-python已安装

sudo yum install rsync policycoreutils-python

然后,将上述步骤,在其余两台机器上照着执行一遍。

三、配置Galera各节点

3.1 MariaDB-Node1(10.200.67.27)节点配置

执行编辑命令:

vi /etc/my.cnf.d/galera.cnf 

内容如下:

MariaDB-Node1(10.200.67.27)节点配置

3.2 MariaDB-Node2(10.200.67.29)节点配置

执行编辑命令:

vi /etc/my.cnf.d/galera.cnf 

内容如下:

MariaDB-Node2(10.200.67.29)节点配置

3.3 MariaDB-Node3(10.200.67.26)节点配置

执行编辑命令:

vi /etc/my.cnf.d/galera.cnf 

内容如下:

MariaDB-Node3(10.200.67.26)节点配置

四、配置防火墙

如果没有开启防火墙可以跳过此步骤。

需要开放的端口有四个:

  • 3306: mariadb连接端口;
  • 4567: Galera Cluster复制同步端口;
  • 4568: 增量传输,其他节点状态检测端口;
  • 4444: 其他节点加入状态检测等作用;
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --permanent --zone=public --add-port=4567/tcp
sudo firewall-cmd --permanent --zone=public --add-port=4568/tcp
sudo firewall-cmd --permanent --zone=public --add-port=4444/tcp
sudo firewall-cmd --permanent --zone=public --add-port=4567/udp
sudo firewall-cmd --permanent --zone=public --add-source=10.200.67.27/32
sudo firewall-cmd --permanent --zone=public --add-source=10.200.67.29/32
sudo firewall-cmd --permanent --zone=public --add-source=10.200.67.26/32

重启防火墙:

sudo firewall-cmd --reload

五、创建SELinux安全策略

如果你没有开启SELinux安全策略,可以略过这一步。

在三个服务器上,分别执行:

sudo semanage port -a -t mysqld_port_t -p tcp 4567
sudo semanage port -a -t mysqld_port_t -p udp 4567
sudo semanage port -a -t mysqld_port_t -p tcp 4568
sudo semanage port -a -t mysqld_port_t -p tcp 4444

接下来,在所有三台服务器上运行以下命令,将 MySQL SELinux 域临时设置为许可模式。

sudo semanage permissive -a mysqld_t

六、启动集群

依次在第三、第二、第一个服务器上执行如下命令,并使用systemctl status mariadb确认服务已关闭:

sudo systemctl stop mariadb

6.1启动第一个节点

在第一个服务器节点执行:

sudo galera_new_cluster

查看注册节点状态:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

输出如下

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

6.2启动第二个节点

sudo systemctl start mariadb

查看注册节点:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

输出如下:

Output
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

6.3启动第三个节点

sudo systemctl start mariadb

查看集群大小:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

输出如下:

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

七、配置远程访问

MariaDB [(none)]> use mysql;
MariaDB [mysql]> grant all privileges  on *.* to [email protected]'localhost' identified by "your_password";
MariaDB [mysql]> grant all privileges  on *.* to [email protected]'%' identified by "your_password";
MariaDB [mysql]> FLUSH PRIVILEGES;

八、集群测试

在某一个节点创建测试数据库,看是否能同步。

参考文章:

  1. MariaDB Galera Cluster集群搭建
  2. How To Configure a Galera Cluster with MariaDB on CentOS 7 Servers
  3. MariaDB Installation (Version 10.1.21) via RPMs on CentOS 7
赞(0)
未经允许禁止转载:Ddmit » 基于Mariadb 10.6.4在CentOS 7环境下配置Galera Cluster集群

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址