使用docker搭建mysql的pxc集群

1. 拉取镜像
docker pull percona/percona-xtradb-cluster:5.7.20
image.png
2.给镜像打tag,并删除原来的镜像
docker tag percona/percona-xtradb-cluster:5.7.20 pxc
docker rmi percona/percona-xtradb-cluster:5.7.20
3.创建docker内网
docker network create --subnet=172.18.0.0/24 net1
docker inspect net1
image.png
4.创建docker卷

由于PXC无法使用映射目录的方法做映射,过使用docker卷,不同容器使用不同的docker卷

docker volume create --name v1
docker inspect v1
docker volume create --name v2
docker volume create --name v3
docker volume create --name v4
5.创建pxc容器
docker run -d -p 3306:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 --privileged --name=node1 --net=net1 --ip 172.18.0.2 pxc

说明:
-d 默认在后台运行
-p 3306(宿主):3306(容器) 端口映射,将容器3306端口映射到宿主3306端口
-v 目录映射,将第四步创建的v1映射到容器/var/lib/mysql
-e MYSQL_ROOT_PASSROWD 创建的用户实例的密码,默认实例root
-e CLUSTER_NAME 集群名称
-e XTRABACKUP_PASSWORD 数据库之间同步使用的密码
--privileged 权限.给予最高权限
--name 给容器容命名
--net 使用内部网段
--ip 内部网段分到的地址
pxc 指的是镜像

image.png
6.使用连接工具测试
image.png
7.创建其他容器,并分别使用连接工具连接3307、3308、3309
docker run -d -p 3307:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged --name=node2 --net=net1 --ip 172.18.0.3 pxc

docker run -d -p 3308:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged --name=node3 --net=net1 --ip 172.18.0.4 pxc

docker run -d -p 3309:3306 -v v4:/var/lib/mysql -e MYSQL_ROOT_PASSROWD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged --name=node4 --net=net1 --ip 172.18.0.5 pxc

8.创建表,执行增删操作

在任意一个数据库进行连接操作,看其他数据库是否有变化。

你可能感兴趣的:(使用docker搭建mysql的pxc集群)