基于docker的Mysql版本升级

引言

随着版本的迭代和漏洞的提出,Mysql作为一款软件避免不了打补丁的命运。

由于docker版本的升级教程较少,以下基于docker版本的MySQL升级说明。

以下操作均在本地虚拟机中操作验证。

使用runlike查看启动脚本

镜像与镜像的差距就在启动命令的区别。启动命令可以根据 docker inspect 容器名 推导出的参数推到出来一部分,也只是一部分。

python工具runlike就是基于此远离开发的,以下举例说明使用方法,

## 对于历史镜像使用runlike看启动命令,基于python
pip3 install runlike
## 查看历史镜像,以kibana为例说明runlike的使用
docker ps --all
runlike -p kibana
docker run --name=kibana \--hostname=45b31f642a7d \--user=kibana \--volume=/usr/local/elk7.14.2/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \--volume=/usr/local/elk7.14.2/kibana/data:/usr/share/kibana/data \--volume=/usr/local/elk7.14.2/kibana/plugins:/usr/share/kibana/plugins \--network=elastic \--workdir=/usr/share/kibana \-p 5601:5601 \--restart=always \--log-opt max-size=100m \--log-opt max-file=2 \--runtime=runc \--detach=true \-t \kibana:7.14.2 \/usr/local/bin/kibana-docker

安装低版本的MySQL

# 拉取镜像
docker pull mysql:8.0.27
## 使用runlike查看MySQL的启动命令
runlike -p mysql-yulin
docker run --name=mysql-yulin \--env=MYSQL_ROOT_PASSWORD=123456 \--volume=/home/centos/yulin/mysql/data:/var/lib/mysql \--volume=/home/centos/yulin/mysql/conf:/etc/mysql/conf.d \--privileged \-p 20020:3306 \--expose=33060 \--restart=always \--runtime=runc \--detach=true \mysql:8.0.27 \--character-set-server=utf8mb4
## 通过volume创建对应的目录
mkdir -p /home/centos/yulin/mysql/data
mkdir -p /home/centos/yulin/mysql/conf
## 检查网络&创建网络
sudo docker inspect wvp20_default
# 网络信息
[{"Name": "wvp20_default","Created": "2023-10-23T09:12:47.774395505+08:00","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": null,"Config": [{"Subnet": "172.27.0.0/16","Gateway": "172.27.0.1"}]},"Internal": false,"Attachable": true,"Ingress": false,"ConfigFrom": {"Network": ""},"ConfigOnly": false,}
] 
# 创建网络,此处镜像没有使用新建网络,仅做演示
docker network create -d bridge wvp20_default
## 创建mysql配置
vi /home/centos/yulin/mysql/conf/mysql.cnf
## 启动容器
docker run --name=mysql-yulin \--env=MYSQL_ROOT_PASSWORD=123456 \--volume=/home/centos/yulin/mysql/data:/var/lib/mysql \--volume=/home/centos/yulin/mysql/conf:/etc/mysql/conf.d \--privileged \-p 20020:3306 \--expose=33060 \--restart=always \--runtime=runc \--detach=true \mysql:8.0.27 \--character-set-server=utf8mb4
## 查看运行状况
docker ps

升级低版本的MySQL

# 拉取镜像
docker pull mysql:8.0.34
## 停止之前的容器
docker stop mysql-yulin
## 启动容器
docker run --name=mysql-yulin2 \--env=MYSQL_ROOT_PASSWORD=123456 \--volume=/home/centos/yulin/mysql/data:/var/lib/mysql \--volume=/home/centos/yulin/mysql/conf:/etc/mysql/conf.d \--privileged \-p 20020:3306 \--expose=33060 \--restart=always \--runtime=runc \--detach=true \mysql:8.0.34 \--character-set-server=utf8mb4
## 查看运行状况
docker ps

说明

以上MySQL镜像基于8.0.27升级到8.0.34,是Orcale官方镜像。不同镜像版本可能升级过程不一致。

请在虚拟机中操作验证,禁止线上生产主机操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/122836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

假如我有一台服务器,我会让它提供三种服务

一、提供照片上传、存储和下载服务 随着移动互联网时代的持续快速发展,PC互联网日益势微,各大互联网门户网站的博客、空间也跟着凋零, 作为博客、空间的标配功能的相册也随之被关闭。 2019年3月6日网易相册发布停运公告并于当年5月8日正式停…

基于RK3568高性价比全国产EMS储能解决方案(二)设计方案

目录 版 本 修 订 记 录 1. 产品介绍 1.1. 什么是XM3568-EP 1.2. 产品特点 1.3. 外壳尺寸 1.4. 外壳外观 1.5. 规格参数 2. 设备使用介绍 2.1. 下载需要使用到的驱动和调试工具 2.2. 启动网关 2.3. DEBUG串口的使用方法 2.4. LED指示灯说明 3. Linux系…

0029Java程序设计-家政服务平台管理系统

文章目录 摘要目录系统设计开发环境 摘要 本文首先研究并介绍国内外目前的背景和现状,在此基础上给出论文的主要研究内容,其次,对家政服务平台管理系统的需求进行了分析。再次,对家政服务平台管理系统进行了总体设计,…

