iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >通过.frm和.idb文件恢复mysql数据库
  • 676
分享到

通过.frm和.idb文件恢复mysql数据库

通过.frm和.idb文件恢复mysql数据库 2021-12-18 05:12:55 676人浏览 才女
摘要

本文对该文章进行参考,地址https://baijiahao.baidu.com/s?id=1675966756498698574&wfr=spider&for=pc 现在有一个数据库需要恢复,已经获取到.frm和.ibd文件 这些文件

通过.frm和.idb文件恢复mysql数据库

本文对该文章进行参考,地址https://baijiahao.baidu.com/s?id=1675966756498698574&wfr=spider&for=pc

现在有一个数据库需要恢复,已经获取到.frm和.ibd文件

这些文件即是我之前的文章2021长安杯wp - WXjzc - 云海天 (cnblogs.com)中的第36题的数据库的文件

先将要恢复的数据库的表名全部提取出来dir /l *.frm /b > filename.txt,去掉后缀即为表名

下载Mysql Utilities用于将frm文件转换成sql文件lHttps://downloads.mysql.com/arcHives/utilities/

通过PHPstudy启用mysql服务,引擎一定要选择InnoDB,这个引擎才会生成.frm和.ibd文件

然后编写一个bat文件,批量完成操作,格式为

mysqlfrm --server=用户名:密码@服务器:端口 源文件路径abc.frm > 目标文件路径abc.sql --diagnostic --port=3307 --user=

mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001@6211@7684@8d26@5355.frm > E:cabwww_honglian7001sql@6211@7684@8d26@5355.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_admin.frm > E:cabwww_honglian7001sqlapp_admin.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_admin_cate.frm > E:cabwww_honglian7001sqlapp_admin_cate.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_admin_log.frm > E:cabwww_honglian7001sqlapp_admin_log.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_admin_menu.frm > E:cabwww_honglian7001sqlapp_admin_menu.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_appconfig.frm > E:cabwww_honglian7001sqlapp_appconfig.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_article.frm > E:cabwww_honglian7001sqlapp_article.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_article_cate.frm > E:cabwww_honglian7001sqlapp_article_cate.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_attachment.frm > E:cabwww_honglian7001sqlapp_attachment.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_content.frm > E:cabwww_honglian7001sqlapp_content.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_emailconfig.frm > E:cabwww_honglian7001sqlapp_emailconfig.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_messages.frm > E:cabwww_honglian7001sqlapp_messages.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_mobile.frm > E:cabwww_honglian7001sqlapp_mobile.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_smsconfig.frm > E:cabwww_honglian7001sqlapp_smsconfig.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_urlconfig.frm > E:cabwww_honglian7001sqlapp_urlconfig.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_user.frm > E:cabwww_honglian7001sqlapp_user.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_webconfig.frm > E:cabwww_honglian7001sqlapp_WEBconfig.sql --diagnostic --port=3307 --user=

打开文件就能发现,这些sql语句完成了表结构的创建

可以将这些sql文件中的语句全部合到同一个文件当中copy *.sql create.sql

把注释会引起报错的warning删掉

在创建一个同名的数据库create DATABASE www_honglian7001

将之前处理的sql语句导入并执行

使用命令alter table `表名` discard tablespace;来删除创建表时生成的.ibd文件,并生成.frm文件,不执行这个命令的话,则只有.ibd文件

mysql的数据目录可以在phpstudy中查看

将要恢复的.ibd文件放入目录下对应的数据库目录中

再使用命令alter table `表名` import tablespace;实现数据迁移

刷新数据库后即可查看到数据已经恢复

有一点出现了问题,之前的表名@6211@7684@8d26@5355,这其实是最初的数据库中的一个中文表名,为我的账单,但是现在变成了编码形式,以这个形式进行上述操作的时候,生成的.frm文件会变成@04006211@04007684@04008d26@04005325,从而导致恢复失败,要解决这个问题,只需要将这类文件在一开始就重命名为正常格式即可

重命名之后进行操作,数据成功恢复

原文地址:https://www.cnblogs.com/WXjzc/archive/2022/04/09/16122196.html

您可能感兴趣的文档:

--结束END--

本文标题: 通过.frm和.idb文件恢复mysql数据库

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

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

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

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

