docker 中搭建 mysql pxc 集群
一、docker中创建pxc 容器
1.拉取PXC 镜像 pull
docker pull percona/percona-xtradb-cluster:5.7.21
2.更改镜像名称为pxc tag
docker tag percona/percona-xtradb-cluster:5.7.21 pxc
3.删除旧名称的镜像 rmi
docker rmi percona/percona-xtradb-cluster:5.7.21e
二、容器内部创建网段
1.创建容器内部网段 通过映射方式事项外部访问 network create
docker network create net1 2.查看网段的信息 inspect
docker network inspect net1
3.删除网段信息
docker network rm net1
4.自定义创建网段 参数 --subnet
docker network create --subnet=172.18.0.0.1/24 net1
5.查看net1网段信息 inspect
三、创建docker 卷
1.创建docker 数据卷 (pxc 数据不能储存在容器里,必须储存在宿主机上,所以集群不能直接使用路径映射,必选创建数据券,再将数据券映射到宿主机的目录)
docker volume create --name v1
2.查看数据卷位置
docker inspect v1
可以看到数据券创建成功,"Mountpoint": "/var/lib/docker/volumes/v1/_data",
创建PXC 数据库节点时只需要把这个是数据券在宿主机上的位置,只需要把v1 映射到宿主机的数据卷上就可以了
4.创建PXC 第一个容器
docker run -d -p 3306:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node1 --net=net1 --ip172.20.0.2 pxc
参数解释:
docker run -d (启动容器在后台运行)
-p 3306:3306 (断后映射前面为宿主机端口,后为容器端口)
-v v1:var/lib/mysql (路径映射卷)
-e MYSQL_ROOT_PASSWORD=abc123456 (数据库ROOT 用户密码)
-e CLUSTER_NAME=PXC (容器名称)
-e XTRABACKUP_PASSWORD=abc123456 (数据同步密码)
--privileged (最高权限) --name=node1 (容器节点名称)
--net=net1 (容器内部网段)
--ip172.18.0.2 (内部网段对应的ip)
pxc 容器名
4.1创建PXC 第二个容器
docker run -d -p 3307:3306 -v v2:/var/lib/mysql -e CLUSTER_JOIN=node1 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node2 --net=net1 --ip=172.20.0.3 pxc
参数解释:
docker run -d (启动容器在后台运行)
-p 3307:3306 (宿主机端口需要错开,后为容器端口)
-v v2:var/lib/mysql (路径映射卷)
-e MYSQL_ROOT_PASSWORD=abc123456 (数据库ROOT 用户密码)
-e CLUSTER_JOIN=node1 加入集群 和第一个容器节点数据库同步
-e CLUSTER_NAME=PXC (容器名称)
-e XTRABACKUP_PASSWORD=abc123456 (数据同步密码)
--privileged (最高权限)
--name=node2 (容器节点名称)
--net=net1 (容器内部网段)
--ip172.18.0.3 (内部网段对应的ip 需要错开)
pxc 容器名
4.2创建PXC 第三个容器
docker run -d -p 3308:3306 -v v3:/var/lib/mysql -e CLUSTER_JOIN=node1 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node3 --net=net1 --ip=172.20.0.4 pxc
参数解释:
docker run -d (启动容器在后台运行)
-p 3308:3306 (宿主机端口需要错开,后为容器端口)
-v v3:var/lib/mysql (路径映射卷)
-e MYSQL_ROOT_PASSWORD=abc123456 (数据库ROOT 用户密码)
-e CLUSTER_JOIN=node1 加入集群 和第一个容器节点数据库同步
-e CLUSTER_NAME=PXC (容器名称)
-e XTRABACKUP_PASSWORD=abc123456 (数据同步密码)
--privileged (最高权限)
--name=node3 (容器节点名称)
--net=net1 (容器内部网段)
--ip172.18.0.4 (内部网段对应的ip 需要错开)
pxc 容器名
5,第三个第四个容器
docker run -d -p 3309:3306 -v v4:/var/lib/mysql -e CLUSTER_JOIN=node1 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node4 --net=net1 --ip=172.20.0.5 pxc docker run -d -p 3310:3306 -v v5:/var/lib/mysql -e CLUSTER_JOIN=node1 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node5 --net=net1 --ip=172.20.0.6 pxc
docker 中搭建 mysql pxc 集群的更多相关文章
- 基于keepalived搭建MySQL热机集群
背景 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,M ...
- 抄来的,占个位儿【百度架构师是怎样搭建MySQL分布式集群】
1.准备集群搭建环境 使用6台虚拟机来搭建MySQL分布式集群,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示: 管理节点(MGM):这类节点的作用是管理MySQLCluster ...
- MySQL PXC集群安装配置
1.关闭防火墙 [root@node04 ~]#systemctl disable firewalld [root@node04 ~]#systemctl stop firewalld [root@n ...
- docker中mysql pxc集群
PXC集群 https://hub.docker.com/r/percona/percona-xtradb-cluster 安装PXC镜像 下载镜像或者导入本地镜像 docker pull perco ...
- MySQL数据库高可用集群搭建-PXC集群部署
Percona XtraDB Cluster(下文简称PXC集群)提供了MySQL高可用的一种实现方法.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上. PXC原理描述: 分布式 ...
- 使用Docker Swarm搭建分布式爬虫集群
https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653195618&idx=2&sn=b7e992da6bd1b2 ...
- MySQL PXC集群部署
安装 Percona-XtraDB-Cluster 架构: 三个节点: pxc_node_0 30.0.0.196 pxc_node_1 30.0.0.198 pxc_node_2 30.0.0.19 ...
- Docker Compose 搭建 Redis Cluster 集群环境
在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...
- Docker搭建MySQL主从集群,基于GTID
写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-do ...
- docker mysql pxc集群(percona-xtradb-cluster)
docker pull percona/percona-xtradb-cluster docker tag percona/percona-xtradb-cluster pxc docker netw ...
随机推荐
- 【坑】 centos 7.6 使用ssh 秘钥登录遇到的问题
问题: 我在master1上面创建了一个ssh的秘钥文件,通过ssh-copy-id 传送四台主机,然后使用ansible all -m ping 发现有台机器就是有问题 这是怎么回事???一样的配置 ...
- 2023最新版Selenium 4.6.0语法快速入门
简介 Selenium是一款强而有力的前端应用测试工具,也非常适合搭配Python作为网络爬虫的工具:Selenium可以模拟使用者所有浏览器操作的动作,包括输入文本.点击按钮及拖拽进度条等.有鑑于新 ...
- python 成功解决import librosa出错问题
在做音频处理时,用到了librosa这个库,但是一直在报错,一开始以为代码错误,后来发现import的时候就已经出错了. 我给他卸载了重新安装,结果是一样的,报错如下: Traceback (most ...
- popen函数和pyinstaller打包之 -w冲突
启发文章:https://www.jb51.net/article/184731.htm 之前我也是用到了os.popen()这个函数 1.os.popen(self.excel_path) 括号里 ...
- c语言中printf不输出任何东西?,缓冲区未满不输出任何东西
下面代码为什么没有任何输出: #include<cstdio> #include<unistd.h> int main(int argc, char **argv){ whil ...
- 解决elementplus carousel固定高度问题/ResizeObserverAPI介绍
"element-plus": "^2.2.26", "@vueuse/components": "^9.7.0", 引 ...
- Content Provider详解(太懒不想抄)
1.Content Provider作用 进程间进行数据交互&共享,即跨进程通信 contentprovider作用图.png 2.Content Provider原理 content p ...
- shell之flock
1.flock 最大的用途就是实现对 crontab 任务的串行化:为了防止crontab 任务出现多实例的情况,导致系统内存被耗尽. 在 crontab 任务中,有可能出现某个任务的执行时间超过了 ...
- JS 代码片段 / 预编译/预解析 /执行上下文/ECG/EC/ECS/GO/VO/AO
代码段概念 一个 script 就是一个代码段 在一个页面中可以有多个代码段 每一个代码段, 彼此独立的, 如果上面的代码段报错了, 不会影响下一个代码段 referenceError 引用错误 下面 ...
- EMQX 在 Kubernetes 中如何进行优雅升级
背景 为了降低 EMQX 在 Kubernetes 上的部署.运维成本,我们将一些日常运维能力进行总结.抽象并整合到代码中,以 EMQX Kubernetes Operator 的方式帮助用户实现 E ...

