Docker 搭建mysql 集群(二)

PXC方案

很明显 PXC方案在任何一个节点写入的数据都会同步到其他节点,数据双向同步的(在任何节点上都可以同时读写)

创建MySQL PXC集群

1 安装PXC镜像

docker pull percona/percona-xtradb-cluster:5.7.21

2 为PXC镜像改名

docker tag percona/percona-xtradb-cluster:5.7.21 pxc

 3 创建net1网段

docker network create --subnet=172.18.0.0/16 net1

4 创建5个数据卷

docker volume create --name v1

docker volume create --name v2

docker volume create --name v3

docker volume create --name v4

docker volume create --name v5

 5 创建备份数据卷(用于热备份数据)

docker volume create --name backup

6 创建5节点的PXC集群  

注意,每个MySQL容器创建之后,因为要执行PXC的初始化和加入集群等工作,耐心等待1分钟左右再用客户端连接MySQL。另外,必须第1个MySQL节点启动成功,用MySQL客户端能连接上之后,再去创建其他MySQL节点。  

创建第1个MySQL节点

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

创建第2个MySQL节点

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 -v backup:/data --privileged --name=node2 --net=net1 --ip 172.18.0.3 pxc

创建第3MySQL节点

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

创建第4MySQL节点

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

创建第5MySQL节点

docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v5:/var/lib/mysql -v backup:/data --privileged --name=node5 --net=net1 --ip 172.18.0.6 pxc

查看容器运行状态  

docker container ls

 可以创建一个数据库或表,发现在任意节点创建的数据都会同步到其他节点

 

相关推荐

  1. Centosdocker mysql

    2024-02-05 07:42:01       46 阅读
  2. Dockerkafka

    2024-02-05 07:42:01       51 阅读
  3. 简单docker swarm

    2024-02-05 07:42:01       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-05 07:42:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-05 07:42:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-05 07:42:01       82 阅读
  4. Python语言-面向对象

    2024-02-05 07:42:01       91 阅读

热门阅读

  1. 鸿蒙 状态管理-应用存储

    2024-02-05 07:42:01       40 阅读
  2. Vue中跨域问题的解决

    2024-02-05 07:42:01       48 阅读
  3. Windows SDK(四)鼠标和键盘消息处理

    2024-02-05 07:42:01       39 阅读
  4. selenium之鼠标动作链

    2024-02-05 07:42:01       50 阅读
  5. 使用django构建一个多级评论功能

    2024-02-05 07:42:01       45 阅读
  6. 安装Debian 11 留档

    2024-02-05 07:42:01       62 阅读
  7. React和Vue实现路由懒加载

    2024-02-05 07:42:01       52 阅读