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 表的替代kb88凯时官网登录的解决方案
要快速、轻松地从 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 还提供免费演示版本,允许扫描数据库文件并预览可恢复的数据。