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高可用集群 的相关文章

  • 显示表 FULLTEXT 索引列

    我希望运行一个查询 该查询将返回表中全文索引的列列表 该表采用 MyISAM 格式 我将使用 php 来构建查询 理想情况下 我会运行查询 它会返回信息 以便我可以构造一个以逗号分隔的列字符串 例如 名 姓 电子邮箱 这在 MySQL 中可
  • 使 pdo::query 静态

    当我运行下面的代码时出现此错误 我通常使用 msql 函数 但我尝试使用 PDO 代替 怎么了 致命错误 第 14 行无法静态调用非静态方法 PDO query
  • 无法启动 MySQL 服务器 - 控制进程退出并出现错误代码

    我的 mysql 服务器停止后无法启动 命令使用 sudo etc init d mysql restart Error 重新启动 mysql 通过 systemctl mysql serviceJob for mysql service
  • mysql-如何向列申请补助?

    用户名 撤销对数据库的选择 Person I set GRANT SELECT id ON database Person TO username localhost 不是工作 gt SELECT secret FROM Person Go
  • 当sql连接中存在两个同名列时,如何从一个表列中获取值

    当我连接两个具有相同名称列的表时 我目前面临着尝试获取值的问题 例如 table1 date和table2 date 每个表中的日期不同 我将如何获取 日期 本例中的表1 我目前正在跑步 while row mysqliquery gt f
  • 截断 Mysql 表 Cron 作业?

    我在如何使用 cron 作业截断 Mysql 表时遇到了一些麻烦 无论我尝试什么 我似乎都无法让数据库清除表格 感谢您的帮助 mysql uderp example pexample hlocalhost Dexample e TRUNCA
  • 如何在Mysql中仅将不同的值从一个表复制到另一个表?

    我有一个大约 2 5GB 的 MySql 数据库 表 A 具有以下列 anoid query date item rank url 我刚刚创建了另一个仅包含列的表 b query and date 我想在查询列中插入所有不同的记录 及其各自
  • 在没有 noexec 选项的情况下将卷挂载到 docker 容器中

    据我所知 docker 也包括 docker compose 使用 noexec 选项将卷安装到容器中 因此我无法从安装的目录中启动任何程序 services app build context dockerfile Dockerfile
  • Docker Compose 无法连接到数据库

    我使用 Nestjs 作为后端 并使用 typeorm 作为 ORM 我尝试在 docker compose 文件中定义我的数据库和应用程序 如果我将数据库作为容器运行 并从本地计算机运行应用程序 那么它运行良好 我的程序连接并创建表等 但
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • 在centos上设置jenkins:ssh密钥和git的问题

    经历了很多问题 但似乎没有什么能解决我的问题 或者更准确地说 我不确定我是否正确地完成了整个事情 所以这里是 已安装centos 6 3操作系统 然后我按照以下指南安装詹金斯 https wiki jenkins ci org displa
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教
  • MySQL连接字符集问题

    我在 Mac 上使用带有 MySQL 的 velosurf 没有任何编码问题 但是当我切换到 Linux 计算机时 从 velosurf 获得的值未正确编码 我发现这可能是默认连接字符集的问题 在 Mac 上我得到 mysql gt sho
  • 即使使用“autoReconnect=true”,MySql JDBC 也会超时[重复]

    这个问题在这里已经有答案了 有时 我的 Java Tomcat6 Debian Squeeze 应用程序无法与 MySql 服务器通信 Tomcat 应用程序位于前端服务器上 而 MySql 位于单独的 仅限 MySql 的机器上 一个典型
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • 如何在“Docker for Windows”中启用docker远程API

    I have 适用于 Windows 的 Docker 桌面1 12 1 stable 内部版本 7135 安装在我的 Windows 10 计算机上 我想使用以下方式访问 docker远程API https docs docker com
  • docker 中的 php Curl 冲突 CURLOPT_FILE 和 CURLOPT_RETURNTRANSFER

    当我使用curl时CURLOPT FILE and CURLOPT RETURNTRANSFER选项 文件为空 没有任何curl错误 fp fopen saveTo w ch curl init fileUrl curl setopt ch
  • 在同一个 nginx 服务器块上公开多个 api uri

    Goal 我的目标是在同一个 nginx 服务器上设置多个后端 api 容器 http localhost 80 api account gt 调用 http account service 9000 http localhost 80 a
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 映射 mysql 中同一个表的多个值

    您好 我必须使用另一个表中的值 id 获取文本值 表 1 包含值 ID 表 2 包含名称和值 ID 表 1 SEVERITY OCCURENCE DETECTABILITY 2 3 4 表 2 id name value 1 Very Hi

随机推荐

  • 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高可用集群解决方案 特点是每个节点都能进行读写且都保存全量的数据 也就是说在任何一个节点