下载Word文档
猜你喜欢
  • mysql通过.frm和.ibd 文件恢复数据库
     问题背景:由于强制在服务关闭mysql导致部分数据表以及数据丢失 如下图只有.frm .ibd的文件为我的问题文件 查找不到表结构和表数据目录D:XXXX\mysql-5.7.24-winx64\data\mydata  从frm文件中...
    99+
    2023-09-21
    数据库 mysql
  • MySQL 5.7 通过frm和ibd文件恢复数据
    MySQL 5.7 通过解析frm和ibd文件恢复数据 .frm文件存储表结构 .ibd文件存储数据 以恢复表IP_PATENT_APPLICANT_LIST为例, 有待恢复表文件IP_PATENT_...
    99+
    2023-10-20
    mysql 数据库 java
  • Mysql怎么根据.frm和.idb文件恢复表结构
    这篇文章主要介绍“Mysql怎么根据.frm和.idb文件恢复表结构”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Mysql怎么根据.frm和.idb文件恢复表结构”文章能帮助大家解决问题。根据.f...
    99+
    2023-07-05
  • 【mysql数据损坏,通过ibd和frm文件批量恢复数据库数据】
    问题描述 客户那边的测试服务器下午3:00左右因不明原因,所有服务访问不了,ssh也无法连接,客户手动进行强制重启服务器,重启后将所有应用、中间件重启,重启nacos时发现无法连接数据库,通过账号密码...
    99+
    2023-09-02
    数据库 mysql
  • Mysql 通过frm&ibd 恢复数据
           mysql存储在磁盘中,各种天灾人祸都会导致数据丢失。大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公...
    99+
    2024-04-02
  • Mysql之如何根据.frm和.idb文件恢复表结构
    目录根据.frm和.idb文件恢复表结构如何根据.frm和.idb文件恢复表结构呢第一步:下载安装MYSQL Utilities工具第二步:使用.frm文件恢复表结构第三步:使用.i...
    99+
    2023-03-08
    Mysql .frm文件 Mysql .idb文件 Mysql恢复表结构
  • MySQL 5.6.26 通过frm & ibd 恢复数据过程
    在A服务器上创建数据库yoon root(yoon)> show create table yoon\G *************************** 1. row ************...
    99+
    2024-04-02
  • MySQL8.0 通过data文件和SQL语句恢复数据库
    一、通过data文件恢复data里的数据库 Mysql里的数据一般会自动保存到C:\ProgramData\MySQL\MySQL Server 8.0\Data目录下,卸载前要将其备份。 目前进测试了同版本的Mysql 数据恢复步骤: 1...
    99+
    2023-09-03
    mysql 数据库
  • Mysql怎么通过ibd文件恢复数据
    这篇文章主要介绍了Mysql怎么通过ibd文件恢复数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mysql怎么通过ibd文件恢复数据文章都会有所收获,下面我们一起来看看吧。恢复步骤1、创建数据库(随意创建)...
    99+
    2023-07-02
  • mysql数据如何通过data文件恢复
    目录mysql数据通过data文件恢复mysql数据恢复方法个人总结步骤其它笔记总结mysql数据通过data文件恢复 mysql磁盘文件被损坏,无法启动,能看到data文件,在没有备份的话如何复原? 情景1:知道数据库...
    99+
    2022-12-13
    mysql恢复数据 mysql通过data文件恢复 mysqldata文件恢复
  • MySQL数据库中怎么修复.frm文件、.MYD文件和.MYI文件
    这篇文章给大家介绍MySQL数据库中怎么修复.frm文件、.MYD文件和.MYI文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  MySQL数据库.frm文件、.MYD文件和.MY...
    99+
    2024-04-02
  • 怎么通过日志文件恢复MySQL数据
    这篇文章主要介绍“怎么通过日志文件恢复MySQL数据”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么通过日志文件恢复MySQL数据”文章能帮助大家解决问题。1、找到最新的 binlog 文件进入 ...
    99+
    2023-06-29
  • 通过binlog恢复mysql数据
    通过binlog恢复mysql数据 基本流程 一、确定要恢复的时间点 确定要恢复到的时间点,可以使用以下命令查看binlog相关信息;或者根据误操作的时间来决定要恢复的时间点。 # 查询 BINLO...
    99+
    2023-09-12
    mysql 数据库
  • MySQL——通过binlog恢复数据
    目录 1.binlog基本概念 2.MySQL开启binlog 3.使用binlog日志恢复数据 3.1.恢复前准备工作 3.2.数据恢复 3.2.1.通过mysqlbinlog将binlog转为sql,以方便查询具体位置 3.2.2.查看...
    99+
    2023-09-01
    mysql
  • MYSQL8 通过ibd文件恢复表数据
    目录 1.新建一个与原表结构相同的表,如果不记得的话,也可通过ibd文件查询表结构,方法如下:  2.移除表空间  3.关闭mysql服务,将备份的ibd文件放入合适位置  4.重新导入表空间  5.注意点: 注意:mysql8以上只...
    99+
    2023-09-02
    mysql 数据库
  • 教你如何通过日志文件恢复MySQL数据
    目录前言1、找到最新的 binlog 文件2、找到我们想恢复数据在日志文件里的开始结束位置2.1、使用时间范围2.2、使用 position 范围3、恢复3.1 通过时间恢复3.2 ...
    99+
    2024-04-02
  • MySQL数据库通过Binlog恢复数据的详细步骤
    目录Mysql Binlog 简介开启Binlog使用Binlog恢复数据附录总结 Mysql Binlog 简介 Mysql Binlog是二进制格式的日志文件Binlo...
    99+
    2024-04-02
  • Controlfile和system01数据文件的丟失如何通过standby恢复
    这篇文章将为大家详细讲解有关Controlfile和system01数据文件的丟失如何通过standby恢复,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。問...
    99+
    2024-04-02
  • mysql通过binlog恢复或回滚数据
    前言 近期项目开发中出现了一次误删的操作,于是在网上查找了mysql的回滚操作,这里记录一下。 简单说下binlog,binlog是mysql中的二进制日志,其记录了数据库发生更改的各种变化。所以通过binlog可以回滚或者恢复失误的操作。...
    99+
    2023-08-31
    mysql mysqlbinlog binlog2sql mysql回滚
  • mysql通过binlog日志恢复误删数据
    1、先查看binlog功能是否开启 show variables like '%log_bin%'; log_bin为ON说明可以使用binlog恢复,如果为OFF说明没有开启binlog。 2、删...
    99+
    2023-09-06
    mysql 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作