当前位置:网站首页>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
以上文章如果对您有所帮助,欢迎转载点赞关注,谢谢
边栏推荐
- 电脑知识:台式电脑应该选择品牌和组装,值得收藏
- 微软电脑管家2.0公测版体验
- QT 出现多冲定义问题
- MySQL(4)
- nacos 返回 403 unknown user 太他么坑了 源码解析
- Database: Organize Four Practical SQL Server Scripting Functions
- Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
- 目标检测中的先验框(Anchor)
- 花了近70美元入手的学生版MATLAB体验到底如何?
- IE8 打开速度慢的解决办法
猜你喜欢

花了近70美元入手的学生版MATLAB体验到底如何?

ThreadLocal内存泄漏问题讲解

软件:给大家推荐一款国产非常好用的效率软件uTools

狗都能看懂的变化检测网络Siam-NestedUNet讲解——解决工业检测的痛点

HbuilderX 启动微信小程序 无法打开项目

用matlab打造的摩斯电码加解码器音频版,支持包括中文在内的任意字符

Based on the EEMD + + MLR GRU helped time series prediction

目标检测中的IoU、GIoU、DIoU与CIoU

matlab封闭曲线拟合 (针对一些列离散点)

误差指标分析计算之matlab实现【开源1.0.0版】
随机推荐
MATLAB 的ICEEMDAN分解代码实现
桌面右键的NVIDIA去除与恢复
生成一个包含日期的随机编码
【音视频开发系列】QT 采集麦克风PCM并播放
CMDB 阿里云部分实现
JVM调优实践
数组的一些方法
用matlab打造的摩斯电码加解码器音频版,支持包括中文在内的任意字符
布隆过滤器
Faster - RCNN principle and repetition code
53个全球免费学术资源数据库整理,查资料写论文必备【开学必备】
Operating System Random
硬件知识:RTMP和RTSP传统流媒体协议介绍
JVM 快速检测死锁
YOLOv3详解:从零开始搭建YOLOv3网络
golang rtsp拉流测试
Jackson 使用样例
sql常用函数
GRNN、RBF、PNN、KELM之间究竟有什么联系?
Interpretation of EfficientNet: Composite scaling method of neural network (based on tf-Kersa reproduction code)