首页 > 数据库 >大意了,数据库数据无了,记录一下通过ibdata1恢复数据的过程

大意了,数据库数据无了,记录一下通过ibdata1恢复数据的过程

时间:2024-07-08 14:57:27浏览次数:16  
标签:容器 ibdata1 数据库 mysql docker ib 数据

前言

最近在做自己的个人博客,然后有一个功能是记录每天发表的文章数量,结果当天发布的文章却没有记录到,因为我部署java到docker时添加文章也会造成时间会少8小时,马上联想到了是docker的mysql容器的时区问题,从网上找了修改容器内的时区,为了一劳永逸,直接把容器删了重新设置时区,结果忘记备份了,记录一下恢复数据的过程。

前提

必须有将mysql的数据挂在到数据卷上,然后需要有原先的表结构,这个我在本地电脑上也有一个数据库,只是双方数据不同,所以直接导出了一个表结构。

步骤

1.误删容器后,首先找到挂在的数据卷位置,可以通过该命令进行数据卷查看

docker volume ls

一般数据卷的位置在/var/lib/docker/volumes,可以进入查看

cd /var/lib/docker/volumes/

2.通过finalshell将数据卷的数据全部拷贝到本地电脑中。

其中的核心文件就是ibdata1以及你的数据库,这里我的数据库是llpyblog

3.通过以下命令删除原先的数据卷

docker volume rm ‘数据卷名称’

4.然后重新创建数据卷并启动容器,就是这个-e TZ=Asia/Shanghai,让我忙活一上午

docker volume create mysqldata

docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
-p 3306:3306 \
-v mysqlcnf:/etc/mysql/conf.d/hmy.cnf \
-v mysqldata:/var/lib/mysql \
-d mysql:5.7.25

创建完后,通过navicat连接上,创建好数据库后运行sql文件,初始化好表结构。

5.进入数据卷位置

cd /var/lib/docker/volumes/mysqldata

会出现一个你创建的数据库名称的文件,把该文件夹删除

 并删除以下三个文件

6.将之前拷贝到本地电脑的同名的llpyblog文件夹拷贝一份进来,再将ibdata1拷贝进来


注意:重要的事情说3遍

不要将ib_logfile0和ib_logfile1一同拷贝,否则不能启动mysql容器,我在这里踩了很久的坑,差点放弃。

不要将ib_logfile0和ib_logfile1一同拷贝,否则不能启动mysql容器,我在这里踩了很久的坑,差点放弃。

不要将ib_logfile0和ib_logfile1一同拷贝,否则不能启动mysql容器,我在这里踩了很久的坑,差点放弃。

7.重启mysql容器

docker stop mysql
docker start mysql

重启后重新进入navicat,可看到数据已经恢复。

再次访问网站,看到数据恢复,舒服了!!!

总结

在做一些操作之前,记得先备份好数据,如果一开始直接转储一份sql文件出来,就避免掉很多麻烦了!!!

标签:容器,ibdata1,数据库,mysql,docker,ib,数据
From: https://blog.csdn.net/A567500/article/details/140267582

相关文章

  • ABAP小技巧+PARAMETERS选择屏幕单选为空查不到数据
    今天在使用报表查数据时,发现只输入物料号(多选框)查不出数据,要将公司代码(单选框)一起输入才能查出数据。选择屏幕设计界面如下:后台表数据如下:情况一:(查不出数据)DEBUG界面显示,内表GT_ZTFM0004为空,P_BUKRS(工厂代码字段)没有值情况二:(能查到值)DEBUG界面如下:其实这个情况就......
  • 数据分析师技术和必备知识汇总-----Excle-----数据透视表
    主文章:数据分析师技术和必备知识汇总-----Excle-----持续更新,https://blog.csdn.net/grd_java/article/details/140174090文章目录1.基础2.常用功能2.1报表布局2.2更改计算方式和排序2.3数据安全2.4计算字段的使用2.5切片器1.基础创建方法下图是某公司......
  • javab毕业设计-基于Java的校园二手交易商城系统设计与实现,基于springboot+vue二手跳蚤
    文章目录背景介绍演示视频(进入B站观看画面更清晰):项目架构和内容获取(文末获取)部分功能展示用户前端系统管理后台项目相关文件为什么我?本章节给大家带来的是一个基于java的大学生二手交易平台系统设计与实现,可适用于校园二手交易系统,基于Java的二手交易商城系统,大学......
  • 主流电商平台(淘+猫+京)营销中大数据的应用◆
    随着经济的不断发展,网络信息技术不断加强,电子商务和大数据的蓬勃发展极大地方便了人们的生活。本文章主要阐述大数据分析与电商营销的含义、大数据分析在电子商务营销中的应用,以及该应用的作用和存在哪些不足及解决方法。探究大数据分析在电子商务营销中的应用对行业发展具有重要......
  • 2024年,值得收藏!推荐一些好用的数据库管理工具合集!
    数据库管理工具合集!1、DBeaver(首选)DBeaver是一款免费开源的跨平台数据库管理工具,基于Java开发,支持目前几乎所有的主流数据库,包括MySQL、PostgreSQL、SQLite、Oracle、SQLServer、DB2、Sybase、Teradata、MongoDB等。它具有直观的用户界面,支持SQL编辑、数据查看、数据编辑、元......
  • springboot在线商城系统源码idea开发mysql数据库
    下载地址:https://download.csdn.net/download/qq_41221322/89519994摘要近年来,网上购物成了风靡全球的一种现象,大家逐渐接受了网上下单,隔天取货的这种方式。我们分析了一些购物网站现有的不足,结合我们所学的知识,制作了一款购物网站程序。学以致用,语言采用了大学时期学习的J......
  • Solidity:变量数据存储和作用域 storage/memory/calldata
    Solidity中的引用类型​引用类型(ReferenceType):包括数组(array)和结构体(struct),由于这类变量比较复杂,占用存储空间大,我们在使用时必须要声明数据存储的位置。数据位置​Solidity数据存储位置有三类:storage,memory和calldata。不同存储位置的gas成本不同。storage类型的数据存......
  • Tool-Gitlab-重置数据库,修复server迁移token异常
    Tool-Gitlab-重置数据库,修复server迁移token异常迁移gitlab的server数据之后,导致token异常影响:修改工程配置信息,提交时页面报错502sudogitlab-railsdbconsole--databasemainDELETEFROMci_group_variables;DELETEFROMci_variables;UPDATEprojectsSETrunners_token......
  • Bond——大数据时代的数据交换和存储格式
    设想我们在一家很大的互联网公司做IT方面的规划、开发和维护,有以下这样的应用场景:公司里有若干个不同的开发团队,开发语言有Java、.net、Python、C++....十来种,还有很多外包团队对项目进行开发,大中小系统已经多的数不过来;并且各个团队、系统间都需要进行海量数据的交换(比如搜索引......
  • 手机数据恢复篇:优秀的 iPhone 数据恢复汇总
    如果您不幸遭遇iPhone死机、进水或死机,一切还不算晚。您可以使用iPhone数据恢复应用恢复文件、照片、应用数据、消息等。使用以下选项,您可以恢复iPhone上的少量内容、特定项目或所有内容。有些应用程序甚至提供修复工具来修复最初导致数据丢失的问题。最好的iPhone......