Docker系列---【mysql容器手动停止后,重启服务器,mysql容器被删掉了,如何恢复mysql数据?】...

news2024/12/30 2:33:32

mysql容器手动停止后,重启服务器,mysql容器被删掉了,如何恢复mysql数据?

1.问题描述

为了快速搭建数据库,我使用了docker搭建数据库,由于服务器资源紧张,我想先把mysql容器停掉,启动jenkins容器,使用完之后再停掉jenkins,启动mysql,结果由于服务器资源有限,服务器卡死了,无法远程连接了,没办法,我只能登录运营商的云平台管理平台,强制重启服务器。结果发现,重启之后,我的mysql容器没有了,使用docker ps -a查看不到了,我瞬间慌了。我当时暗自祈祷,希望volume没有被删掉,我就还有机会。于是,我开始了下面的尝试。

2.分析

2.1找到mysql容器的启动命令

grep "docker run" ~/.bash_history

搜索结果:
docker run -itd --name mysql8 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root1234! mysql:8.0.25 --lower_case_table_names=1
执行完之后,发现当时没有配置-v映射。这就尴尬了,继续往下走。

2.2执行上面的命令重新启动一个mysql容器,查找默认卷挂载位置

#用原来的命令先启动一个mysql容器
docker run -itd --name mysql8 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root1234! mysql:8.0.25 --lower_case_table_names=1

#查看卷挂载的默认目录,拿到一串数字的上一级目录就行
docker inspect -f '{{ .Mounts }}' mysql8
#这里我们拿到的是`/var/lib/docker/volumes`

2.3在上一步拿到的卷挂载目录里寻找到原来mysql的挂载卷

#根据mysql查
find /var/lib/docker/volumes/ -name mysql
#推荐:根据binlog.index查(核心命令)
find /var/lib/docker/volumes/ -name binlog.index
#这里如果有多个,可以用`du -sh *`来根据大小推断哪个是你的mysql数据目录
#这里我只找到一个`/var/lib/docker/volumes/d95076020423ab2b10122e4e930c1f961116dc10c374527c33325a44a91da325/_data/binlog.index`
我们进入`/var/lib/docker/volumes/d95076020423ab2b10122e4e930c1f961116dc10c374527c33325a44a91da325/_data/`目录,目录结构如下图

下面这个就是mysql的data目录,只要这个在,数据就不会丢。

2.4 创建新的数据卷,挂载到这个data目录

注意:也可以直接在启动的时候-v挂载数据目录,但是目录太长了,建议建个新的数据卷.

docker volume create --driver local --opt type=none --opt device=/var/lib/docker/volumes/9c23ed8a8fe178af50d42546be2cbded238f29e0139acf7433245830201d3df7/_data --opt o=bind new_mysql_data

2.5 启动新的mysql容器,挂载数据目录

docker run -itd --name mysql8 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root1234! -v new_mysql_data:/var/lib/mysql  mysql:8.0.25 --restart always --lower_case_table_names=1

注意:
在服务器重启后,Docker容器的重新启动行为将依赖于容器的--restart选项设置。以下是各种情况的重新启动行为:

  • no:容器不会自动重新启动,即使服务器重启也不会。
  • always:容器将在服务器重启后自动重新启动,确保容器保持运行状态。
  • on-failure:容器只会在非正常退出时重新启动,这意味着容器不会在服务器重启后自动重新启动,除非它之前是因为错误而退出的。
  • unless-stopped:容器将在服务器重启后自动重新启动,除非您显式停止容器。
    如果您希望在服务器重启后容器自动重新启动,可以选择使用--restart always或--restart unless-stopped选项,具体取决于您的需求。

注意:
--lower_case_table_names参数是用于配置MySQL数据库服务器的一个选项,用来控制数据库表名的大小写敏感性。这个选项有三个不同的取值,分别是0、1和2,它们的作用如下:

  • --lower_case_table_names=0:这是默认值。在这种模式下,表名是区分大小写的。这意味着MyTable和mytable被视为不同的表。
  • --lower_case_table_names=1:在这种模式下,表名被存储为小写,并且对表名的比较是不区分大小写的。这意味着MyTable和mytable被视为相同的表。
  • --lower_case_table_names=2:在这种模式下,表名被存储为小写,并且对表名的比较是不区分大小写的。与模式1相似,不同之处在于这个模式还会将文件系统中的表名转换为小写,这对于操作系统文件名的大小写敏感性有关。这个选项通常在非大小写敏感的文件系统上使用。
    使用--lower_case_table_names参数通常取决于您的特定需求和环境。如果您需要在表名区分大小写,可以保持默认值(0)。如果您希望表名不区分大小写,可以使用1或2,具体取决于您是否需要文件系统上的大小写敏感性。

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

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

