如何在CentOS 7上安装Percona XtraDB群集

在本教程中,我将向您展示如何在CentOS 7服务器上安装和配置Percona XtraDB Cluster。我们将使用Percona XtraDB Cluster 5.6 tha ...

在本教程中,我将向您介绍如何在CentOS 7服务器上安装和配置Percona XtraDB Cluster。 我们将使用与MySQL和Percona Server完全兼容的Percona XtraDB Cluster 5.6。

Percona是MySQL和MongoDB数据库专家公司,成立于2006年。Percona为MySQL和MongoDB构建和维护开源软件:Percona服务器(MySQL数据库服务器,具有高可用性性能增强),Percona XtraDB集群(MySQL的高可用性解决方案集群),用于MongoDB的Percona服务器和用于管理数据库的其他工具,如Percona工具包,Percona监控工具和Percona XtraBackup。

前提条件

  • 3个CentOS 7服务器节点。
  • 根权限
  • 基本的CentOS 7知识。

第1步 - 设置主机文件

首先要做的是配置所有服务器的主机名。 我有3台服务器,CentOS 7如下所示:

Node           Server IP       Hostname

Node1   -   192.168.43.36     percona1
Node2   -   192.168.43.166    percona2
Node3   -   192.168.43.148    percona3

使用您的终端连接到所有服务器:

ssh root@serverip

如果您已登录所有服务器,请使用vim编辑每个服务器上的“/ etc / hosts”文件:

vim /etc/hosts

粘贴主机配置如下:

192.168.43.36   percona1
192.168.43.166  percona2
192.168.43.148  percona3

将IP地址替换为与本地网络配置相匹配的IP地址。 保存并退出。

配置主机文件。

第2步 - 配置Firewalld

Firewalld是CentOS 7上新建的默认防火墙界面。firewall -cmd命令用于配置防火墙。 我们可以定义和配置特定的组或区域,也可以为ssh,MySQL数据库,nginx / apache web服务器等服务配置防火墙。

在这一步中,我们将使用firewalld进行防火墙配置。 我们将使用'firewall-cmd'命令打开集群所需的percona服务器端口和其他端口。

用这个systemctl命令启动firewalld:

systemctl start firewalld

然后运行下面的命令打开MySQL / percona服务器使用的端口:

firewall-cmd --zone=public --add-service=mysql --permanent

接下来,使用以下命令添加集群的其他端口:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=4567/udp --permanent

重新加载防火墙规则:

firewall-cmd --reload

要查看所有防火墙规则的列表,请使用选项“--list-all”

firewall-cm --list-all

配置防火墙

第3步 - 安装Epel Repository和Socat

要在服务器上运行Percona XtraDB集群,我们需要安装socat,并且可以在epel-repository中使用。 所以我们需要首先安装Epel存储库,然后安装socat。 此外,我们必须从服务器中删除mariadb-lib,因为它们与Percona XtraDB集群冲突。

安装epel-repository和socat:

yum -y install epel-release
yum -y install socat

删除mariadb-libs以避免mariadb-lib和Percona XtraDB Cluster之间的包冲突:

yum -y remove mariadb-libs

安装Epel存储库和socat。

第4步 - 安装Percona XtraDB集群

在此步骤中,我们将安装具有所有软件包依赖关系的Percona xtradb集群。 我们需要添加Percona存储库进行安装,然后启动Percona服务器并配置数据库服务器的root用户和密码。

用yum安装Percona存储库:

yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

现在安装Percona XtraDB集群以及本教程所需的其他软件包:

yum install Percona-XtraDB-Cluster-server-56 Percona-XtraDB-Cluster-client-56 Percona-XtraDB-Cluster-shared-56 percona-toolkit percona-xtrabackup Percona-XtraDB-Cluster-galera-3 rsync nc

安装了Percona XtraDB集群,使用zhis systemctl命令启动Percona服务器:

systemctl start mysql

接下来,配置所有percona / mysql服务器的根密码:

mysql_secure_installation

设置percona / mysql密码:

