一,安装依赖包
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_cluster_address=gcomm://192.168.139.148,192.168.139.149,192.168.139.150 ###集群中节点IP
wsrep_node_address=192.168.139.148 ##当前节点IP
wsrep_sst_auth=sstuser:passw0rd ####账号权限
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
##节点2,3使用相同的配置 ,但server-id,wsrep_node_name,wsrep_node_address使用自己的
六,启动服务
#第一个节点pxc1启动
systemctl start [email protected]
##登陆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账户
Query OK, 0 rows affected (0.01 sec)
-> 'sstuser'@'localhost';
Query OK, 0 rows affected (0.01 sec)
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 不提供服务