相关文章

Elsevier (爱思唯尔) 期刊 投稿流程与注意点

😄 Elsevier (爱思唯尔) 期刊投稿流程中还是遇到了不少问题的,本篇文章总结一些说明文档和提交要点。 ⭐ LaTex 模板说明 & 投稿流程与准备 latex模版和投稿流程相关参考说明可看下面几个网址,总结的非常全面了: Elsevier&am…

Geoda-双变量空间自相关

Geoda-双变量空间自相关https://mp.weixin.qq.com/s/cOkgBCf5ljlVJkWoIwkzxw 之前空间自相关—莫兰指数中简单写了一下如何在ArcGIS中计算莫兰指数,本次简要演示在Geoda中计算双变量空间自相关的步骤。案例数据是武汉市资源环境承载力指数(RECC&#xf…

Golang关键字-select

一、Select解决什么问题&#xff1f; 在Golang中&#xff0c;两个协程之间通信Channel&#xff08;图一&#xff09;&#xff0c;在接受协程中通过代码表示即为<ch&#xff1b;如果协程需要监听多个Channel&#xff0c;只要有其中一个满足条件&#xff0c;就执行相应的逻辑&…

尚硅谷Flume(仅有基础)

q 1 概述 1.1 定义 Flume 是Cloudera 提供的一个高可用的&#xff0c;高可靠的&#xff0c;分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构&#xff0c;灵活简单。 Flume最主要的作用就是&#xff0c;实时读取服务器本地磁盘的数据&#xff0c;将数据写入到HD…

易点易动固定资产管理系统:高效盘点海量固定资产的得力助手

固定资产是企业重要的财务资源之一&#xff0c;盘点是保证固定资产准确性和完整性的关键环节。然而&#xff0c;对于拥有海量固定资产的企业来说&#xff0c;传统的手工盘点方式效率低下且容易出错。为了解决这一难题&#xff0c;易点易动固定资产管理系统应运而生。本文将深入…

AM@第二类换元法积分

文章目录 abstract第一类换元法第二类换元法分析定理&#x1f47a;证明第二类换元公式的应用 倒代换三角恒等化去根式其他使用第二换元法情形例 附加积分公式表例 附 abstract 第二类换元法(简称第二换元法)的原理和应用 第一类换元法 通过变量代换 u ϕ ( x ) u\phi(x) uϕ…

GoLong的学习之路(十)语法之函数

书接上回&#xff0c;上回书说到&#xff0c;结构体&#xff0c;一言之重在于体。一体之重在于经。经之重甚于骨。这张就说go的经络—函数。 文章目录 函数函数如何定义参数可变参数 返回值多返回值 函数类型与变量 高阶函数函数作为参数函数作为返回值匿名函数闭包defer语句底…

虹科 | 解决方案 | 非道路移动机械诊断方案

虹科Pico汽车示波器为卡车、拖拉机、叉车、船只、联合收割机、挖掘机开发了专用的测试附件和软件测试菜单&#xff0c;比如 24 V 电池、Bosch Denoxtronic、J1939 通信、发动机和液压传动系统以及部件测试等。我们为从事重型车辆和非道路移动机械的维护与诊断的朋友&#xff0c…

通用表表达式查询

1.方法&#xff1a; 1.1普通变量创建 with 表名&#xff08;列名&#xff09; as&#xff08;select 内容&#xff09; 语义&#xff1a;创建一张表 列名和内容11对应 和临时表的区别&#xff0c;这个类似变量&#xff0c;变量和常量的区别 后面可以影响前面&#xff1a; 1…

通天之网:卫星互联网与跨境电商的数字化未来

在当今数字化时代&#xff0c;互联网已经成为商业的核心。跨境电商&#xff0c;作为在线商业的一部分&#xff0c;一直在寻求新的途径来拓宽其边界。近年来&#xff0c;卫星互联网技术的发展已经成为这一领域的重要驱动力&#xff0c;不仅将互联网带到了全球各个角落&#xff0…

DSP 开发例程: led_flash