Enter current password for root (enter for none): PRESS ENTER
Set root password? [Y/n] Y
New password: TYPE YOUR PASSWORD
Re-enter new password: REPEAT PASSWORD
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Reload privilege tables now? [Y/n] Y

注意:

在所有3 CentOS服务器上运行第1步 - 4。

第5步 - 配置Percona XtraDB集群

在第4步中,我们已经安装了Percona XtraDB集群,并为所有Percona / Mysql服务器节点配置了root密码。 在此步骤中,我们将为SST身份验证创建一个新用户,并在每个服务器上编辑MySQL配置my.cnf。

SST(状态快照传输)是作为提供者的一个服务器作为连接器的完整数据副本。 对于SST身份验证,我们需要创建一个名为'sstuser'的新用户,密码为'sstuser @' 。 对于SST方法,我们将使用xtrabackup-v2而不是rsync。 请为您的群集使用不同且安全的密码!

登录到每个服务器上的percona / mysql shell:

mysql -u root -p
TYPE YOUR PASSWORD

并用密码'sstuser @'创建新的'sstuser '

create user sstuser@'%' identified by 'mypass@';
grant all on *.* to sstuser@'%';
flush privileges;

创建SST用户

然后在编辑配置文件之前停止每个服务器上的MySQL服务:

systemctl stop mysql

接下来,使用vim编辑器编辑每个服务器上的mysql配置文件my.cnf。

Percona1服务器上:

vim /etc/my.cnf

更改所有'wsrep'行,配置如下:

wsrep_cluster_address          = gcomm://
wsrep_provider                 = /usr/lib64/galera3/libgalera_smm.so

wsrep_slave_threads            = 8
wsrep_cluster_name             = Cluster Percona XtraDB
wsrep_node_name                = percona1

wsrep_node_address             = percona1
wsrep_sst_method               = xtrabackup-v2
wsrep_sst_auth                 = sstuser:mypass@

保存并退出。

Percona2服务器上:

vim /etc/my.cnf

更改所有'wsrep'行,配置如下:

wsrep_cluster_address          = gcomm://percona1,percona3
wsrep_provider                 = /usr/lib64/galera3/libgalera_smm.so

wsrep_slave_threads            = 8
wsrep_cluster_name             = Cluster Percona XtraDB
wsrep_node_name                = percona2

wsrep_node_address             = percona2
wsrep_sst_method               = xtrabackup-v2
wsrep_sst_auth                 = sstuser:mypass@

保存并退出。

Percona3服务器上:

vim /etc/my.cnf

更改所有'wsrep'行,配置如下:

wsrep_cluster_address          = gcomm://percona1,percona2
wsrep_provider                 = /usr/lib64/galera3/libgalera_smm.so

wsrep_slave_threads            = 8
wsrep_cluster_name             = Cluster Percona XtraDB
wsrep_node_name                = percona3

wsrep_node_address             = percona3
wsrep_sst_method               = xtrabackup-v2
wsrep_sst_auth                 = sstuser:mypass@

保存并退出。

percona2服务器的屏幕截图

Percona服务器配置。

第6步 - 启动Percona XtraDB群集服务器

我们已经在所有服务器上配置了Percona XtraDB集群,现在我们可以启动服务器。

在Percona1服务器上,启动或启动集群并运行:

systemctl start mysql@bootstrap

接下来,使用以下命令在percona2和percona3服务器上启动Percona / MySQL服务器:

systemctl start mysql

确保没有错误消息。 如果输入MySQL后出现错误,请检查日志文件'/ var / log / messages'

第7步 - 测试

我们必须登录到每个服务器上的percona / mysql shell来测试Percona XtraDB集群。

登录到所有服务器/节点上的Percona / MySQL shell:

mysql -u root -p
TYPE YOUR PASSWORD

使用mysql命令测试高可用性:

SHOW STATUS LIKE 'wsrep_local_state_comment';

在每个节点上尝试该命令,如果您看到“同步”作为结果,那么该节点已准备好处理流量。

测试集群的可用节点:

show global status like 'wsrep_cluster_size';

您将获得Percona群集中当前的节点数。

Percona服务器同步。

有关完整的结果,您可以使用以下命令:

show global status like 'wsrep%';

参考