参考之前的博客,将docker的跨宿主机overlay网络部署成功,然后再进行此次操作。

pxc集群

第一个节点:

1
sudo docker volume create v01
1
2
3
4
5
6
7
8
9
10
sudo docker run -d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=abc123456 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=abc123456 \
-v v01:/var/lib/mysql \
--privileged \
--name=node1 \
--net=pxc_overlay \
percona/percona-xtradb-cluster:5.7

docker privileged

使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。

在官方的演示文档中,pxc官方并没有使用这个参数,但其他博客在部署过程中都使用了这个参数,理论上那这个就是没有问题的,但在我的实际部署中,有些节点若使用这个参数反而会报出无法操作某些文件夹的错误,所以在子节点上,我没有加入这个参数。

其他节点:

1
sudo docker volume create v02
1
2
3
4
5
6
7
8
9
10
sudo docker run -d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=abc123456 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=abc123456 \
-e CLUSTER_JOIN=node1 \
-v v02:/var/lib/mysql \
--name=node2 \
--net=pxc_overlay \
percona/percona-xtradb-cluster:5.7

测试

一个节点:

1
mysql -uroot -p -hxxx.xxx.xxx.xxx -P3306

create database wubotest;

另一个节点:

1
mysql -uroot -p -hxxx.xxx.xxx.xxx -P3306

show databases;

负载均衡

「实战篇」开源项目docker化运维部署-搭建mysql集群(四)

安装完成后,为了更好的利用集群的特性,你可能就需要用到负载均衡了。

这方面我没有做,所以也仅是提供个链接供我以后和大家参考了。