翻译&转载来源:https://linoxide.com/cluster/...node
如何在CentOS 7上使用HAproxy Loadbalancer设置Percona集群mysql
咱们以前展现了如何使用HAproxy设置MariaDB Galera集群,今天咱们将使用Percona的MySQL发行版进行相似的设置。Percona是一家拥有MySQL和MongoDB深厚专业知识的公司,他们本身分发这些数据库以及两个数据库的存储引擎。今天咱们只专一于MySQL,而不是专一于该公司的MongoDB产品。git
设置主机,防火墙和存储库
首先经过设置hosts文件启动。咱们为Percona集群提供了三个节点,为HAproxy提供了一个节点。全部4台服务器上的主机文件都包含如下四行:github
10.17.0.8 centos-percona01 10.17.0.9 centos-percona02 10.17.0.10 centos-percona03 10.17.0.11 centos-haproxy
接下来让咱们在除HAproxy以外的全部主机上设置firewalld。那将须要不一样的设置,咱们将作后者。首先让咱们在全部三个percona节点上启动firewalld。sql
systemctl start firewalld
而后咱们容许mysql服务。Pecona是mysql发行版,因此它使用与mysql相同的端口。数据库
firewall-cmd --zone = public --add-service = mysql --permanent
接下来咱们添加其余所需端口:bootstrap
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 --zone = public --add-port = 9200 / tcp --permanent
并从新加载防火墙centos
firewall-cmd --reload
完成后,接下来咱们须要安装epel版本浏览器
yum install epel-release
接下来,咱们从EPEL存储库安装socat服务器
yum install socat
而后咱们删除mariadb-libs,由于它与percona冲突
yum remove mariadb-libs
安装和设置Percona
咱们须要添加包含percona的存储库
yum install https://www.percona.com/redir/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
如今咱们能够安装percona集群和全部其余依赖项
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
并启动mysql
systemctl start mysql
咱们在全部mysql服务器上作的第一件事就是运行mysql_secure_installation脚本。因此咱们来作吧。
mysql_secure_installation
您须要输入新的root密码并回答全部问题。
完成后,登陆到您的root账户
mysql -u root -p
输入密码
并为您的群集建立sstuser
mysql> create user sstuser@'%' identified by 'strongpassword'; Query OK, 0 rows affected (0.01 sec) mysql> grant all on *.* to sstuser@'%'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)
在此以后咱们必须中止Mysql编辑配置文件。
systemctl stop mysql nano /etc/my.cnf
在配置中找到这些行并使它们看起来像这样,只需更改您本身的密码并将节点名称和节点地址更改成每一个服务器的主机名
wsrep_cluster_address = gcomm://centos-percona01,centos-percona02,centos-percona03 wsrep_provider = /usr/lib64/galera3/libgalera_smm.so wsrep_slave_threads = 8 wsrep_cluster_name = Cluster Percona XtraDB wsrep_node_name = centos-percona01 wsrep_node_address = centos-percona01 wsrep_sst_method = xtrabackup-v2 wsrep_sst_auth = sstuser:strongpassword
请注意,第一台服务器上的第一行(centos-percona01)能够为空,以下所示:
wsrep_cluster_address = gcomm://
配置完成后,咱们须要引导第一个节点,而后一般启动第二个和第三个节点。
在第一台服务器上运行
systemctl start mysql@bootstrap
在第二和第三次运行
systemctl start mysql
接下来咱们须要测试集群是否正常工做。
mysql -u root -p
输入密码
而后运行如下命令:
SHOW STATUS LIKE 'wsrep_local_state_comment'; show global status like 'wsrep_cluster_size';
他们应该获得这样的输出:
经过此群集设置结束。
HAproxy设置
首先,咱们须要在全部群集节点上安装clustercheck,以便群集能够经过HAproxy进行维护。让咱们用wget获取脚本
wget https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck
脚本须要可执行并移动到您的$ PATH目录之一。
chmod +x clustercheck mv clustercheck /usr/bin/
如今咱们还须要包含在xinetd包中的mysqlchk:
yum install xinetd
接下来,咱们在数据库上移动create clustercheck user。咱们只能在第一个节点上输入
mysql -u root -p mysql> GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!'; exit;
接下来,咱们能够测试clustercheck是否按预期工做:
[root@centos-percona01 ~]# clustercheck HTTP/1.1 200 OK Content-Type: text/plain Connection: close Content-Length: 40 Percona XtraDB Cluster Node is synced.
接下来咱们转到xinetd的配置,须要将xinetd添加到服务列表中。
nano /etc/services
咱们使用CTRL-W查找端口9200的部分,而后咱们推荐使用该端口的服务,而不是添加新行。它须要看起来像这样:
mysqlchk 9200/tcp # mysqlchk ![图片描述][1] ![图片描述][2]
咱们完成后,咱们保存。请注意,除HAproxy以外的全部群集节点都须要完成此操做。
如今是时候登陆咱们的HAporoxy服务器了。首先,咱们须要备份haproxy配置。
mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bk
而后咱们将从干净的配置文件上设置新的配置
nano /etc/haproxy/haproxy.cfg
咱们能够从这里复制HAproxy配置,除了这三行须要更改 改为对应IP和端口:
server centos-percona01 10.132.84.186:3306 check port 9200 inter 12000 rise 3 fall 3 server centos-percona02 10.132.84.141:3306 check port 9200 inter 12000 rise 3 fall 3 server centos-percona03 10.132.84.67:3306 check port 9200 inter 12000 rise 3 fall 3
须要使用您的主机名和地址更改突出显示的部分。接下来咱们须要在haproxy服务器上启动firewalld并容许咱们须要使用的端口
systemctl start firewalld firewall-cmd --permanent --add-port=9000/tcp firewall-cmd --permanent --add-port=3030/tcp
以后咱们须要从新加载防火墙
firewall-cmd --reload
最后,开始haproxy
systemctl start haproxy
咱们如今须要测试设置。
测试HAproxy
让咱们将浏览器指向端口9000上HAproxy服务器的公共IP地址:
全部节点都在线。接下来让咱们在haproxy服务器上安装percona客户端,这样咱们就能够尝试从那里查询集群。
yum install https://www.percona.com/redir/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm yum install Percona-XtraDB-Cluster-client-56
让咱们试着看看咱们是否能够从这个haproxy服务器得到一个查询:
mysql -u root -p -h 10.132.83.13 -P 3306 -e "select Host, User, Password from mysql.user" ![图片描述][3]
结论
咱们已经设置了由HAproxy负载均衡的Percona XtraDB 3节点集群。它与上周与MariaDB和Galera的文章相似,但使用Percona存储引擎而没有WordPress。这个Percona设置可用于托管各类各样的数据集,您能够再次使用它与WordPress一块儿使用,就像咱们以前的文章同样。咱们总结这篇文章,感谢您阅读并度过了愉快的一天。
[1]: /img/bVbkKQo [2]: /img/bVbkKQr [3]: /img/bVbkKQt