mysql pxc集群搭建(docker-compose版)

591 阅读1分钟

前面为生产环境搭建了 mysql mha环境,接下来试着架构个docker-compose版的pxc集群mysql5.7。

相关介绍可参考:www.cnblogs.com/kevingrace/…

1. docker-compose.yml

version : '3.7'
services:
  db1:
    container_name: db1
    image: percona/percona-xtradb-cluster:5.7.34-31.51
    privileged: true
    networks:
      net1:
        ipv4_address: 172.16.238.2
    environment:
      - "CLUSTER_NAME=JWSPXC"
      - "XTRABACKUP_PASSWORD=db123456"
      - "MYSQL_ROOT_PASSWORD=db123456"
      - "TZ=Asia/Shanghai"
    ports:
      - "30001:3306"
    volumes:
       - ./data/v1/data:/var/lib/mysql
       - ./data/v1/backup:/data
  db2:
    container_name: db2
    image: percona/percona-xtradb-cluster:5.7.34-31.51
    privileged: true
    networks:
      net1:
        ipv4_address: 172.16.238.3
    environment:
      - "CLUSTER_NAME=JWSPXC"
      - "XTRABACKUP_PASSWORD=db123456"
      - "TZ=Asia/Shanghai"
      - "CLUSTER_JOIN=db1"
    ports:
      - "30002:3306"
    volumes:
       - ./data/v2/data:/var/lib/mysql
       - ./data/v2/backup:/data
    depends_on:
       - db1
  db3:
    container_name: db3
    image: percona/percona-xtradb-cluster:5.7.34-31.51
    privileged: true
    networks:
      net1:
        ipv4_address: 172.16.238.4
    environment:
      - "CLUSTER_NAME=JWSPXC"
      - "XTRABACKUP_PASSWORD=db123456"
      - "TZ=Asia/Shanghai"
      - "CLUSTER_JOIN=db1"
    ports:
      - "30003:3306"
    volumes:
      - ./data/v3/data:/var/lib/mysql
      - ./data/v3/backup:/data
    depends_on:
      - db1
  db4:
    container_name: db4
    image: percona/percona-xtradb-cluster:5.7.34-31.51
    privileged: true
    networks:
      net1:
        ipv4_address: 172.16.238.5
    environment:
      - "CLUSTER_NAME=JWSPXC"
      - "XTRABACKUP_PASSWORD=db123456"
      - "TZ=Asia/Shanghai"
      - "CLUSTER_JOIN=db1"
    ports:
      - "30004:3306"
    volumes:
      - ./data/v4/data:/var/lib/mysql
      - ./data/v4/backup:/data
    depends_on:
      - db1
  db5:
    container_name: db5
    image: percona/percona-xtradb-cluster:5.7.34-31.51
    privileged: true
    networks:
      net1:
        ipv4_address: 172.16.238.6
    environment:
      - "CLUSTER_NAME=JWSPXC"
      - "XTRABACKUP_PASSWORD=db123456"
      - "TZ=Asia/Shanghai"
      - "CLUSTER_JOIN=db1"
    ports:
      - "30005:3306"
    volumes:
      - ./data/v5/data:/var/lib/mysql
      - ./data/v5/backup:/data
    depends_on:
      - db1
networks:
  net1:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.16.238.0/24

2. 启动方式

首先,先启动db1

docker-compose up -d db1

其次,通过mysql客户端工具(如:MySQL Workbench),连接db1后执行下列SQL文

供haproxy中间件使用(目前这部分以后再改进)

create user 'haproxy'@'%' identified by '';
flush privileges;

然后,启动剩下节点

docker-compose up -d db2 db3 db4 db5