单机 Mysql
Mysql Replication
PXC 集群
A、创建集群网络
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
# 拉取镜像docker pull percona/percona-xtradb-cluster:5.7# 更改镜像名,方便写脚本docker tag percona/percona-xtradb-cluster:5.7 pxc:5.7
启动 DB 节点
# DB1 ====================## 创建Docker卷,存放 mysql 数据docker volume create v_pxc_db_1#### 启动 DB1docker run -d -p 3307:3306 \ # 容器后台运行,端口映射-v v_pxc_db_1:/var/lib/mysql \ # volume 映射-e MYSQL_ROOT_PASSWORD=zx123456 \ # mysql root 用户密码-e CLUSTER_NAME=PXC \ # 集群名称-e XTRABACKUP_PASSWORD=zx123456 \ # 节点间同步密码--privileged \ #--name=pxc_db_1 \ # 容器名称--net=pxc-cluster-net \ # 容器所在网段--ip 172.03.0.11 \ # 指定ip地址pxc:5.7 # 指定镜像# DB2 ====================## 创建Docker卷,存放 mysql 数据docker volume create v_pxc_db_2## 启动 DB2docker run -d -p 3308:3306 \-v v_pxc_db_2:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=zx123456 \-e CLUSTER_NAME=PXC \-e CLUSTER_JOIN=pxc_db_1 \-e XTRABACKUP_PASSWORD=zx123456 \--privileged \--name=pxc_db_2 \--net=pxc-cluster-net \--ip 172.03.0.12 \pxc:5.7# DB3 ====================## 创建Docker卷,存放 mysql 数据docker volume create v_pxc_db_3docker volume create v_pxc_db_3_backup## 启动 DB3docker run -d -p 3309:3306 \-v v_pxc_db_3:/var/lib/mysql \-v v_pxc_db_3_backup:/data \-e MYSQL_ROOT_PASSWORD=zx123456 \-e CLUSTER_NAME=PXC \-e CLUSTER_JOIN=pxc_db_1 \-e XTRABACKUP_PASSWORD=zx123456 \--privileged \--name=pxc_db_3 \--net=pxc-cluster-net \--ip 172.03.0.13 \pxc:5.7
启动节点如下:
ZHIXING21:29 pxc\docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESeb66515e62a6 pxc:5.7 "/entrypoint.sh mysq…" 2 minutes ago Up 2 minutes 4567-4568/tcp, 0.0.0.0:3309->3306/tcp pxc_db_3951afd31cb4e pxc:5.7 "/entrypoint.sh mysq…" 4 minutes ago Up 3 minutes 4567-4568/tcp, 0.0.0.0:3308->3306/tcp pxc_db_2f51eaf59963c 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
