恢复MYSQL时并非所有表都显示

时间:2012-11-05 20:05:41

标签: mysql disaster-recovery

我正在使用表恢复丢失的mysql数据库并拥有frm文件和ibdata1。

我使用innodb_file_per_table使每个数据库都有自己的数据文件,测试表明新数据库现在在创建时使用了这个系统。

我注意到当我查看新导入的frms和数据或者针对它们编写任何SQL时,它们都没有找到。有几个“视图”可用,但没有表格。

如果我运行check table sometablename,我知道该表不存在。 如果我尝试创建一个具有相同名称的表,我会得知该表已经存在。

我已经停止并多次启动MYSQL服务,希望它能拿起新的frms,但什么都没有。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

只需加载数据库目录的内容即无法恢复数据库。 InnoDB将其他信息存储在主MySQL数据目录中的一些主文件中。

恢复所有数据的唯一可靠方法是使用mysqldump和恢复过程,或者在复制MySQL数据目录的整个内容之前FLUSH WITH WRITE LOCK。建议不要将此方法用于生产系统,因为它会在此操作期间锁定整个数据库。