如何恢复MySQL数据库:文件中的信息不正确:'./ xxx.frm'

Pau*_* Go 9 mysql disaster-recovery

一个非常重要的数据库已经损坏,它位于共享Web主机的服务器上,我没有备份.该表包含大量非常重要的电子邮件地址.我可以获得一个表列表,但如果我用Navicat或phpMyAdmin打开任何表,我会收到以下错误:

文件中的信息不正确:'./the-table-name.frm'

我能够从Web主机获取与数据库关联的.frm文件.

还有其他数据,但如果我至少可以获得电子邮件地址,我会没事的.

如何恢复此数据库?我愿意付钱给别人解决这个问题.

hob*_*ave 16

这属于serverfault.

首先,.FRM文件不包含任何 "数据".它们只是表格的定义.

如果满足以下所有条件:

  • 该表使用MyISAM存储引擎
  • 您知道CREATE TABLE重新创建表所需的语句

然后,执行以下操作:

  1. 停止MySQL
  2. 备份table_name.frm,table_name.MYI,table_name.MYD文件
  3. 从mysql数据目录中删除它们(通常是/ var/lib/mysql)
  4. 启动MySQL
  5. 再次创建表
  6. 停止MySQL
  7. 将.MYD和.MYI文件复制回datadir,替换那里的文件.
  8. 启动MySQL
  9. ???
  10. 利润