暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

容器集群系列(二):使用Docker Swarm结合PXC容器构建MySQL主从模式集群、无自定义MySQL配置文件

巴韭特锁螺丝 2024-09-24
4

一、基本情况

    本地虚拟机测试,在3台服务器上使用Docker Swarm搭建Mysql集群,实现一主两从的效果。

    主节点:192.168.1.132

    node-1:192.168.1.139

    node-2:192.168.1.140

    Percona XtraDB Cluster (PXC) 是一个基于 Percona Server for MySQL 的开源、高可用性的 MySQL 集群解决方案。它使用 Galera Cluster 技术,允许多个 MySQL 节点协同工作,提供水平扩展和高可用性。

    PXC 使用 InnoDB 存储引擎作为默认存储引擎。

    Docker Swarm集群节点初始化(略)

二、Master管理节点配置

    1、创建nerwork

    docker network create -d overlay --attachable sharednet
    docker network ls
    复制

        可以在从节点验证同步添加完成

            docker network ls

      [root@Node1 ~]# docker network ls
      NETWORK ID NAME DRIVER SCOPE
      b8ec7ad1fc53 bridge bridge local
      2b7389a49c3c docker_gwbridge bridge local
      2f604b57947e host host local
      ov9l5tb6udg3 ingress overlay swarm
      d9e27827037d none null local
      0diog40psryu sharednet overlay swarm


      复制

      2、拉取pxc镜像并重新标记、删除源镜像(所有节点均需操作

         docker pull percona/percona-xtradb-cluster:5.7.34
        docker tag percona/percona-xtradb-cluster:5.7.34 mysql:5.7.34
        docker rmi percona/percona-xtradb-cluster:5.7.34
        复制

        3、创建数据卷

          docker volume create v1
          docker volume create backup
          复制

          可以在从节点验证同步添加完成

                  docker volume ls

            [root@Master ~]# docker volume ls
            DRIVER VOLUME NAME
            local ab088d81b38ece678f9d1e86a36e35cd198f04dc2329d536d2ad7e7538825143
            local backup
            local d5b2246c7c5bd258924df21f3a266e26e4cc71769bc7f86b710adb480003c832
            local nginx-config
            local portainer_data
            local v1


            复制

            4、主节点创建并运行容器

              docker run --restart=always      
              -p 3306:3306
              -e MYSQL_ROOT_PASSWORD=123456
              -e CLUSTER_NAME=PXC
              -e XTRABACKUP_PASSWORD=123456
              -v v1:/var/lib/mysql
              -v backup:/data      
              --privileged=true      
              --name=node1      
              --net=sharednet      
              -d mysql:5.7.34
              复制

                  查看容器运行状态:

                [root@Master ~]# docker ps
                CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
                402e30dbe622 mysql:5.7.34 "/entrypoint.sh mysq…" 50 minutes ago Up 50 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 4567-4568/tcp node1


                复制

                三、SLAVE节点配置(2台)

                1、拉取镜像(略);

                2、加入集群

                node 1执行:

                  docker run --restart=always  \
                  -p 3306:3306 \
                  -e MYSQL_ROOT_PASSWORD=123456 \
                  -e CLUSTER_NAME=PXC \
                  -e XTRABACKUP_PASSWORD=123456 \
                  -v v1:/var/lib/mysql \
                  -v backup:/data \
                  --privileged=true \
                  --name=node1 \
                  --net=sharednet \
                  -d mysql:5.7.34
                  复制

                  node 2执行:

                    docker run --restart=always  \
                    -p 3306:3306 \
                    -e MYSQL_ROOT_PASSWORD=123456 \
                    -e CLUSTER_NAME=PXC \
                    -e XTRABACKUP_PASSWORD=123456 \
                    -e CLUSTER_JOIN=node1 \
                    -v v1:/var/lib/mysql \
                    -v backup:/data \
                    --privileged=true \
                    --name=node2 \
                    --net=sharednet \
                    -d mysql:5.7.34
                    复制

                    四、验证

                            在master数据库创建一个test库,并导入sql;可以发现slave库也同步导入。

                        证明主从模式配置无问题,一切使用正常。

                    文章转载自巴韭特锁螺丝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                    评论