PXC搭建

一,安装依赖包

rpm -ivh libev-4.04-2.el6.x86_64.rpm    =====》 ftp://rpmfind.net/linux/atrpms/el6-x86_64/atrpms/stable/ 下载RPM

yum install perl-Digest-MD5 -y

二,安装PXC 仓库

安装pxc 仓库repo

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

三,环境预设

关闭防火墙 setenforce 0

iptables -F

systemctl stop firewalld

确定端口未使用: 3306  4444 4567 4568

四,安装PXC&重设密码

yum install Percona-XtraDB-Cluster-57 -y

#启动服务

service mysql start

#查看临时密码

grep 'temporary password' /var/log/mysqld.log

#登陆MySQL 

mysql -u root -p  ===》输入临时密码

#重设密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'rootPass';

Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye

#停止服务

service mysql stop

五,配置文件

服务器:192.168.139.148/149/150   角色pxc1  pxc2  pxc3

##节点1  pxc1 配置

vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf

server-id=1   ===> 各个节点不一样

vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf

[mysqld]

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_name=pxc-cluster                 ####集群的名字
wsrep_cluster_address=gcomm://192.168.139.148,192.168.139.149,192.168.139.150   ###集群中节点IP
wsrep_ node_name=pxc1 ###当前节点名字 ,不定义则使用hostname
wsrep_node_address=192.168.139.148   ##当前节点IP
wsrep_sst_method=xtrabackup-v2    ###SST传送方法
wsrep_sst_auth=sstuser:passw0rd   ####账号权限
pxc_strict_mode=ENFORCING
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2

##节点2,3使用相同的配置 ,但server-id,wsrep_node_name,wsrep_node_address使用自己的

六,启动服务

#第一个节点pxc1启动

systemctl start mysql@bootstrap.service

##登陆MySQL查看信息

mysql@pxc1> show status like 'wsrep%';
+----------------------------+--------------------------------------+
| Variable_name              | Value                                |
+----------------------------+--------------------------------------+
| wsrep_local_state_uuid     | c2883338-834d-11e2-0800-03c9c68e41ec |
| ...                        | ...                                  |
| wsrep_local_state          | 4                                    |
| wsrep_local_state_comment  | Synced                               |
| ...                        | ...                                  |
| wsrep_cluster_size         | 1                                    |
| wsrep_cluster_status       | Primary                              |
| wsrep_connected            | ON                                   |
| ...                        | ...                                  |
| wsrep_ready                | ON                                   |
+----------------------------+--------------------------------------+
40 rows in set (0.01 sec)

###创建SST账户

mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'passw0rd';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO
    ->   'sstuser'@'localhost';
Query OK, 0 rows affected (0.01 sec)
mysql>  FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
 

第二节点启动

service mysql start

#Cluster size is now 2

第三节点启动

service mysql start

#Cluster size is now 3

 七,测试实验

在节点1上执行mysql>create database test;

访问节点2,3的数据库,都可以看见test数据库

 查看集群状态

MySQL>show global status like 'wsrep%';

wsrep_cluster_state_uuid: 集群中所有的节点值都是相同的,不同则没有加入集群

wsrep_cluster_size:当前集群中的节点数,代表实时的集群中节点数

wsrep_cluster_status: 集群的状态 不为primary 说明出现分区和脑裂的现象

wsrep_local_state:

      1 joining  节点正在加入集群

    2  donor  当前节点是数据奉献者,在为新节点同步数据

    3  joined   当前节点已成功加入集群

     4 synced  当前节点与整个集群是同步状态

wsrep_last_committe  最后提交的事务数目

wsrep_ready :ON  当前节点正常提供服务 OFF 不提供服务 

原文地址:https://www.cnblogs.com/zy1234567/p/10199090.html