仅使用 .frm 和 .ibd 文件恢复 MySQL 数据库[重复]
Posted
技术标签:
【中文标题】仅使用 .frm 和 .ibd 文件恢复 MySQL 数据库[重复]【英文标题】:Restore MySQL database using only .frm and .ibd files [duplicate] 【发布时间】:2019-01-30 12:02:36 【问题描述】:我不小心用 InnoDB 卸载了我的 XAMPP 和 mysql。如何在之前未导出数据库的情况下恢复文件?
由于某种原因,将旧的数据库文件复制到新的数据库数据目录中是行不通的。
我把这个扔给有需要的人,因为我花了好几个小时才修好,而且一旦你知道怎么做就很容易了。不需要神秘的 SQL 导入命令或高级 shell 命令。
【问题讨论】:
您可以简单地搜索 DBA 站点(这毕竟不是编程问题,而是管理员问题),或者 SO(无论出于何种原因,人们在这里提出各种与 IT 相关的问题)一个解法。如果您将解决方案添加到其中一个较旧的问题中以便将解决方案集中在一个地方,那就更好了。 【参考方案1】:数据库数据默认存储在 C:\xampp\mysql\data\ 或类似目录中。文件夹是数据库表。在每个文件夹中,.frm 文件是列。 .ibd 保存行值。
首先在 phpMyAdmin 中创建数据库。
在菜单 Recover structure > From .frm file 下获取从该站点生成的 SQL 查询:
https://recovery.twindb.com/
上传每个 .frm 文件,然后将这些查询复制并粘贴到 SQL 命令中以在 PHPMyAdmin 中创建表。
然后,在每个表上,执行以下 SQL 查询:
ALTER TABLE table_name DISCARD TABLESPACE
这将自动从数据库目录中删除新的 .ibd 文件。 将旧的 .ibd 文件复制到数据库文件夹中。 运行以下命令再次激活表:
ALTER TABLE table_name IMPORT TABLESPACE
就是这样!您应该能够再次查看和访问所有旧值。
【讨论】:
twindb 死了 ;)以上是关于仅使用 .frm 和 .ibd 文件恢复 MySQL 数据库[重复]的主要内容,如果未能解决你的问题,请参考以下文章