我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何从 ibdata 和 frm 文件恢复 InnoDB MySQL 表数据?

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何从 ibdata 和 frm 文件恢复 InnoDB MySQL 表数据?

MySQL Server 使用两种类型的数据库存储引擎 – InnoDB 和 MyISAM。当使用InnoDB存储引擎时,MySQL服务器将数据和索引存储在.ibdata文件中,表模式存储在.frm文件中。如果 InnoDB 表损坏,您可以轻松地从 .ibdata 和 .frm 文件恢复 InnoDB MySQL 表的数据,而不是恢复完整的数据库备份。在本文中,我们将讨论如何从 MySQL 服务器中的 .ibdata 和 .frm 文件恢复数据。

从 ibdata 和 frm 文件恢复 InnoDB 表的逐步过程

以下是从 MySQL 服务器中的 .frm 和 .ibdata 文件恢复 InnoDB 表数据的分步过程:

  • 您需要首先创建一个新的 MySQL 数据库。为此,请登录 PhpMyAdmin,单击“数据库”选项,输入数据库名称(例如“客户端”),然后单击“创建”。

  • 接下来,转到 XAMPP 安装的文件夹检查新创建的数据库。默认位置是 C:xamppmysqldata。

  • 当你打开新数据库时,你会发现它不包含任何表。要创建表,您需要表的架构。如果您有更新的备份文件,那么您可以获得数据库的架构和名称。您可以使用相同的名称来创建表。但如果您没有备份,则可以使用 .frm 文件来提取表的架构。在线提供各种可靠的实用程序可以帮助您提取表架构。

  • 现在使用相同的架构在新创建的数据库中创建表。

  • 创建表后,它会自动在数据库文件夹中创建新的 .frm 和 .ibd 文件。

  • 接下来,转到 XAMPP 安装文件夹并删除 .ibd 文件。

  • 然后,复制原始 .ibd 文件并将其粘贴到新数据库中。

  • 在复制原始 .ibd 文件之前,执行以下查询:
    ALTER TABLE table_name DISCARD TABLESPACE;
    注意:DISCARD TABLESPACE 命令将断开 MySQL 表和表空间之间的链接,从而有助于防止不一致和其他问题。

  • 接下来,使用以下命令恢复 MySQL 表和表空间之间的链接:
    ALTER TABLE 表名 IMPORT TABLESPACE;
    注意:您可以使用 .frm 和 .ibd 文件一次从单个表恢复数据。如果您需要恢复多个表,那么将花费大量时间,因为您需要手动执行每个表的所有步骤。

恢复 InnoDB MySQL 表的替代解决方案

要快速、轻松地从 MySQL Server 数据库一次恢复多个 InnoDB 表,您可以使用专业的 MySQL 数据库恢复工具。 Stellar Repair for MySQL 就是这样一种易于使用的工具,它可以从损坏的 MySQL 数据库中恢复 InnoDB 表和其他数据,例如主键、视图、触发器等。该工具具有丰富的交互式用户界面,可帮助您通过几个简单的步骤快速执行修复和恢复操作。

Stellar Repair for MySQL 的主要特点

以下是 Stellar Repair for MySQL 的一些关键功能:

  • 支持 MySQL Server 8.0.36 及更低版本

  • 支持所有 MariaDB 版本直至 11.3.2

  • 恢复 MySQL 数据库中的所有数据,包括删除的记录和分区表

  • 完全精确地修复 MySQL 表

  • 在保存之前提供修复数据的增强预览

  • 允许一次修复多个数据库

  • 允许您以多种格式保存修复的 MySQL 数据库,如 MySQL、MariaDB、SQL 脚本、CSV、HTML 和 XLS

  • 兼容Windows和Linux操作系统,包括CentOS 7(64位)/ Red Hat Enterprise Linux 7(64位)和Ubuntu 16.04(32位和64位)/ Ubuntu 18.04和19.10(64 位)

结论

