MYSQL高可用集群搭建--docker
使用docker搭建高可用mysql集群
拉取percona-xtradb-cluster的镜像
docker pull percona/percona-xtradb-cluster:5.7.21
tag一下
docker tag percona/percona-xtradb-cluster:5.7.21 pxc
docker images
创建一个单独的网段,给mysql数据库集群使用
docker network create --subnet=172.19.0.0/24 pxc-cluster-net
docker network ls
docker network inspect pxc-cluster-net
创建volume,为了给3个container持久化数据使用
docker volume create pxc-v1
docker volume create pxc-v2
docker volume create pxc-v3
docker volume ls
创建node1容器
docker run -d --name=node1 -p 3301:3306 -v pxc-v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=jack666 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=jack666 --net=pxc-cluster-net --privileged pxc
docker run -d --name=node2 -p 3302:3306 -v pxc-v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=jack666 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=jack666 --net=pxc-cluster-net -e CLUSTER_JOIN=node1 pxc
docker run -d --name=node3 -p 3303:3306 -v pxc-v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=jack666 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=jack666 --net=pxc-cluster-net -e CLUSTER_JOIN=node1 pxc
如果创建容器失败,清空数据卷内容并删除容器
[root@k8s ~]# docker stop node1
node1
[root@k8s ~]# docker rm -f node1
node1
[root@k8s ~]# rm -rf /data/app/dockerWork/volumes/pxc-v1/_data/*
创建成功后集群搭建成功
mysql -uroot -pjack666
create database jvue;