【java学习—九】模板方法(TemplateMethod)设计模式(4)

文章目录 1. 在java中什么是模板2. 模板方法设计解决了什么问题?3. 代码化理解 1. 在java中什么是模板 抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留…

【自动驾驶】Free space与Ray casting

文章目录 1 Free space是什么2 Ray casting是什么3 它俩啥关系4 TODO 1 Free space是什么 在自动驾驶领域,free space即可行驶区域,在结构化道路的十字路口/非结构化道路都有很大作用。 2 Ray casting是什么 ray casting是计算机视觉领域,…

数据结构实验3

1、建立顺序循环队列,并在顺序循环队列上实现入队、出队基本操作。 (1)根据输入的队列长度n和各元素值建立一个循环顺序表表示的队列(循环队列),并输出队列中各元素值。 (2)将数据…

Jest和Mocha对比:两者之间有哪些区别?

什么是单元测试? 所谓单元测试,是对软件中单个功能组件进行测试的一种软件测试方式,其目的是确保代码中的每一个基本单元都能正常运行。因此,开发人员在应用程序开发的整个过程(即代码编写过程)中都需要进行…

单例模式及其使用场景

单例模式(Singleton):指在一个系统中某个类只存在一个实例,类中自行实例化,实例向该系统提供统一的访问接口。 单例模式有两种表现形式,饿汉式:类加载时,就进行实例化;懒…

【目标检测】Visdrone数据集和CARPK数据集预处理

之前的博文【目标检测】YOLOv5跑通VisDrone数据集对Visdrone数据集简介过,这里不作复述,本文主要对Visdrone数据集和CARPK数据集进行目标提取和过滤。 需求描述 本文需要将Visdrone数据集中有关车和人的数据集进行提取和合并,车标记为类别0&…

在 Windows 用 Chrome System Settings 设置代理

在 Windows 用 Chrome System Settings 设置代理 贴心提示:在设置代理之前,请确保您已经安装了 浏览器。 🔧 设置代理的详细步骤如下: 打开 浏览器,输入 //settings/system 并回车。 在「系统和网络设置」页面中&am…

vue源码分析(四)——vue 挂载($mount)的详细过程

文章目录 前言一、使用RuntimeCompiler解析$mount的原因二、$mount 解析的详细过程1.解析挂载的#app执行了vm.$mount2. 通过$mount方法执行以下文件的mount方法3. 执行util工具文件夹中的query方法4. 执行query方法后返回$mount方法判断el是否是body5. 判断!options.render&…

Android原生项目集成uniMPSDK(Uniapp)遇到的报错总结

uni小程s序SDK 集成到Android原生项目:老项目中用到的库较多,会出现几种冲突问题,总结如下: 报错1: Execution failed for task :app:processDebugManifest. > Manifest merger failed with multiple errors, see logs Andro…

初识HTML超文本标记语言

文章目录 前端简介引入前端三剑客什么是HTML?超文本传输协议前戏HTTP超文本传输协议1.什么是HTTP协议2.四大特性3.数据格式4.响应状态码 基于HTTP协议搭建HTMLHTML简介 前端简介 引入 前端:与用户直接打交道的操作界面都可以称之为前端(那些炫酷的页面)…

【每日一题】补档 CF487B. Strip | 数据结构杂烩 -> 单调队列 | 困难

题目内容 原题链接 给定一个长度为 n n n 的数组,将这个数组进行拆分成若干个连续子数组, 使得每个子数组的最大值减去最小值小于等于 s s s , 且每个子数组的长度大于等于 l e n len len 。 问最少可以拆分成多少个连续子数组&#xff0…

计算机视觉注意力机制小盘一波 (学习笔记)

将注意力的阶段大改分成了4个阶段 1.将深度神经网络与注意力机制相结合,代表性方法为RAM ⒉.明确预测判别性输入特征,代表性方法为STN 3.隐性且自适应地预测潜在的关键特征,代表方法为SENet 4.自注意力机制 通道注意力 在深度神经网络中…

TypeScript - 枚举 - 数字枚举

什么是枚举 枚举就是有固定的元素的一个对象。 对象的元素可以直接列举出来。 什么是数字枚举 数字枚举,就是我们通俗意义上的枚举类型。 定义的元素是与数字一一对应的。 特点 默认从0开始,步长为1 递增 可以指定值,后面的以步长为1&#xf…

Android问题笔记四十一:JNI NewStringUTF错误的几种解决方案

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…

【游戏开发】【心法】游戏设计心法系列1-以玩法为核心去设计游戏

游戏的本质 游戏的魔法在于寻找隐藏事物之间的联系。 游戏的魅力在于随着玩家逐渐发现并了解游戏世界的方方面面,他会得到一种丰富而深厚的体验。 挑战,竞争和互动是游戏玩法的三大要素。 规则,过程,目标则是游戏内容的要素。 如…

学生成绩管理系统(c语言)

目录 题目需求 程序编写 定义学生结构体: 选择菜单: 文件读入结构体变量: 结构体变量写入文件: 输入检查: 输入记录: 打印记录: 修改记录: 删除记录: 查找信息: 最终代码: 调试: 软件准备: 测试数据: 直接复制测试数据版本: 输入,打印输出…