Docker swarm 安装MySQL集群

Docker swarm 安装MySQL集群,第1张

Docker swarm 安装MySQL集群

这里直接采用的是5.7.24版本的MySQL

初始化docker swarm :docker swarm init 正常会显示当前服务器作为leader,然后打印出来加入此docker swarm的token。我这里执行过了,使用docker node ls 可以看到当前集群的节点列表,当前仅有一个Leader。

创建 network

这里创建一个overlay的网络,用于集群间的相互通信: docker network create -d overlay --attachable sharednet

拉取命令:

docker pull percona/percona-xtradb-cluster:5.7.24


修改镜像名称:docker tag

docker tag percona/percona-xtradb-cluster:5.7.24 pxc:5.7.24


新增了一个镜像,Image ID 同原来的一样,这时可以删除掉原来的镜像了。

创建数据卷
docker volume create v1

docker volume create backup

在另一台机器上执行下面命令,加入docker 集群:

docker swarm join --token SWMTKN-1-15334ml6i4lmmedpc3c65o133pfqc2vycok6x5b8xtsnog497e-5w1h8hrrc0lee1l8uqnp7ds86 192.168.104.61:2377


上面的token值,可以在manager机器上查询,也就是docker swarm 的Leader机器上查: docker swarm join-token worker

执行成功后,可在集群的主节点上查看节点情况:docker node ls

可以看到 MANAGER STATUS 列,有一个为Leader,即为当前集群的主节点。

无需在从节点上创建同名network,可直接使用。

在主节点上创建mysql容器:

docker run --restart=always  
    -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=true  
    --name=node1  
    --net=sharednet  
    -d pxc:5.7.24


这时可以使用Navicat 连接主节点上的mysql数据库了。右键连接名称,打开命令列界面,看下MySQL版本:select version();

在从节点上执行:

docker run --restart=always  
    -p 3306:3306   
    -e MYSQL_ROOT_PASSWORD=abc123456   
    -e CLUSTER_NAME=PXC   
    -e XTRABACKUP_PASSWORD=abc123456   
    -e CLUSTER_JOIN=node1   
    -v v1:/var/lib/mysql   
    -v backup:/data   
    --privileged=true   
    --name=node2   
    --net=sharednet   
    -d pxc:5.7.24


测试Navicat 连接从节点MySQL:

在主节点上创建数据库 test-mysql:

这时,刷新从节点MySQL,即可看到从节点也自动创建了改数据库:

如果刷新从节点,数据库没有显示的话,可以先关闭连接,再重新连接。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4661759.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-06
下一篇2022-11-06

发表评论

登录后才能评论

评论列表(0条)

    保存