zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    壶公随感
    消息称微软受谷歌刺激 急于收购雅虎(zz)
    远程注销Windows用户
    "杀人"游戏中的一些规律
    由两点的经纬度估算距离
    我的城市?
    Blog里的一个bug,dudu看能否修正?
    这两天真烦
    发简历,找上海.Net方面软件开发工作
    "上海.NET俱乐部"聚会筹备进展
  • 原文地址:https://www.cnblogs.com/tsgxj/p/14870689.html
Copyright © 2011-2022 走看看