Percona XtraDB Cluster(简称PXC)集群是基于Galera,事务型应用下的通用的多主同步复制插件,主要用于解决强一致性问题,使得各个节点之间的数据保持实时同步以及实现多节点同时读写。提高了数据库的可靠性,也可以实现读写分离,是MySQL关系型数据库中大家公认的集群优选方案之一。

1、安装PXC软件包

这里使用的是官方最新的软件包Percona XtraDB Cluster 5.7.22-29.26,对应的操作系统是Oracle Linux 7.5。主机列表如下表所示:
Percona XtraDB Cluster Installation Guide_第1张图片
在各个节点分别使用yum进行安装,如下:

[root@mydb03 ~]# yum -y install Percona-XtraDB-Cluster-57
[root@mydb04 ~]# yum -y install Percona-XtraDB-Cluster-57
[root@mydb05 ~]# yum -y install Percona-XtraDB-Cluster-57

安装完成后,分别启动各个节点的MySQL服务,更改root@localhost的密码,更改完成后再关闭MySQL服务。以mydb03作为示例,如下:

[root@mydb03 ~]# grep 'temporary password' /var/log/mysqld.log
[root@mydb03 ~]# mysql -uroot -p
mysql> alter user root@localhost identified by “abcABC@12”;
mysql> flush privileges;

2、编辑PXC配置文件

编辑/etc/percona-xtradb-cluster.conf.d/mysqld.cnf文件,修改或者加入如下内容:

#mydb03对应1,mydb04对应2,mydb05对应3
server-id=1     
expire_logs_days=1
log_timestamps=system
collation-server=utf8_general_ci
character-set-server = utf8

编辑/etc/percona-xtradb-cluster.conf.d/wsrep.cnf文件,修改以下内容:

[mysqld]
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
#加入各个节点的IP
wsrep_cluster_address=gcomm://192.168.120.129,192.168.120.130,192.168.120.131
binlog_format=ROW
default_storage_engine=InnoDB
wsrep_slave_threads= 8
wsrep_log_conflicts
innodb_autoinc_lock_mode=2
#节点主机名,其他节点需要更改
wsrep_node_name=mydb03
#节点IP,其他节点需要更改
wsrep_node_address=192.168.120.129
#集群名称
wsrep_cluster_name=pxc-cluster
pxc_strict_mode=ENFORCING
wsrep_sst_method=xtrabackup-v2
#sstuser用户的密码任意设置
wsrep_sst_auth="sstuser:passw0rd"

3、启动PXC集群服务

首先在mydb03上启动PXC集群服务,其它节点后续再加进来即可。

[root@mydb03 ~]# systemctl start [email protected]
[root@mydb03 ~]# mysql -uroot -p
mysql> show status like 'wsrep%';

Percona XtraDB Cluster Installation Guide_第2张图片
创建配置文件里定义的sstuser用户(只在第一个启动的节点执行,其他节点启动后会自行同步)。

mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'passw0rd';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
mysql> FLUSH PRIVILEGES;

将其它节点加入集群,只要启动MySQL服务即可。

[root@mydb04 ~]# systemctl start mysqld
[root@mydb05 ~]# systemctl start mysqld

集群状态验证:

mysql> show status like '%wsrep_clust%';

Percona XtraDB Cluster Installation Guide

4、PXC同步测试

任意一节点创建表或者数据库,在其他节点查询验证:

[root@mydb03 ~]# mysql -uroot -p
mysql> create database xdb;
[root@mydb04 ~]# mysql -uroot -p
mysql> show databases;

Percona XtraDB Cluster Installation Guide_第3张图片