docker中mysql pxc集群
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:44
PXC集群
https://hub.docker.com/r/percona/percona-xtradb-cluster
安装PXC镜像
下载镜像或者导入本地镜像
docker pull percona/percona-xtradb-cluster
docker load < /home/soft/pxc.tar.gz
修改镜像名字
docker tag docker.io/percona/percona-xtradb-cluster pxc
删除镜像
docker rmi docker.io/xx
查看镜像
docker images
创建内部网络
docker network create net1
docker network inspect net1
docker network rm net1
创建Docker卷
容器中的pxc节点映射数据目录的解决办法
docker volume create –name v1
查看
docker inspect v1
删除
docker volume rm v1
实战
docker volume create v1
docker volume create v2
docker volume create v3
docker volume create v4
docker volume create v5
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=ABC123456 -V V1:/var/lib/mysql –privileged –name=node –net=net1 –ip 172.18.0.2 pxc
数据库负载均衡
安装Haproxy镜像
docker pull haproxy
创建Haproxy配置文件
touch /home/soft/haproxy.cfg
创建Haproxy容器
docker run -it -d -p 4001:8888 -p 4002:3306 -v /home/soft/haproxy:/usr/local/etc/haproxy –name haproxy –privileged –net=net1 haproxy
haproxy -f /usr/local/etc/haproxy/haproxy.cfg
进入一个允许容器
docker exec -it h1 bash
haproxy -f /usr/local/etc/haproxy/haproxy.cfg
CREATE USER ‘haproxy’@‘%’ IDENTIFIED BY ’‘;
配置keepalived
启动 Keepalived
service keepalived start
数据库热备份
MYSQL常见的热备有LVM和XtraBackUp两种方案
全量备份和增量备份
创建数据卷 用于映射宿主机内和容器内路径
docker volume create backup
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 -e CLUSTER_JOIN=node2 –name=node1 –net=net1 –ip 172.18.0.2 pxc
pxc全量备份步骤
apt-get update
apt-get install percona-xtrabackup-24
全量备份
innobackupex –user=root –password=abc123456 /data/backup/full
pxc全量恢复步骤
第一步 删除 mysql数据
rm -rf /var/lib/mysql/*
第二步 apply-back 回滚没有提交的事务
innobackupex –user=root –password=abc123456 –apply-back /data/backup/full/2018-04-15_05-09-07/
第三步 copy-back还原的意思
innobackupex –user=root –password=abc123456 –copy-back /data/backup/full/2018-04-15_05-09-07/
还原冷备份 数据 前提工作
docker stop node1 node2 node3 node4 node5 停掉5个pxc节点
docker rm node1 node2 node3 node4 node5 删除5个pxc节点
docker volume rmn v1 v2 v3 v4 v5 删除映射的数据卷
docker volume create v1 创建新的数据卷
启动一个pxc节点
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 -e CLUSTER_JOIN=node2 –name=node1 –net=net1 –ip 172.18.0.2 pxc
进入node1节点容器
docker exec -it node1 bash
执行冷还原 pxc全量恢复步骤
退出一下容器 exit
重启下node1节点
docker stop node1
docker start node1
- 上一篇: dojorequest 同步请求
- 下一篇: Docker学习总结
相关文章
-
dojorequest 同步请求
dojorequest 同步请求
- 互联网
- 2026年04月04日
-
dom div重合提示
dom div重合提示
- 互联网
- 2026年04月04日
-
Don't code by confusing letters in the constants and variables
Don't code by confusing letters in the constants and variables
- 互联网
- 2026年04月04日
-
Docker学习总结
Docker学习总结
- 互联网
- 2026年04月04日
-
docker学习资料整理(持续更新中..)
docker学习资料整理(持续更新中..)
- 互联网
- 2026年04月04日
-
Docker学习之——Node.js+MongoDB+Nginx环境搭建(一)
Docker学习之——Node.js+MongoDB+Nginx环境搭建(一)
- 互联网
- 2026年04月04日