此例程实现在 EVM6678L 开发板控制 LED 闪烁. 使用了 SYS/BIOS 和 MCSDK PDK TMS320CC6678 两个组件. 例程源码可从我的 gitee.com 仓库上克隆或下载. 目录 创建工程源码编辑main.cplatform_osal.capp.cfg 编译调试使用 板载仿真器使用 外部仿真器 创建工程 点击菜单: File | N…

51单片机实验:数码管动态显示00-99

1、实验要求 利用STC89C52RC单片机开发板实现&#xff1a;使用2位数码管循环显示00-99&#xff0c;每次间隔1s&#xff0c;并且当计数到20时&#xff0c;则蜂鸣器鸣响1次。 2、实验分析 程序实现分析&#xff1a; 1、定义数码管位选引脚&#xff08;P2.4、P2.5、P2.6、…

C++ BinarySercahTree for version

搜索二叉树定义 搜索二叉树模拟实现 首先写一个模版&#xff0c;然后写一个搜索二叉树的类 BSTree&#xff0c;类里面给 BSTe进行重命名为&#xff1a;Node。 template<class K> class BSTree {tyepdef BSTree<K> Node; private:Node* root nullptr; };再写一个…

Qt中的枚举变量,Q_ENUM,Q_FLAG以及Qt中自定义结构体、枚举型做信号参数传递

Qt中的枚举变量,Q_ENUM,Q_FLAG,Q_NAMESPACE,Q_ENUM_NS,Q_FLAG_NS以及其他 理论基础&#xff1a;一、Q_ENUM二、QMetaEnum三、Q_FLAG四、示例 Chapter1 Qt中的枚举变量,Q_ENUM,Q_FLAG,Q_NAMESPACE,Q_ENUM_NS,Q_FLAG_NS以及其他前言Q_ENUM的使用Q_FLAG的引入解决什么问题&#xf…

怎么在Python爬虫中使用IP代理以避免反爬虫机制?

在进行网络爬虫的过程中&#xff0c;尤其是在大规模批量抓取数据时&#xff0c;需要应对各种反爬虫技术&#xff0c;其中最常用的就是IP封锁。为了避免IP被封锁&#xff0c;我们可以使用IP代理来隐藏自己的真实IP地址&#xff0c;从而让爬虫活动看起来更像正常的浏览器行为。 I…

Table-GPT:让大语言模型理解表格数据

llm对文本指令非常有用&#xff0c;但是如果我们尝试向模型提供某种文本格式的表格数据和该表格上的问题&#xff0c;LLM更有可能产生不准确的响应。 在这篇文章中&#xff0c;我们将介绍微软发表的一篇研究论文&#xff0c;“Table-GPT: Table- tuning GPT for Diverse Table…

虹科 | 解决方案 | 汽车示波器 远程诊断方案

车厂总部专家实时指导你修车 当一线汽修技师遇到疑难问题无从下手时&#xff0c;可以准备好pico汽车示波器套装&#xff0c;并戴上我们的M400智能AR眼镜&#xff0c;通过语音操作&#xff0c;呼叫主机厂的技术支持老师&#xff1b;老师通过AR眼镜上的摄像头老师可以实时看到现…

Python数据挖掘:入门、进阶与实用案例分析——基于非侵入式负荷检测与分解的电力数据挖掘

文章目录 摘要01 案例背景02 分析目标03 分析过程04 数据准备05 属性构造06 模型训练07 性能度量08 推荐阅读赠书活动 摘要 本案例将根据已收集到的电力数据&#xff0c;深度挖掘各电力设备的电流、电压和功率等情况&#xff0c;分析各电力设备的实际用电量&#xff0c;进而为电…

财务RPA机器人真的能提高效率吗?

财务部门作为一个公司的管理职能部门承担着一个公司在商业活动中各个方面的重要职责。理论上来说&#xff0c;一个公司的财务部门的实际工作包含但不限于对企业的盈亏情况进行评估、对风险进行预测、通过数据分析把握好公司的财务状况、税务管理等。 然而&#xff0c;实际上在…

分析主题帆软决策报表控件实现点击查询按钮后才能查询

点击「我的分析」即进入分析主题的管理界面&#xff0c;如下图所示&#xff1a; 2.1.1 分析列表区域 「分析列表」存放着当前用户创建的和其他用户协作给该用户的所有分析主题。 可以对分析列表和分析主题进行管理&#xff0c;详情参见&#xff1a;管理我的分析、管理分析主…