Docker 搭建pxc集群 + haproxy + keepalived 高可用(一)

本次搭建pxc集群

一、下载pxc镜像

docker pull percona/percona-xtradb-cluster

二、修改镜像名称

docker tag docker.io/percona/percona-xtradb-cluster pxc

三、创建网络

1) docker 默认网段是172.18.0.*

docker network create --subnet=172.18.0.0/24 net1

2) 查看创建的网络信息

docker inspect net1

四、创建pxc容器节点1(node1)

1、创建数据卷

1) 用户挂载mysql数据

docker volume create v1

2) 查看数据卷信息

docker inspect v1

2、创建pxc容器

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v1:/var/lib/mysql --privileged --name=node1 --net=net1 --ip=172.18.0.2 pxc

命令详解:

-d 后台启动

-p 3306:3306 端口映射

-e MYSQL_ROOT_PASSWORD=abc123456   指定数据库密码

-e CLUSTER_NAME=PXC 指定集群名称

-e XTRABACKUP_PASSWORD=abc123456 指定集群之间同步需要的密码

-v v1:/var/lib/mysql 把刚刚创建的数据卷挂载到mysql中

--name=node1 指定容器名称(当前我们把node1作为主节点、后面会创建node2)

--net=net1 指定网段

--ip=172.18.0.2 指定ip 

 

3、客户端连接测试

Docker 搭建pxc集群 + haproxy + keepalived 高可用(一)_第1张图片

五、创建pxc容器节点node2

1、创建数据卷

docker volume create v2

2、创建容器

docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v2:/var/lib/mysql --privileged --name=node2 --net=net1 --ip=172.18.0.3 pxc

命令详解:

-e CLUSTER_JOIN=node1  指定与哪个节点进行数据同步

其他同上

3、客户端连接测试

 

 

Docker 搭建pxc集群 + haproxy + keepalived 高可用(一)_第2张图片

六、测试数据同步

1、新建库和表同步测试:

1) 我在db1新建数据库wx_test和表t_user

Docker 搭建pxc集群 + haproxy + keepalived 高可用(一)_第3张图片

2) 然后我在db2去查看是否有wx_test库和t_user表

Docker 搭建pxc集群 + haproxy + keepalived 高可用(一)_第4张图片

2、新建表数据测试:

1) 我在t_user表中增加3条数据 test1,test2,test3

Docker 搭建pxc集群 + haproxy + keepalived 高可用(一)_第5张图片

2) 然后我们再在db2去查看是否有这3条数据

Docker 搭建pxc集群 + haproxy + keepalived 高可用(一)_第6张图片

db2数据也有了。

在此我们的集群便搭建成功了,当然你也可以去测试删除、修改等其他功能、这里我就不演示了

你可能感兴趣的:(环境搭建)