某超大型数据库,从以前的VM里面拷出来到现在的电脑上。只有数据文条件FRM MYD MYI。庆幸的是,Myisam,不是INNODB。
本以为很容易就恢复成功了。结果一波三折。
1,ERROR 1017 (HY000): Can't find file: 'tablename' (errno: 2)
直接拷贝数据文件,提示这个错误。
在phpMyAdmin里面查看,所有的表都是“使用中”。
修复,优化都不行。都提示这个错误。
网上搜了很多方案,都不好使。
最后找到这篇:
https://my.oschina.net/u/4319720/blog/3340748
先恢复数据库的建表信息。
拿一个表测试了下,是没问题的。能正确的恢复出来。
然后把原来表的MYD,MYI拷过去。
再次修复,提示:
correct key file for table
这次使用
REPAIR TABLE tablename USE_FRM;
成功搞定。数据记录出来了。。

后来,我发现在原来的数据库目录,直接
mv .myd .MYD
chmod 0640 *
也可以恢复数据。。
气死我了

标签: none

添加新评论