美文网首页
docker -mysql-pxc集群

docker -mysql-pxc集群

作者: 以七v为书 | 来源:发表于2018-11-18 16:08 被阅读0次

docker 常用命令

image导入导出

docker save java > /home/xinjie/java.tar.gz
docker load < /home/xinjie/java.tar.gz

集群方案

mysql 集群方案介绍,建议使用pxc,因为弱一致性会有问题,比如说a节点数据库显示我购买成功,b 节点数据库显示没有成功,这就麻烦了,pxc 方案是在全部节点都写入成功之后才会告诉你成功,是可读可写双向同步的,但是replication是单向的,不同节点的数据库之间都会开放端口进行通讯,如果从防火墙的这个端口关闭,pxc就不会同步成功,也不会返给你成功了。


20180712114503680.png

创建mysql集群

  1. docker的官方仓库下载pxc方案的镜像
docker pull percona/percona-xtradb-cluster
  1. 创建数据卷,容器中的数据不要放在容器中而是放在宿主机上,这样当容器出现问题的时候,可以删除容器,重新创建。
docker volume create v5
docker volume create v4
docker volume create v3
docker volume create v2
docker volume create v1
  1. 我们知道各节点之间在通讯的时候时候内部端口的,首先我们要创建内部网段,并且分配具体的ip。
docker network create --driver bridge --subnet 172.25.0.0/16 pxc_net
  1. 运行pxc镜像
docker run -d -p 3310:3306 --name=node5 -v v5:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xinjie -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 -e XTRABACKUP_PACSSWORD=xinjie --privileged --net=pxc_net --ip 172.25.0.6 pxc
docker run -d -p 3309:3306 --name=node4 -v v4:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xinjie -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 -e XTRABACKUP_PACSSWORD=xinjie --privileged --net=pxc_net --ip 172.25.0.5 pxc
docker run -d -p 3308:3306 --name=node3 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xinjie -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 -e XTRABACKUP_PACSSWORD=xinjie --privileged --net=pxc_net --ip 172.25.0.4 pxc
docker run -d -p 3307:3306 --name=node2 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xinjie -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 -e XTRABACKUP_PACSSWORD=xinjie --privileged --net=pxc_net --ip 172.25.0.3 pxc
docker run -d -p 3306:3306 --name=node1 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xinjie -e CLUSTER_NAME=PXC -e XTRABACKUP_PACSSWORD=xinjie --privileged --net=pxc_net --ip 172.25.0.2 pxc
  1. 现在就可以在连接宿主机的3306-3310端口。

相关文章

网友评论

      本文标题:docker -mysql-pxc集群

      本文链接:https://www.haomeiwen.com/subject/gcdgfqtx.html