小言_互联网的博客

【详细学习Docker部署搭建高可用的MySQL集群环境】

289人阅读  评论(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.21

docker 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集群环境】结束了,更多内容持续创作中。


转载:https://blog.csdn.net/Coder_ljw/article/details/127532302
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场