iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >docker实现MySQL主从双备的示例代码
  • 260
分享到

docker实现MySQL主从双备的示例代码

2024-04-02 19:04:59 260人浏览 薄情痞子
摘要

目录环境配置Mysql基础知识搭建主mysql搭建从Mysql配置主从复制拓展环境配置 本地操作系统:Win10虚拟机的操作系统:Centos Stream 8已安装Docker,可

环境配置

本地操作系统:Win10
虚拟机的操作系统:Centos Stream 8
已安装Docker,可以参考详细安装教程

MySQL基础知识

搭建MySQL主从双备是在docker情况下自定义MySQL的配置文件,在上一节我们讲述了如何挂载docker的MySQL数据文件,其中run指令参数-v /home/mysql/conf:/etc/mysql/conf.d是挂载MySQL的配置文件。

当我们通过指令进入docker内部查看MySQL配置文件的时候,发现/etc/mysql/conf.d只是一个文件夹,同目录情况下分别有配置文件my.cnf和my.cnf.fallback,如图所示

在这里插入图片描述


在MySQL中,/etc/mysql/my.cnf 是默认配置文件,/etc/conf.d/ 下的文件为自定义配置文件,比如 /etc/mysql/conf.d/my.cnf 文件。
由于docker的/etc/mysql/conf.d文件挂载到本地系统的/home/mysql/conf,因此我们只需在本地系统的/home/mysql/conf写入配置文件即可修改docker的MySQL配置。

搭建主MySQL

由于docker的mysql默认使用/etc/mysql/my.cnf的配置文件,如果要自定义配置文件,需要进入docker的MySQL获取默认配置文件/etc/mysql/my.cnf的配置信息,然后在本地系统的/home/mysql/conf编写配置文件。
假设主MySQL的容器名称为mysql10 ,docker启动指令如下:

docker run --name mysql10 -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWord=1234 -d mysql

进入docker获取MySQL默认配置信息方法如下:

# 进入容器,mysql10 是容器名称
docker exec -it mysql10 bash
# 查看MySQL默认配置文件
cat /etc/mysql/my.cnf

上述指令执行结果如图所示

在这里插入图片描述

将上图的配置信息写入本地系统的自定义配置文件/home/mysql/conf/mysql.cnf,并添加属性log-bin和server-id

