mysql群集 pxc模式_pxc


实验环境

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操作

客户端验证群集同步

mysql群集 pxc模式_pxc_02


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                                    还原镜像


客户端验证数据同步

mysql群集 pxc模式_pxc_03


netstat -tuplna | grep LISTEN

tcp6       0      0 :::3302     :::*                    LISTEN      25349/docker-proxy

tcp6       0      0 :::3303     :::*                    LISTEN      25645/docker-proxy