我是一个MySQL新闻,我正试图修复我的一个数据库中的一个损坏的表。这是一个简单的IPS论坛,目前在线。今天早些时候,我尝试执行一个mysqldump,并收到了以下错误:
mysqldump: Got error: 1017: Can't find file: 'wcsf_profile_portal_views' (errno: 2) when using LOCK TABLES所以我去看看出了什么事。似乎其中一张桌子是腐败的。我试过使用修复,但我也得到了同样的错误:
mysql> REPAIR TABLE wcsf_profile_portal_views;
+-----------------------------------------------+--------+----------+---------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+-----------------------------------------------+--------+----------+---------------------------------------------------------+
| wecreate_finalforum.wcsf_profile_portal_views | repair | Error | Can't find file: 'wcsf_profile_portal_views' (errno: 2) |
| wecreate_finalforum.wcsf_profile_portal_views | repair | status | Operation failed |
+-----------------------------------------------+--------+----------+---------------------------------------------------------+
2 rows in set (0.00 sec)我查了一下,并在这里尝试了一些建议-- http://www.databasejournal.com/features/mysql/article.php/10897_3300511_2/Repairing-Database-Corruption-in-MySQL.htm
但到目前为止,mysqlcheck和myisamchk都没有进展。
值得注意的是,我使用的是MyISAM。我检查了数据库文件夹,它看起来缺少两个文件:wcsf_profile_portal_views.MYD和wcsf_profile_portal_views.MYI.但是,文件wcsf_profile_portal_views.frm确实存在。因此,我尝试了REPAIR TABLE wcsf_profile_portal_views USE_FRM;,但又收到了Can't open table。
我还找不到是什么导致了腐败。有什么建议吗?
编辑:我不情愿地尝试通过旧的备份恢复表。没有骰子--显然,它已经被损坏了一段时间,而且这个数据库甚至从来没有备份过,因为它一直在失败。我从来没注意到。Fml。这就是你使用WHM的好处!对我来说幸运的是,这不是一个重要的桌子。它是Invision动力板的一部分,我想它会计算个人资料的浏览量。我在本地做了一个新的安装,并将表复制回活动DB,修复了它,现在它似乎可以工作了--我可以成功地mysqldump它,我想现在备份也能工作。
我不会考虑这个问题的答案,因为我没有很好地修复它(数据丢失了),我也没有找到导致腐败的最初原因。也许这是与IPB相关的具体问题。
发布于 2012-08-31 15:32:20
.MYD文件包含表中的底层数据,.MYI文件是表中的索引。如果您丢失了数据,我看不出除了从某种备份中恢复之外,您还能如何恢复。
发布于 2020-02-12 16:58:05
如果文件"tablename.MYI“存在,请在文件夹"data/databaseName”中搜索。如果没有,请在另一个DB (或旧数据库)中获取相同的文件,并将其粘贴到文件夹中。
启动MySQL,并修复表。
我就是这么解决的。
对不起,我的英语太好了。
https://stackoverflow.com/questions/9794271
复制相似问题