[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
Socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
secure-file-priv= NULL
# 开启二进制日志,属性值mysql-bin 是日志的基本名或前缀名
log-bin=mysql-bin
# server-id可随便设置,但必须保证是唯一,数值为1到2的32次方–1之间的一个正整数
server-id=2

配置文件完成后,使用指令docker restart mysql10重启docker

搭建从MySQL

假设主MySQL的容器名称为mysql11,docker启动指令如下:

docker run --name mysql11 -p 3307:3306 -v /home/mysql11/conf:/etc/mysql/conf.d -v /home/mysql11/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 -d mysql

在本地系统的/home/mysql11/conf编写自定义配置文件mysql.cnf,如下所示:

[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
secure-file-priv= NULL
# 开启二进制日志,属性值mysql-bin 是日志的基本名或前缀名
log-bin=mysql-bin
# server-id可随便设置,但必须保证是唯一,数值为1到2的32次方–1之间的一个正整数
server-id=3

配置文件完成后,使用指令docker restart mysql11重启docker

配置主从复制

现在我们已搭建两个docker容器,每个容器分别运行端口3306和3307的MySQL,并且对每个MySQL设置了自定义配置文件。下一步在从MySQL设置主MySQL的监听功能,我们使用Navicat Premium 15连接从MySQL,然后执行下面SQL语句,这样就能实现主从复制,代码如下:

-- 监听主MySQL
CHANGE MASTER TO 
-- 主MySQL的IP、端口、用户名和密码
MASTER_HOST = '192.168.3.250',
MASTER_PORT = 3306,
MASTER_USER = 'root',
MASTER_PASSWORD = '1234';
-- 开启监听功能
START SLAVE;
-- 查询监听状态
SHOW SLAVE STATUS;

执行上述SQL语句之后,在查询结果找到Slave_io_Running和Slave_SQL_Running,如果两个字段的值皆为Yes则说明配置成功,如图所示:

在这里插入图片描述

如果配置失败,则可以通过docker指令查看日志记录,指令如下:

# mysql11是从MySQL的容器名称
docker logs mysql11 -f

大部分配置失败都是主MySQL的IP、端口、用户名和密码错误导致的,具体信息还得分析docker的日志记录。

拓展

至此,我们已完成2台MySQL服务的主从双备功能(从复制主),功能测试可以在Navicat Premium 15自行测试。
此外还可以实现主从互备(从复制主,主复制从)、搭建多台MySQL的主从关系等功能,这些功能主要在配置文件my.cnf添加相应配置属性和执行对应SQL语句。

到此这篇关于docker实现MySQL主从双备的文章就介绍到这了,更多相关docker实现MySQL主从双备内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: docker实现MySQL主从双备的示例代码

本文链接: https://www.lsjlt.com/news/163962.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • docker实现MySQL主从双备的示例代码
    目录环境配置MySQL基础知识搭建主MySQL搭建从MySQL配置主从复制拓展环境配置 本地操作系统:Win10虚拟机的操作系统:CentOS Stream 8已安装docker,可...
    99+
    2024-04-02
  • Docker-Compose实现Mysql主从的示例代码
    目录1. 简介2. 部署流程3. master节点3.1 安装mysql4. slave节点5. 验证6. 可能遇到的问题7. 同步部分数据库实例或表1. 简介 通过使用docker...
    99+
    2024-04-02
  • docker实现mysql主从复制的示例代码
    目录一、概述1、原理2、实现三、创建Slave实例四、主从配置总结:五、参考一、概述 1、原理 master服务器将数据的改变记录二进制binlog日志,当master上的...
    99+
    2024-04-02
  • docker compose启动mysql双机热备互为主从怎么实现
    本篇内容主要讲解“docker compose启动mysql双机热备互为主从怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker compose启动mysql双机热备互为主从怎么实...
    99+
    2023-07-02
  • Redis整合MySQL主从集群的示例代码
    目录1、用Docker搭建MySQL主从集群1.1 拉取mysql镜像1.2 创建配置文件夹1.3 编写主服务器的配置文件信息1.4 启动mysql主服务器的容器1.5 观察主服务器...
    99+
    2024-04-02
  • Java实现双链表的示例代码
    目录一、双向链表是什么二、具体方法实现定义结点下标访问异常获取链表长度打印链表清空链表头插法尾插法指定位置插入查找元素删除第一次出现的关键字删除所有值为key的节点三、完整代码一、双...
    99+
    2024-04-02
  • keepalived Mysql双主热备配置的示例分析
    这篇文章主要介绍keepalived Mysql双主热备配置的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 基于keepalived双主热备:...
    99+
    2024-04-02
  • 30行代码实现React双向绑定hook的示例代码
    目录使用Proxy代理数据使用useRef创建同一份数据引用添加更新handler去除多次Proxy添加缓存完善代码总结Sandbox 示例Vue和MobX中的数据可响应给我们留下了...
    99+
    2024-04-02
  • 基于Docker实现Redis主从+哨兵搭建的示例实践
    目录1.拉取镜像2. 编写主 从配置文件2.1 创建/home/redis/redis_conf目录:2.2 编写主配置文件2.3 编写从配置文件2.4  编写从配置文件3...
    99+
    2024-04-02
  • Python实现双因素验证2FA的示例代码
    目录介绍1.安装2.配对3.验证4.那是不是手机上还有开发个 app知识点补充介绍 传统的用户名密码方式,容易泄漏,并不安全。 你说,加上短信验证码不就安全了,其实短信验证码也是不安...
    99+
    2024-04-02
  • Python实现双向RNN与堆叠的双向RNN的示例代码
    目录1、双向RNN2、堆叠的双向RNN3、双向LSTM实现MNIST数据集分类1、双向RNN 双向RNN(Bidirectional RNN)的结构如下图所示。 双向的 RNN...
    99+
    2024-04-02
  • Mysql+Keepalived实现双主热备方式
    目录一、mysql安装、配置和安全启动二、 两台Mysql配置双主三、安装Keepalived四、配置Keepalived我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的...
    99+
    2024-04-02
  • websocket结合node.js实现双向通信的示例代码
    首先我们需要了解,什么是websocket,它的作用和优势是什么,为什么要用它。 什么是websocket websocket是基于TCP的一种双向通信协议。在此之前,一直是采用轮询...
    99+
    2023-02-10
    websocket node.js双向通信 node.js双向通信
  • 基于C++实现掷双骰游戏的示例代码
    在最流行的博彩游戏中有一种名为“掷双骰”(craps)的骰子游戏,这种游戏在世界各地的娱乐场所和大街小巷非常受欢迎。游戏的规则很简单: 玩家掷两个骰子。每个骰...
    99+
    2024-04-02
  • tk.mybatis实现uuid主键生成的示例代码
    引入依赖 <dependency> <groupId>tk.mybatis</groupId> ...
    99+
    2024-04-02
  • go单例实现双重检测是否安全的示例代码
    目录现状改进双重检验示例:是否线程安全关于sync.Once关于atomic和metex结论今天看到项目中的kafka客户端包装结构体的获取是单例模式<br>单例的实现是...
    99+
    2024-04-02
  • Mysql实现水平分库的示例代码
    目录前言:讲解:第一种方式的水平分库:mysql水平分库数据查询合并MySQL水平分库插入数据前言: 平时开发中,可能会遇见数据量越来越大的情况,一般数据量过千万级别,就必须考虑分库分表的情况了,来减少io 服务器压力,...
    99+
    2023-06-08
    Mysql 水平分库
  • java实现双层圣诞树加修饰代码示例
    A:有咋样的实力可以写出这个代码? B:会for循环就好 A:只要会for就好? B:还有一点点逻辑能力和算法 package 海绵hong; import java.util....
    99+
    2024-04-02
  • JavaScript双向链表实现LRU缓存算法的示例代码
    目录目标什么是LRU简介硬件支持寄存器栈代码实现思路链表节点数据结构链表数据结构LRUCache数据结构完整代码测试目标 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束...
    99+
    2024-04-02
  • C++实现双目立体匹配Census算法的示例代码
    上一篇介绍了双目立体匹配SAD算法,这一篇介绍Census算法。 Census原理: 在视图中选取任一点,以该点为中心划出一个例如3 × 3 的矩形,矩形中除中心点之外的...
    99+
    2022-11-13
    C++ 双目立体匹配 C++ Census算法 C++ 双目立体匹配 Census
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作