如何从.FRM恢复我的MYI,MYD表

met*_*too 4 mysql phpmyadmin

可能重复:
如何从.myd,.myi,.frm文件中恢复mysql数据库

我在这里看到了这个问题,但老实说无法理解发布的任何解决方案.我刚刚重新安装了windows vista,遇到了一些问题,我就为旧安装的Mysql制作了整个'data'文件夹的副本.原始和新安装的MySQL版本是5.0.85.

phpMyAdmin的原始版本是3.2.1,但我现在安装了最新版本:3.5.3.问题是我丢失了一些MYI和MYD文件,我认为这些是表格和索引文件.存在所有.FRM文件和ibdata1文件(也称为ib_logfile0和ib_logfile2).

这些表在某些屏幕中显示在phpMyAdmin中,例如'assign table level priviledges'下拉菜单 - 所以它们似乎仍然存在,但它们不显示在左列中,它显示了aDB中的所有表.它们是可以恢复还是永远丢失?我会非常感谢任何有助于了解新手的帮助.我以前设置过WAMP但从未遇到过这个问题.

提前谢谢......

cHa*_*Hao 7

这些.frm文件只包含有关表结构的元数据.它们不包含您的数据.

对于MyISAM表,该 .MYD文件基本上是表(没有元数据或索引); 如果它消失了,你的数据就消失了.可能有一种方法可以生成"空"文件并重新开始,但是是的.没有它们,你就没有数据.

这些.MYI文件包含索引AFAIK.那些可以重新生成,但不能没有数据.

但是,如果您的表是InnoDB表,那么您可能会很幸运.InnoDB表没有.MYD或没有.MYI; 将存在于其中的数据将改为ibdata1.你也许可以(停止后的mysqld)简单地潜行.frm和ib*文件到正确的位置,并让mysqld的看到他们在重新启动时.

当然,如果您已经拥有 InnoDB数据文件,这将无法工作- 或者更确切地说,如果它已经存在,您将最终丢失任何现有的InnoDB表.但是,在这种情况下,您可以将文件放入另一个目录并启动指向该目录的mysqld实例.这对于您mysqldump作为SQL的表来说已经足够了,因此您可以将其导入新数据库.