当前位置:网站首页>Centos通过Docker搭建MySQL的PXC集群
Centos通过Docker搭建MySQL的PXC集群
2022-08-04 05:36:00 【somnus_小凯】
PXC集群的简介
Percona XtraDB Cluster(下文简称PXC集群)提供了MySQL高可用的一种实现方法。PXC集群以节点组成(推荐至少3节点,便于故障恢复,后面会讨论两节点的情况),每个节点都是基于常规的 MySQL/Percona Server,意味着你可以从集群中分离出某节点单独使用。集群中每个节点都包含完整的数据。
在开篇之前我们先来了解一下为什么需要MySQL集群?PXC集群方案特点?PXC集群方案与Replication区别?让我们带着疑问开始我们的教程。
为什么需要MySQL集群?
相比于传统数据库单机单节点,容灾性能差,例如数据库挂掉,整个网站就会挂掉。单机单节点的数据库性能差,抗并发能力有限。
PXC集群方案特点
PXC方案保证数据的强一致性,当程序向PXC的一个节点写入,先同步其它节点,如果其它节点同步失败会立即回滚返回给程序插入数据失败,只有所有节点都同步成功才返回给程序插入数据成功,所以PXC可以保证各数据库节点数据的强一致性。
PXC集群方案与Replication方案的对比
这里的图不是重点,画图画的不好,大家明白这个就可以,接下来就开始安装教程。Docker的安装不在这篇博客介绍,如果有不会安装Docker的可以看下我的其他博文里面有详细的介绍安装教程。
DockerHub网站
环境配置
- 系统:Centos7.0
- Docker版本:Docker version 19.03.8, build afacb8b
- PXC镜像:percona/percona-xtradb-cluster
安装部署
默认安装的Docker下载镜像很慢,建议大家换成国内的镜像下载
1,配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://替换成自己的.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2,镜像拉取
docker pull percona/percona-xtradb-cluster
3,查看本地的镜像
docker images
4,创建docker内部网络
docker network create --subnet=172.18.0.0/24 net1
5,查看创建的docker内部网络
docker network inspect net1
6,创建docker卷
docker volume create --name v1
docker volume create --name v2
docker volume create --name v3
docker volume create --name v4
docker volume create --name v5
6,查看下我们创建docker卷
docker inspect v1
docker inspect v2
docker inspect v3
docker inspect v4
docker inspect v5
注意:一定要先创建docker卷再去创建容器,要不然会报权限异常错误,不能创建容器。
7,创建容器
docker run -d -p 3306:3306 \
-v v1:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=Somnus123 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=Somnus123 \
--privileged --name=node1 --net=net1 --ip 172.18.0.2 \
percona/percona-xtradb-cluster
接下来把我们剩下的四个容器创建出来
docker run -d -p 3307:3306 \
-v v2:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=Somnus123 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=Somnus123 \
-e CLUSTER_JOIN=node1 \
--privileged --name=node2 --net=net1 --ip 172.18.0.3 \
percona/percona-xtradb-cluster
docker run -d -p 3308:3306 \
-v v3:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=Somnus123 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=Somnus123 \
-e CLUSTER_JOIN=node1 \
--privileged --name=node3 --net=net1 --ip 172.18.0.4 \
percona/percona-xtradb-cluster
docker run -d -p 3309:3306 \
-v v4:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=Somnus123 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=Somnus123 \
-e CLUSTER_JOIN=node1 \
--privileged --name=node4 --net=net1 --ip 172.18.0.5 \
percona/percona-xtradb-cluster
docker run -d -p 3310:3306 \
-v v5:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=Somnus123 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=Somnus123 \
-e CLUSTER_JOIN=node1 \
--privileged --name=node5 --net=net1 --ip 172.18.0.6 \
percona/percona-xtradb-cluster
至此:我们的mysql 集群就已经搭建完成了,我们通过Navicat 客户端工具链接查看我们的mysql
以上文章如果对您有所帮助,欢迎转载点赞关注,谢谢
边栏推荐
猜你喜欢
狗都能看懂的CenterNet讲解及代码复现
窥探晶体世界的奥秘 —— 230种空间群晶体结构模型全在这里
Database: Organize Four Practical SQL Server Scripting Functions
指定区域内随机填充圆之matlab实现
2DCNN, 1DCNN, BP, SVM fault diagnosis and result visualization of matlab
RuntimeError: You called this URL via POST, but the URL doesn‘t end in a slash and you have APPEND_S
什么是多态。
Gramm Angle field GAF time-series data into the image and applied to the fault diagnosis
软件:给大家推荐一款国产非常好用的效率软件uTools
天鹰优化的半监督拉普拉斯深度核极限学习机用于分类
随机推荐
QT 显示窗口到最前面(非置顶)
第九篇 ApplicationContext初始化
解决腾讯云DescribeInstances api查询20条记录以上的问题
升级到 MediaPlayer 11 时跳过验证副本的方法
用手机也能轻松玩转MATLAB编程
对产品设计,架构设计的一点思考
类图规范总结
狗都能看懂的变化检测网络Siam-NestedUNet讲解——解决工业检测的痛点
网络端口大全
Based on the EEMD + + MLR GRU helped time series prediction
无监督特征对齐的迁移学习理论框架
SENet detailed explanation and Keras reproduction code
如何用matlab做高精度计算?【第一辑】
如何用matlab做高精度计算?【第二辑】
av_read_frame 阻塞,基于回调的解决办法
golang 的库引用方法
set集合
缓动动画,有关窗口的一些常见操作,BOM操作
秒杀系统设计
unicloud 腾讯云 上传文件 Have no access right to the storage uniapp