我要说明mysql不是我的事情。我非常精通MSSQL,但在涉及到mysql时感觉自己像个白痴。
截至昨天下午,我们在遗留的本土应用程序上有一个数据库,似乎几乎所有数据都消失了。对于数据库中的大多数表也是如此,但phpMyAdmin显示了articles表的以下内容:
Records: 0
Type: MyISAM
Size 1.0 KB
根据etc / my.cnf,datadir是var / lib / mysql。在该目录中,有一个数据库文件夹。它包含每个表的FRM,MYD和MYI文件。我可以在文本编辑器中打开文件,它们包含已消失的数据。例如,文章文件(phpMyAdmin说有0条记录和1.0 KB):
articles.frm: 9 KB
articles.MYD: 4450 KB
articles.MYI: 2083 KB
根据我的理解,行数据存储在MYD中。因为我可以读取该文件中的行(不是非常友好,但显然仍然存在),我希望mysql向我显示相同的数据,但它表示它是空的。
我不知道它是否会影响接下来的步骤,但这是在CentOS 4.8上运行mysql 4.1.22。我知道......他们都老了,维护得很差。
我一直假设我的一位用户删除了所有内容,但我们没有为此PC制定备份策略,而且我不知道这是系统故障还是用户干预。老实说,我希望在我们转换到替代品之前,它会再跛行几周......它一定知道它正在被替换。
对于我能做些什么来获取这些数据的任何建议都将非常感谢!
谢谢!
答案 0 :(得分:0)
您可以在表格中看到的记录.MYD标记为删除,它们将在您修复表格时消失。 您可以尝试恢复它们,请参阅http://mysqlbugs.blogspot.cz/2007/08/how-to-undelete-rows-from-fixed-length.html,但第一列的内容将丢失。当然,这只适用于MyISAM引擎表。