单机 Mysql

Mysql Replication

PXC 集群

架构图如下:
01.png

A、创建集群网络

  1. docker network create --subnet=172.03.0.0/24 pxc-cluster-net

根据网络进行划分

服务节点 ip地址
DB1 172.03.0.11
DB2 172.03.0.12
DB3 172.03.0.13

B、数据库节点启动

拉取镜像

pxc:5.7 对应的 Centos 系统,mysql 版本 5.7.28-31

PXC Docker镜像地址

  1. # 拉取镜像
  2. docker pull percona/percona-xtradb-cluster:5.7
  3. # 更改镜像名,方便写脚本
  4. docker tag percona/percona-xtradb-cluster:5.7 pxc:5.7

启动 DB 节点

  1. # DB1 ====================
  2. ## 创建Docker卷,存放 mysql 数据
  3. docker volume create v_pxc_db_1
  4. ##
  5. ## 启动 DB1
  6. docker run -d -p 3307:3306 \ # 容器后台运行,端口映射
  7. -v v_pxc_db_1:/var/lib/mysql \ # volume 映射
  8. -e MYSQL_ROOT_PASSWORD=zx123456 \ # mysql root 用户密码
  9. -e CLUSTER_NAME=PXC \ # 集群名称
  10. -e XTRABACKUP_PASSWORD=zx123456 \ # 节点间同步密码
  11. --privileged \ #
  12. --name=pxc_db_1 \ # 容器名称
  13. --net=pxc-cluster-net \ # 容器所在网段
  14. --ip 172.03.0.11 \ # 指定ip地址
  15. pxc:5.7 # 指定镜像
  16. # DB2 ====================
  17. ## 创建Docker卷,存放 mysql 数据
  18. docker volume create v_pxc_db_2
  19. ## 启动 DB2
  20. docker run -d -p 3308:3306 \
  21. -v v_pxc_db_2:/var/lib/mysql \
  22. -e MYSQL_ROOT_PASSWORD=zx123456 \
  23. -e CLUSTER_NAME=PXC \
  24. -e CLUSTER_JOIN=pxc_db_1 \
  25. -e XTRABACKUP_PASSWORD=zx123456 \
  26. --privileged \
  27. --name=pxc_db_2 \
  28. --net=pxc-cluster-net \
  29. --ip 172.03.0.12 \
  30. pxc:5.7
  31. # DB3 ====================
  32. ## 创建Docker卷,存放 mysql 数据
  33. docker volume create v_pxc_db_3
  34. docker volume create v_pxc_db_3_backup
  35. ## 启动 DB3
  36. docker run -d -p 3309:3306 \
  37. -v v_pxc_db_3:/var/lib/mysql \
  38. -v v_pxc_db_3_backup:/data \
  39. -e MYSQL_ROOT_PASSWORD=zx123456 \
  40. -e CLUSTER_NAME=PXC \
  41. -e CLUSTER_JOIN=pxc_db_1 \
  42. -e XTRABACKUP_PASSWORD=zx123456 \
  43. --privileged \
  44. --name=pxc_db_3 \
  45. --net=pxc-cluster-net \
  46. --ip 172.03.0.13 \
  47. pxc:5.7

启动节点如下:

  1. ZHIXING21:29 pxc\docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. eb66515e62a6 pxc:5.7 "/entrypoint.sh mysq…" 2 minutes ago Up 2 minutes 4567-4568/tcp, 0.0.0.0:3309->3306/tcp pxc_db_3
  4. 951afd31cb4e pxc:5.7 "/entrypoint.sh mysq…" 4 minutes ago Up 3 minutes 4567-4568/tcp, 0.0.0.0:3308->3306/tcp pxc_db_2
  5. f51eaf59963c pxc:5.7 "/entrypoint.sh mysq…" 29 minutes ago Up 28 minutes 4567-4568/tcp, 0.0.0.0:3307->3306/tcp pxc_db_1

客户端连接,并测试(省略)
02.png

C、Haproxy 节点