本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:基于Mariadb 10.6.4在CentOS 7环境下配置Galera Cluster集群;
本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:基于Mariadb 10.6.4在CentOS 7环境下配置Galera Cluster集群;
本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:基于Mariadb 10.6.4在CentOS 7环境下配置Galera Cluster集群;
这篇文章主要内容是MariaDB Galera Cluster集群搭建过程,至于这个集群的工作原理、优缺点比较,不在这里讨论。
环境信息:
集群搭建,至少3台机器,信息如下:
IP地址 | 节点名称 |
---|---|
10.200.67.27 | MariaDB-Node1 |
10.200.67.29 | MariaDB-Node2 |
10.200.67.26 | MariaDB-Node3 |
需要安装的组件:MariaDB-server
、MariaDB-client
。从MariaDB版本10.1开始,MariaDB Server
和 MariaDB Galera Server
安装包已经合并了。安装MariaDB-server会自动安装Galera及其依赖。
具体步骤如下:
执行下面命令配置mariadb仓库:
[xiaofang@sd-vm-0004432 ~]$ 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/ 。
执行下载:
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
执行安装:
[xiaofang@sd-vm-0004433 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
[xiaofang@sd-vm-0004433 mariadb]$
[xiaofang@sd-vm-0004433 mariadb]$
[xiaofang@sd-vm-0004433 mariadb]$ sudo yum -y install MariaDB-com*
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
wget https://archive.mariadb.org/mariadb-10.6.4/yum/centos7-amd64/rpms/MariaDB-server-10.6.4-1.el7.centos.x86_64.rpm
安装完成之后,启动mariadb,命令如下:
sudo systemctl start mariadb
sudo mysql -uroot
MariaDB[(none)]> set password = password("your_password");
MariaDB[(none)]> quit;
sudo yum install rsync policycoreutils-python
然后,将上述步骤,在其余两台机器上照着执行一遍。
执行编辑命令:
vi /etc/my.cnf.d/galera.cnf
内容如下:
执行编辑命令:
vi /etc/my.cnf.d/galera.cnf
内容如下:
执行编辑命令:
vi /etc/my.cnf.d/galera.cnf
内容如下:
如果没有开启防火墙可以跳过此步骤。
需要开放的端口有四个:
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安全策略,可以略过这一步。
在三个服务器上,分别执行:
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
在第一个服务器节点执行:
sudo galera_new_cluster
查看注册节点状态:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
输出如下
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 1 |
+--------------------+-------+
sudo systemctl start mariadb
查看注册节点:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
输出如下:
Output
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 2 |
+--------------------+-------+
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 root@'localhost' identified by "your_password";
MariaDB [mysql]> grant all privileges on *.* to root@'%' identified by "your_password";
MariaDB [mysql]> FLUSH PRIVILEGES;
在某一个节点创建测试数据库,看是否能同步。