
实验环境
pxcnode1 192.168.10.17:3306
pxcnode2 192.168.10.18:3306
cat /etc/redhat-release && uname -a
CentOS Linux release 7.8.2003 (Core)
Linux centos7-1 3.10.0-1127.el7.x86_64
实验软件
percona-release-latest.noarch.rpm
Percona-XtraDB-Cluster-57-5.7.36-31.55.1.el7.x86_64
软件安装
systemctl stop firewalld && systemctl disable firewalld
echo SELINUX=disabled > /etc/sysconfig/selinux
yum -y install percona-release-0.1-4.noarch.rpm
yum install -y Percona-XtraDB-Cluster-57 node1/node2执行
pxcnode1配置
cp -pv /etc/percona-xtradb-cluster.conf.d/mysqld.cnf /etc/percona-xtradb-cluster.conf.d/mysqld.cnf.bak
cat /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
[mysqld]
server-id=11
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character_set_server = utf8
bind-address=0.0.0.0
skip-name-resolve
cp -pv /etc/percona-xtradb-cluster.conf.d/wsrep.cnf /etc/percona-xtradb-cluster.conf.d/wsrep.cnf.bak
grep -vE "^#|^$" /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
cat /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
[mysqld]
wsrep_cluster_name=pxc 群集名字
wsrep_node_name=node11 节点名称
wsrep_node_address=192.168.10.17 节点IP
wsrep_cluster_address=gcomm://192.168.10.17,192.168.10.18 集群ip
wsrep_sst_method=rsync
wsrep_sst_auth="pxc:123456"
pxcnode2配置
cp -pv /etc/percona-xtradb-cluster.conf.d/mysqld.cnf /etc/percona-xtradb-cluster.conf.d/mysqld.cnf.bak
cat /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
[mysqld]
server-id=12
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character_set_server = utf8
bind-address=0.0.0.0
skip-name-resolve
cp -pv /etc/percona-xtradb-cluster.conf.d/wsrep.cnf /etc/percona-xtradb-cluster.conf.d/wsrep.cnf.bak
grep -vE "^#|^$" /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
cat /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
[mysqld]
wsrep_cluster_name=pxc 群集名字
wsrep_node_name=node12 节点名称
wsrep_node_address=192.168.10.18 节点IP
wsrep_cluster_address=gcomm://192.168.10.18,192.168.10.17
wsrep_sst_method=rsync
wsrep_sst_auth="pxc:123456"
systemctl start mysql@bootstrap && systemctl enable mysql@bootstrap pxcnode1启动服务
systemctl start mysql && systemctl enable mysql pxcnode2启动服务
grep 'temporary password' /var/log/mysqld.log
temporary password is generated for root@localhost: Ff!*lEPXJ8u8 查看临时root验证
mysql -uroot -p
mysql> alter user root@localhost identified by 'root'; 修改root验证
mysql -uroot -proot
mysql> node1/node2操作
cat /var/lib/mysql/grastate.dat
# GALERA saved state
version: 2.1
uuid: 72db126f-93ee-11ec-ab55-e7f6a6291d0b
seqno: -1
safe_to_bootstrap: 1 1表示为主节点
netstat -tuplna | grep LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 30272/mysqld
tcp 0 0 0.0.0.0:4567 0.0.0.0:* LISTEN 30272/mysqld
测试pxc群集数据同步
mysql> create database pxc;
mysql> show databases;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root'; 授权root远程登入
+--------------------+
| Database |
+--------------------+
| pxc |
+--------------------+
mysql> select host,user from mysql.user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
+-----------+---------------+ node1操作
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| pxc |
+--------------------+
mysql> select host,user from mysql.user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
+-----------+---------------+ node2操作
客户端验证群集同步

docker部署pxc群集
pxcnode1 192.168.10.17:3302
pxcnode2 192.168.10.17:3303
yum install -y yum-utils docker-ce docker-ce-cli containerd.io
systemctl daemon-reload
systemctl start docker && systemctl enable docker
docker --version
Docker version 18.06.2-ce, build 6d37f41
docker pull percona/percona-xtradb-cluster:5.7.21
docker volume create --name node1
docker volume create --name node2
docker network create --subnet=172.18.0.0/24 pxc-net
docker run -d -p 3302:3306
--restart=always --privileged
-v node1:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc_cluster
--name=node1
--net=pxc --ip 172.18.0.2 percona/percona-xtradb-cluster:5.7.21
docker run -d -p 3303:3306
--restart=always --privileged
-v node2:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc_cluster
-e CLUSTER_JOIN=node1
--name=node2 --net=pxc --ip 172.18.0.3 percona/percona-xtradb-cluster:5.7.21
docker logs -f node1/node2
docker exec -it node1/node2 /bin/bash
bash-4.4$ mysql -uroot -proot
Server version: 8.0.26-16.1 Percona XtraDB Cluster (GPL), Release rel16, Revision b141904, WSREP version 26.4.3
mysql>
验证数据同步
docker exec -it node1 /bin/bash
root@0965ebc1b9ce:/# mysql -uroot -proot
mysql> create database pxc;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| pxc |
+--------------------+ node1执行
docker exec -it node2 /bin/bash
root@259277f663a7:/# mysql -uroot -proot
node2同步数据
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| pxc |
+--------------------+ node2同步信息
docker save percona/percona-xtradb-cluster:5.7.21 > /root/pxc_images-$(date +%Y%m%d).tar.gz 备份镜像
docker load -i < pxc_images.tar.gz 还原镜像
客户端验证数据同步

netstat -tuplna | grep LISTEN
tcp6 0 0 :::3302 :::* LISTEN 25349/docker-proxy
tcp6 0 0 :::3303 :::* LISTEN 25645/docker-proxy
