上面,我们解释了从 ibdata 和 .frm 文件恢复 InnoDB MySQL 表数据的详细分步过程。但是,这不适合恢复多个表,因为您需要为每个表手动执行所有步骤。或者,您可以使用专业的 MySQL 数据库恢复工具,例如 Stellar Repair for MySQL,它可以帮助您从损坏的数据库文件中完全完整地提取所有对象,包括表、主键、视图、触发器等。该工具支持修复使用 InnoDB 和 MyISAM 存储引擎创建的数据库。它旨在解决 MySQL 数据库中各种与损坏相关的错误。 Stellar Repair for MySQL 还提供免费演示版本,允许扫描数据库文件并预览可恢复的数据。

以上就是如何从 ibdata 和 frm 文件恢复 InnoDB MySQL 表数据?的详细内容,更多请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何从 ibdata 和 frm 文件恢复 InnoDB MySQL 表数据?

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

下载Word文档

猜你喜欢

如何从 ibdata 和 frm 文件恢复 InnoDB MySQL 表数据?

MySQL Server 使用两种类型的数据库存储引擎 – InnoDB 和 MyISAM。当使用InnoDB存储引擎时,MySQL服务器将数据和索引存储在.ibdata文件中,表模式存储在.frm文件中。如果 InnoDB 表损坏,您可以
如何从 ibdata 和 frm 文件恢复 InnoDB MySQL 表数据?
2024-09-12

MySQL 利用frm文件和ibd文件恢复表数据

frm文件和ibd文件简介 在MySQL中,如果我们使用了默认的存储引擎innodb创建一张表,那么在文件夹下面就会出现表名.frm和表名.ibd两个文件,如果我们使用的是Myisam存储引擎,那么就会出现三个文件,这里我们给出例子:
2022-05-13

Mysql之如何根据.frm和.idb文件恢复表结构

这篇文章主要介绍了Mysql之如何根据.frm和.idb文件恢复表结构问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-08

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

本文对该文章进行参考,地址https://baijiahao.baidu.com/s?id=1675966756498698574&wfr=spider&for=pc现在有一个数据库需要恢复,已经获取到.frm和.ibd文件这些文件即是我之前的文章2021长安
通过.frm和.idb文件恢复mysql数据库
2021-12-18

Mysql怎么根据.frm和.idb文件恢复表结构

这篇文章主要介绍“Mysql怎么根据.frm和.idb文件恢复表结构”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Mysql怎么根据.frm和.idb文件恢复表结构”文章能帮助大家解决问题。根据.f
2023-07-05

mysql数据如何通过data文件恢复

目录mysql数据通过data文件恢复mysql数据恢复方法个人总结步骤其它笔记总结mysql数据通过data文件恢复mysql磁盘文件被损坏,无法启动,能看到data文件,在没有备份的话如何复原?情景1:知道数据库中的表结构1、先执
2022-12-13

extundelete如何实现Linux下文件和文件夹数据恢复

这篇文章将为大家详细讲解有关extundelete如何实现Linux下文件和文件夹数据恢复,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。extundelete是基于Linux的一个数据恢复工具,它通过分析
2023-06-10

DataGrip 如何导出和恢复整个数据库数据,使用单个 SQL 文件

DataGrip 如何导出和恢复整个数据库数据,使用单个 SQL 文件 之前一直用 Navicat 来处理数据库数据,整个导出导入等,用习惯了之后,再用 DataGrip 总找不到对应操作的地方。比如数据库的整个导入导出,我就找了半天才找到
2023-08-17

我们如何使用带有“FIELDS TERMINATED BY”选项的 MySQL LOAD DATA INFILE 语句将数据从文本文件导入到 MySQL 表中?

当我们想要导入 MySQL 表的文本文件的值由逗号 (,) 或任何其他分隔符(如冒号 (:))分隔时,应使用“FIELDS TERMINATED BY”选项,可以通过下面的例子来理解 -例子假设我们有以下数据,用分号(;)分隔,在我们想要导
2023-10-22

编程热搜

目录