我有一个数据库(所有MyISAM表)和运行MySQL的机器不再可启动。但是,我们拥有数据目录中的所有MySQL数据文件。如何从MYD和FRM文件或我在数据目录中查看的其他文件中恢复数据?
我一直在搜索这个问题听起来像MyISAM我应该能够将数据库子目录从旧的MySQL数据目录复制到新的MySQL数据目录。但是,这对我不起作用。我正在尝试恢复的数据库名称的数据库显示在phpMyAdmin的数据库列表中,但是所有表都显示“正在使用”并且没有信息(例如,行数,字节数,列信息)等)。对这些表的任何操作(例如,SELECT * FROM {table},REPAIR {table},CHECK {table})都会返回“no such table”错误。
我在搜索中遇到的一个工具是MicroOLAP的DBACentral。它有应该从FRM / MYD文件恢复数据的组件,但是当我尝试运行它时,它没有列出任何可以从我的FRM / MYD文件中恢复的表。
这是在运行Vista Business 32bit的开发人员工作站上。 MySQL版本是5.0.27。在修好机器之后,我去了完全相同版本的MySQL(v5.0.27),认为如果我只是要放入二进制数据文件,我应该使用相同版本的MySQL。它仍然无效。
任何见解都将不胜感激......谢谢!
-Josh
答案 0 :(得分:2)
USE mysql;
并在每张桌子上运行REPAIR TABLE <table name>
。提示:确保2个目录具有相同的权限,如数据目录
如果您没有保存mysql
数据库(旧服务器的数据目录中的mysql目录,那么您可以尝试:
答案 1 :(得分:0)
我放弃了。我认为答案是,使用我特定版本的MySQL,这不起作用。希望事情有所改善。