docker搭建mysql高可用集群

2023-11-09

docker中搭建mysql高可用集群-percona-xtradb-cluster

*percona-xtradb-cluster是一款很棒的mysql高可用集群解决方案。

  1. 特点是每个节点都能进行读写且都保存全量的数据。也就是说在任何一个节点进行写入操作,都会同步给其它所有节点写入到自己的磁盘。
  2. Mysql pxc中任何一台机器挂了,集群照常运转,因为节点间并不共享磁盘。
    3.推荐percona-xtradb-cluster 3个节点

首先你要先有一个docker(自行安装)

在这里插入图片描述

开始操作:

  1. 拉取perconea-xtradb-cluster镜像,我拉取的是稳定版本(版本自行定夺),记得用docker镜像加速器,要不然拉取镜像慢的怀疑人生。
    [root@docker ~]# docker pull percona/percona-xtradb-cluster:5.7.31

在这里插入图片描述

  1. 查看拉取的镜像
    [root@docker ~]# docker images

在这里插入图片描述

利于后面操作把image名称改的简单点
[root@docker ~]# docker tag 3a0dc027d8ac pxc:5.7.31

在这里插入图片描述

  1. 创建数据卷进行数据持久化
    [root@docker ~]# docker volume create v1

在这里插入图片描述

  1. 创建网络给mysql用,集群要单独在一个网段内
    [root@docker ~]# docker network create --subnet=172.18.0.0/24 mypxc

在这里插入图片描述

  1. 接下来基于pxc这个镜像来启动容器
    [root@docker ~]# docker run -d --name node1 -p 3301:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123.com -e CLUSTER_NAME=PC -e XTRABACKUP_PASSWORD=123.com --privileged --net=mypxc --ip 172.18.0.2 pxc:5.7.31

    #MYSQL_ROOT_PASSWORD:给数据库设置密码默认root用户
    #CLUSTER_NAME:给集群起个名字
    #XTRABACKUP_PASSWORD:集群的密码
    #privileged --net:指定网络

查看下创建的容器
[root@docker ~]# docker ps

在这里插入图片描述

可以看到容器正在运行,接下来创建剩下的2个容器。

  1. 创建剩下的2个节点时要加入集群中。
    [root@docker ~]# docker run -d --name node2 -p 3302:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123.com -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123.com -e CLUSTER_JOIN=node1 --privileged --net=mypxc --ip 172.18.0.3 pxc:5.7.31
    [root@docker ~]# docker run -d --name node3 -p 3303:3306 -v
    v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123.com -e CLUSTER_NAME=PXC
    -e XTRABACKUP_PASSWORD=123.com -e CLUSTER_JOIN=node1 --privileged --net=mypxc --ip 172.18.0.4 pxc:5.7.31

#CLUSTER_JOIN:这个参数就是加入到node1这个集群中,记得要节点名称和映射端口

在这里插入图片描述

7.进行测试,我直接用链接工具进行测试

可以看到3个节点都能连接上
在这里插入图片描述
在node1新建库
在这里插入图片描述
可以看到node1上有了这个库
在这里插入图片描述
node2、node3刷新一下
在这里插入图片描述

可以看到数据同步,关于测试我就不做过多演示了,大家如果没有连接工具,可以进入到node1、2、3容器里,登录到mysql数据库里进行操作,验证。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker搭建mysql高可用集群 的相关文章

