Docker搭建Percona XtraDB Cluster mysql


https://hub.docker.com/r/percona/percona-xtradb-cluster

https://www.percona.com/doc/percona-xtradb-cluster/LATEST/install/docker.html


mkdir  -p  /data/db/percona/percona{00,01,02,03,04}

mkdir  -p  /data/file/logs/percona/percona{00,01,02,03,04}

chmod -R 777 /data/file/logs/percona/


##node1

docker run -itd --restart always -p 3301:3306 --network galera --name percona00 -h percona00  \
 -v /data/file:/data/file/ \
 -e MYSQL_ROOT_PASSWORD=wdqdmm@r \
 -e MYSQL_ALLOW_EMPTY_PASSWORD=no \
 -e CLUSTER_NAME=pxc \
 -e XTRABACKUP_PASSWORD=backup \
 --privileged --ip 172.33.0.20 \
percona/percona-xtradb-cluster:8.0

##node2

docker run -itd --restart always -p 3302:3306 --network galera  --name percona01  -h percona01 \
 -v /data/docker/mysql/percona/config:/etc/percona-xtradb-cluster.conf.d \
 -v /data/docker/mysql/percona/cert:/cert
 -v /data/file:/data/file/ \
 -e MYSQL_ROOT_PASSWORD=wdqdmm@r \
 -e CLUSTER_NAME=pxc \
 -e XTRABACKUP_PASSWORD=backup \
 -e CLUSTER_JOIN=percona00 \
 --privileged --ip 172.33.0.21 \
  percona/percona-xtradb-cluster:8.0

##node3

docker run -itd --restart always -p 3303:3306 --network galera  --name percona02 -h percona02 \
 -v /data/docker/mysql/percona/config:/etc/percona-xtradb-cluster.conf.d \
 -v /data/docker/mysql/percona/cert:/cert
 -e MYSQL_ROOT_PASSWORD=wdqdmm@r \
 -e CLUSTER_NAME=pxc \
 -e XTRABACKUP_PASSWORD=backup \
 -e CLUSTER_JOIN=percona00 \
 --privileged --ip 172.33.0.22 \
 percona/percona-xtradb-cluster:8.0


docker run --name pxc-cert --rm -v /data/docker/mysql/percona/cert:/cert  percona/percona-xtradb-cluster:8.0 mysql_ssl_rsa_setup -d /cert


## 部分参数说明

①CLUSTER_JOIN:形成集群关系 

②MYSQL_ROOT_PASSWORD:用户root密码 

③CLUSTER_NAME:集群名称 

④XTRABACKUP_PASSWORD:数据备份密码 

⑤privileged:指定最高优先级。标识容器内的root拥有真正的root权限,否则root只是一个普通用户 

⑥net:所处网段,pxc-net为创建网段


# 验证集群是否可用

##访问MySQL客户端(任意节点)

docker exec -it node1 /usr/bin/mysql -uroot -p 

//输入上述设置的root密码登录MySQL

## 查看wsrep状态变量(部分变量截图)

show status like 'wsrep%';


说明:wsrep_ready:状态监控项,可以知道当前节点的状态是不是可以抚慰,正常情况下为ON,如果变为OFF,则可能是发生了脑裂,或者和其他节点之间的网络连不上,又或者是galera集群没有正常启动等;

一般可以通过命令set global wsrep_provider_options='pc.bootstrap=yes' 来恢复,不过在执行这个命令之后,需要观察整个集群的状态,不然可能会导致这个节点在逻辑上脱离集群。

这个命令的作用就是让当前节点变为primary,如果执行了,则说明确定要使用这个节点来提供服务了。



签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回