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

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.mzph.cn/news/120254.shtml

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

相关文章

vue ant DatePicker 日期选择器 限制日期可控范围

场景 限制当前日期之前不能选择 限制只能选择日期区间内 Ant Design Vue 效果 <a-date-picker :disabledDate"disabledDate"></a-date-picker>method // 限制日期选择disabledDate(current) {return current && current > moment().endOf(&…

LeetCode 1465. 切割后面积最大的蛋糕:纵横分别处理

【LetMeFly】1465.切割后面积最大的蛋糕&#xff1a;纵横分别处理 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts/ 矩形蛋糕的高度为 h 且宽度为 w&#xff0c;给你两个整数数组 horizontalCut…

【Javascript】函数声明的方式

方式一&#xff1a; function c(a,b){return ab;}var sumc(3,4);console.log(sum); 方式二&#xff1a; var afunction (a,b){return ab;}; console.log(a(1,3)); 方式三&#xff1a; 构造声明 var cnew Function (a,b,return ab); console.log(c(1,2));声明函数过程中&…

BUUCTF刷题记录

[BJDCTF2020]Easy MD51 进入题目页面&#xff0c;题目提示有一个链接&#xff0c;应该是题目源码 进入环境&#xff0c;是一个查询框&#xff0c;无论输入什么都没有回显&#xff0c;查看源码也没什么用 利用bp抓包查看有没有什么有用的东西 发现响应的Hint那里有一个sql语句&…

设备管理软件管理系统

从设备检查到设备保养&#xff0c;再到设备维护&#xff0c;全方位视角掌握设备状态的管理软件。让企业员工可以随时随地的查看设备的各种信息&#xff1a;巡检信息、保养计划、备件更换提醒、维修保养资料等。 1、一物一码&#xff0c;建立设备电子档案“身份证” 精准管控每一…

如何通过内网穿透实现公网远程连接Redis数据库

公网远程连接Redis数据库【内网穿透】 文章目录 公网远程连接Redis数据库【内网穿透】前言1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址…

Java 使用 poi 和 aspose 实现 word 模板数据写入并转换 pdf 增加水印

本项目所有源码和依赖资源都在文章顶部链接&#xff0c;有需要可以下载使用 1. 需求描述 从指定位置读取一个 word 模板获取业务数据并写入该 word 模板&#xff0c;生成新的 word 文档将新生成的 word 文档转换为 pdf 格式对 pdf 文档添加水印 2. 效果预览 word 模板 带水印的…

随笔:使用Python爬取知乎上相关问题的所有回答

项目中数据分析的需要自己从知乎某个专门的问题上爬数据&#xff0c;但众所周知&#xff0c;知乎的问题的显示方式有点胃疼&#xff08;指滑动后下翻加载更多回答&#xff0c;还经常卡住&#xff09;&#xff0c;翻了翻网上的教程发现有的要么就是很老了要么就是付费的&#xf…

【详细】Java网络通信 TCP、UDP、InetAddress

一、网络程序设计基础 1.局域网与因特网 为了实现两台计算机的通信&#xff0c;必须用一个网络线路连接两台计算机&#xff08;服务器<-->网络<-->客户机&#xff09;。 服务器是指提供信息的计算机或程序&#xff0c;客户机是指请求信息的计算机或程序。网络用…

基于java+swing+mysql实现的仓库商品管理系统

JavaSwingmysql用户信息管理系统 一、系统介绍二、功能展示三、项目相关3.1 乱码问题3.2 如何将GBK编码系统修改为UTF-8编码的系统&#xff1f; 四、其它1.其他系统实现 五、源码下载 一、系统介绍 本系统实现了两个角色层面的功能&#xff0c;管理员可以管理用户、仓库、商品…

Pinia中如何实现数据持久化操作

使用vue3中的pinia&#xff0c;我们可以在多个页面间共享数据&#xff0c;但是一旦我们关闭或刷新页面&#xff0c;这些数据就会丢失&#xff0c;因此&#xff0c;我们需要有一种数据持久化的解决方案。在记录vue3 使用vue3中的pinia&#xff0c;我们可以在多个页面间共享数据&…

【App 抓包提示网络异常怎么破?】

背景 当你测试App的时候,想要通过Fiddler/Charles等工具抓包看下https请求的数据情况,发现大部分的App都提示网络异常/无数据等等信息。以“贝壳找房”为例: 455 x 705 Fiddler中看到的请求是这样的: 619 x 215 你可能开始找证书的问题:是不是Fiddler/Charles的证书没有…

数字化工厂:连接、集成与数据融合

随着科技的不断发展&#xff0c;数字化工厂管理系统逐渐成为制造业的重要趋势。数字化工厂的核心在于连接、集成与数据融合&#xff0c;通过这些技术手段&#xff0c;实现对设备、生产线、工厂、供应商、产品、客户等各个环节的全面优化&#xff0c;提升企业的生产效率和产品质…

NET-MongoDB的安装使用

一&#xff0e;下载 MongoDB 点击 Select package 选择自己所需版本后点击下载&#xff0c;本文选用Windows 6.0版本以上 二、配置MongoDB 在 Windows 上&#xff0c;MongoDB 将默认安装在 C:\Program Files\MongoDB 中。 将 C:\Program Files\MongoDB\Server\version_numbe…

安装python虚拟环境

什么是虚拟环境&#xff1a; 虚拟环境的意义&#xff0c;就如同 虚拟机 一样&#xff0c;它可以实现不同环境中Python依赖包相互独立&#xff0c;互不干扰。 环境准备 安装python &#xff08;到官网下载Download Python​配置环境变量&#xff0c;cmd进入命令行输入 python…

王道计网:数据链路层

一、导论 将网络层的数据报分组封装成帧。 本质上是数据链路层封装之后&#xff0c;在物理层传输bit流&#xff0c;中间站点又会向上到数据链路层&#xff0c;这是一个实际过程&#xff0c;但是在单独考虑数据链路层时&#xff0c;我们可以忽略经过的物理层&#xff0c;直接认为…

js实现将文本生成二维码(腾讯云cos)

示例 页面代码 import { getQCodeUrl } from /utils/cosInstance; import { PageContainer } from ant-design/pro-components; import { Access, useAccess } from umijs/max; import { Button, Image } from antd; import { useState } from react;const AccessPage: Reac…

16 用于NOMA IoT网络上行链路安全速率最大化的HAP和UAV协作框架

文章目录 摘要相关模型仿真实验仿真结果 摘要 优化无人机到HAP的信道分配、用户功率和无人机三维位置来研究上行安全传输解决非凸问题&#xff0c;采用K-means聚类算法&#xff0c;将成对的用户划分成不同的组&#xff0c;每个簇可以有相应的无人机服务&#xff0c;然后将构造…

vue3-admin-element框架登录如何修改?

1、找到vite.config.js文件 配置反向代理 2、找到src文件下的user.js文件 3、找到views文件下的login文件 打开找到comp文件夹找到LoginFrom.vue页面进去 把这个改成自己的账户数据&#xff08;密码不一致自行更改&#xff09; 4、找到store文件下的modules下的user.js 5、找到…

虹科 | 解决方案 | 汽车示波器 学校教学方案

虹科Pico汽车示波器是基于PC的设备&#xff0c;特别适用于大课堂的教学、备课以及与师生的互动交流。老师展现讲解波形数据&#xff0c;让学生直观形象地理解汽车的工作原理 高效备课 课前实测&#xff0c;采集波形数据&#xff0c;轻松截图与标注&#xff0c;制作优美的课件&…