一、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 集群的更多相关文章

  1. 基于keepalived搭建MySQL热机集群

    背景 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,M ...

  2. 抄来的,占个位儿【百度架构师是怎样搭建MySQL分布式集群】

    1.准备集群搭建环境 使用6台虚拟机来搭建MySQL分布式集群,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示:     管理节点(MGM):这类节点的作用是管理MySQLCluster ...

  3. MySQL PXC集群安装配置

    1.关闭防火墙 [root@node04 ~]#systemctl disable firewalld [root@node04 ~]#systemctl stop firewalld [root@n ...

  4. docker中mysql pxc集群

    PXC集群 https://hub.docker.com/r/percona/percona-xtradb-cluster 安装PXC镜像 下载镜像或者导入本地镜像 docker pull perco ...

  5. MySQL数据库高可用集群搭建-PXC集群部署

    Percona XtraDB Cluster(下文简称PXC集群)提供了MySQL高可用的一种实现方法.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上. PXC原理描述: 分布式 ...

  6. 使用Docker Swarm搭建分布式爬虫集群

    https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653195618&idx=2&sn=b7e992da6bd1b2 ...

  7. 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 ...

  8. Docker Compose 搭建 Redis Cluster 集群环境

    在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...

  9. Docker搭建MySQL主从集群,基于GTID

    写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-do ...

  10. docker mysql pxc集群(percona-xtradb-cluster)

    docker pull percona/percona-xtradb-cluster docker tag percona/percona-xtradb-cluster pxc docker netw ...

随机推荐

  1. [Swift] SwiftUI布局的一些写法基础(用Swift构造UI布局)

    这个文档是在你 完全熟悉 Objective-C 上用代码构造UI的前提下写的 官方教程:https://developer.apple.com/tutorials/swiftui/creating- ...

  2. VirtualBox上使用qemu和busybear搭建RISCV环境

    Step 1:安装一些编译riscv需要的库: sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr ...

  3. Kubernetes--容器重启策略和Pod终止过程

    容器的重启策略 容器程序发生崩溃或容器申请超出限制的资源等原因都可能会导致Pod对象的终止,此时是否应该重建该Pod对象则取决于其重启策咯(restartPolicy)属性的定义. 1)Always: ...

  4. win10系统IE浏览器打不开 点击无反应 解决办法

    打开左下角开始菜单 步骤阅读 2 点击右边的Cortana,在下面的输入框中输入:regedit,等待它自动搜索出来后,以管理员身份打开这个注册表编辑器:当然熟悉电脑的同学可以直接打开运行----re ...

  5. (未完成)JAVAWEB学习——

    一.Servlet开发 1.sun公司提供的一种动态web资源开发技术,本质上就要是一段Java小程序,可以将Servlet加入到容器中运行Servlet. *servlet容器 -- 能够运行ser ...

  6. GIS空间分析和建模复习重点4

    27.三维地形分析的方法 常用的有 ·坡度分析 ·坡向分布 ·填挖方分析 ·山体阴影分析 ·通视分析 28.空间分析实际应用 (1)城市应急避难场所是城市防灾减灾规划的重要组成部分,应急避难场所的建设 ...

  7. 2023Hgame

    2023Hgame Shared Diary 源代码先放一下 const express = require('express'); const bodyParser = require('body- ...

  8. verilog 和system verilog 文件操作

    1. 文件操作 Verilog具有系统任务和功能,可以打开文件.将值输出到文件.从文件中读取值并加 载到其他变量和关闭文件. 1.1 Verilog文件操作 1.1.1 打开和关闭文件 module ...

  9. 6.mysql优化案例

    1.单表优化:  进行优化: 删除原来的三个字段的索引,创建二个字段的索引: 2.两表关联: 左连接,在右表创建索引   右连接,在左表创建索引: 3.三表关联:左关联全都在右表创建索引:

  10. 1.mysql创建索引

    -- 创建一个普通索引(方式①)create index 索引名 ON 表名 (列名(索引键长度) [ASC|DESC]);-- 创建一个普通索引(方式②)alter table 表名 add ind ...