【详细学习Docker部署搭建高可用的MySQL集群环境】
创始人
2024-03-31 13:22:10
0

一、MySQL高可用集群搭建

​ MySQL集群搭建在实际项目中是非常必须的,接下来我们来学习通过PXC【Percona XtraDB Cluster】来实现强一致性数据库集群搭建。

1.1 MySQL集群搭建

1.1.1 中央仓库查找相关镜像
docker search mysql

在这里插入图片描述

1.1.2 拉取镜像并查看镜像
docker pull percona/percona-xtradb-cluster:5.7.21docker iamges

在这里插入图片描述

1.1.3 复制percona/percona-xtradb-cluster:5.7.21镜像并重命名镜像名字
docker tag percona/percona-xtradb-cluster:5.7.21 pxc

在这里插入图片描述

1.1.4 删除原来的镜像
docker rmi percona/percona-xtradb-cluster:5.7.21

在这里插入图片描述

1.1.5 创建单独的网段,给MySQL数据库集群使用
# 创建MySQL集群的指定网段
docker network create --subnet=172.19.0.0/24 mysql-network
# 查看网卡的信息情况
docker network inpsect mysql-network 
# 删除网段
docker network rm mysql-network 

在这里插入图片描述

1.1.6 容器持久化操作

方式一:提前创建指定volume数据卷,docker run命令运行的时候直接使用创建好的volume

# 创建 volume
docker volume create --name v1
docker volume create --name v2 
docker volume create --name v3 
# 删除volume
docker volume rm v1 
# 查看详情
docker volume inspect v1 
docker volume inspect v2 
docker volume inspect v3

在这里插入图片描述
在这里插入图片描述

方式二:在docker run命令后面追加-v参数,启动的时候将提前创建好的目录挂载到容器的指定目录结构当中。这个地方我就不就行演示了,因为我们之前使用这个方式部署了很多的案例。具体可以参考以下地址:【Docker学习专栏,都帮你整理好了,选择你需要的呦,点我即可!】

1.1.7 搭建pxc集群

运行3个PXC容器命令参数说明:

参数参数说明
v1提前创建的数据卷,挂载到容器node1节点的/var/lib/mysql目录中
v2提前创建的数据卷,挂载到容器node2节点的/var/lib/mysql目录中
v3提前创建的数据卷,挂载到容器node3节点的/var/lib/mysql目录中
MYSQL_ROOT_PASSWORD=root设置数据库登录的密码
CLUSTER_NAME PXC集群名字
XTRABACKUP_PASSWORD数据库同步需要用到的密码
–net=mysql-network指定的网卡
–ip 172.20.0.x指定的ip地址
CLUSTER_JOIN=node1从节点加入到集群环境中
–privileged修改表的权限

创建第一个节点

docker run -d -p 3301:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=PXC -e EXTRABACKUP_PASSWROD=root --privileged --name=node1 --net=mysql-network  --ip 172.19.0.6 pxc

创建第二个节点: 注意 -e CLUSTER_JOIN=node1

docker run -d -p 3302:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=PXC -e EXTRABACKUP_PASSWROD=root -e CLUSTER_JOIN=node1 --privileged --name=node2 --net=mysql-network  --ip 172.19.0.7 pxc

创建第三个节点: 注意 -e CLUSTER_JOIN=node1

docker run -d -p 3303:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=PXC -e EXTRABACKUP_PASSWROD=root -e CLUSTER_JOIN=node1 --privileged --name=node3 --net=mysql-network  --ip 172.19.0.8 pxc

结果展示:
在这里插入图片描述

1.1.8 测试集群之间信息是否同步

进入node1容器,连接数据库
在这里插入图片描述
连接node3容器数据库
在这里插入图片描述

连接node3容器数据库
在这里插入图片描述
在node1中创建一个test数据库
在这里插入图片描述
在node2和node3中查看了主节点中node1中的数据库
在这里插入图片描述
在这里插入图片描述
还有更多的命令进行测试,同理,感兴趣的同学可以自行尝试。

好了,到这里【详细学习Docker部署搭建MySQL集群环境】结束了,更多内容持续创作中。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...