随机推荐

  • Python 异常捕获与处理

    视频版教程 Python3零基础7天入门实战视频教程 异常捕获与处理 如果出现程序异常 我们不去捕获和处理 那么程序遇到异常 就直接终止 后续的代码无法继续执行 这将是可怕的事情 Python提供了完善的异常处理机制 可以实现捕获异常 处理
  • html头部代码

    学习html是件比较容易的事情 但单单学html语言肯定是不够用的 所以大多数人并没有拿html作为学习核心 而是将html作为javascript 动态语言或者css学习的必经之路 于是很多人并不关注一些其他的html标签 主流书籍大多对
  • 【JavaSE系列】第八话 —— 继承和它的边角料们

    导航小助手 思维导图 一 引出继承 二 继承的概念 三 继承的语法 四 父类成员访问 4 1 子类中访问父类的成员变量 4 2 子类访问父类的成员方法 五 super 关键字 5 1 super 成员变量 5 2 super 成员方法 5
  • QT学习 -- 12信号连接信号

    视频学习链接 https www bilibili com video BV1g4411H78N p 12 信号可以连接事件 普通函数 可以连接槽函数 也可以连接信号 一 信号触发 连接 信号 举例如下 当用鼠标点击按键 按键发出点击 cl
  • 【Leetcode】560. 和为K的子数组

    题目描述 给你一个整数数组 nums 和一个整数 k 请你统计并返回该数组中和为 k 的连续子数组的个数 题解 暴力解法 双循环 i指针从左往右走 j指针从i往左走 一个个遍历一个个加起来 直到加到等于k 就计数一次 执行用时 1445 m
  • okhttp异常: java.io.IOException: closed okio.RealBufferedSource$1.read

    java io IOException closed at okio RealBufferedSource 1 read RealBufferedSource java 405 at sun nio cs StreamDecoder rea
  • Redis——redis配置与优化

    文章目录 一 关系数据库与非关系型数据库 1 关系型数据库 2 非关系型数据库 二 Redis 简介 1 Redis的应用场景 2 Redis的优点 三 Redis 安装部署 1 安装Redis 2 配置参数 四 Redis
  • 任务管理器详解

    进程 看是否有除系统外多余进程 可能是病毒或没有完全关闭的进程 影响机器性能 进程下显示了所有当前正在运行的进程 包括应用程序 后台服务等 性能下可以看到CPU和内存 页面文件的使用情况 卡机 死机 中毒时 CPU使用率会达到100 CPU
  • mysql 用sqlyog连接1045错误解决办法(数据库在linux)

    1045 多半就是要么你端口号3306没开 要么就是你密码错误 安装网路分析 yum install net tools 防火墙开放3306端口 root localhost firewall cmd zone public add por
  • 学生信息管理系统(登录功能)

    工具eclipse 主要操作登陆 增删查改 编写实体类 public class Student private int id private String sId 学号 private String name private String
  • CTF BugKu平台———(Web篇②)

    源代码 unescape编码 https tool chinaz com Tools Escape aspx PS p1 35 34 61 61 32 p2 然后提交即可 67d709b2b54aa2aa648cf6e87a7114f1 文
  • 操作系统 线程同步实验

    操作系统 线程同步实验 一 实验目标 顺序表循环队列实现的实验目标 掌握使用顺序表和循环队列实现队列的基本操作 如队列的插入 删除 遍历等 同时了解循环队列的内部实现原理和利用循环队列解决实际问题的方法 Linux生产者 消费者问题的多线程
  • MFC自定义消息

    一 背景 消息机制是windows程序的典型运行机制 在MFC中有很多已经封装好了的消息 但是在有些特殊情况下我们需要自定义一些消息去完成一些我们所需要的功能 这时候MFC的向导不能帮助我们做到这一点 对此 我们可以通过添加相应的代码去完成
  • C++ 深浅拷贝、写时拷贝

    前言 本章以string类为例介绍浅拷贝与深拷贝 引用计数写时拷贝作为了解内容 string类的模拟实现参考C string类的模拟实现 文章目录 1 浅拷贝 2 深拷贝 3 引用计数 写时拷贝 1 浅拷贝 浅拷贝 对于有申请空间的对象的类
  • Java集合类的总结与比较

    Collection List LinkedList ArrayList Vector Stack Set Map Hashtable HashMap WeakHashMap Collection接口 Collection是最基本的集合接口
  • react自定义useState hook获取更新后值

    您好 如果喜欢我的文章 可以关注我的公众号 量子前端 将不定期关注推送前端好文 在业务中有比较多的场景需要在setState中获取更新后的值从而进行下一步的业务操作 在Class组件中可以通过 this setState name 123
  • 全网最详细中英文ChatGPT-GPT-4示例文档-官网推荐的48种最佳应用场景——从0到1快速入门自然语言指令创建支付API代码(附python/node.js/curl命令源代码,小白也能学)

    目录 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node js接口请求示例 curl命令示例 json格式示例
  • 分布式系统领域经典论文翻译集

    分布式领域论文译序 sql nosql年代记 SMAQ 海量数据的存储计算和查询 一 google论文系列 1 google系列论文译序 2 The anatomy of a large scale hypertextual Web sea
  • Azure云服务基础其五

    文章目录 Azure云服务基础其五 什么是Azure Kubernetes 服务 创建 Kubernetes集群 部署应用程序 测试应用程序 Azure云服务基础其五 什么是Azure Kubernetes 服务 官网的解释是Azure K
  • docker搭建mysql高可用集群

    docker中搭建mysql高可用集群 percona xtradb cluster percona xtradb cluster是一款很棒的mysql高可用集群解决方案 特点是每个节点都能进行读写且都保存全量的数据 也就是说在任何一个节点