9

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

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

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

那里还有其他数据,但如果我至少能得到电子邮件地址,我会没事的。

如何恢复这个数据库?我愿意花钱请人来解决这个问题。

4

3 回答 3

16

这属于服务器故障。

首先,.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. 利润
于 2010-02-22T21:22:10.803 回答
0

我有一个类似的问题,原来 MySQL InnoDB 引擎已关闭(我能够通过 phpMyAdmin 检查,bash pro 可以告诉你如何以其他方式进行操作)。就我而言,这很简单,就像重新启动 MySQL 一样,但是如果那里发生了变化,您可能需要检查您的配置。

于 2011-04-09T15:52:16.140 回答
-1

您可以尝试以下命令: CHECK TABLE tablename

如果这给出“损坏”消息,请尝试:

修复表表名

实际上这些并没有解决我的类似问题,但它们可能对某人有用。

于 2011-09-07T08:55:52.020 回答