我正在使用表恢复丢失的mysql数据库并拥有frm文件和ibdata1。
我使用innodb_file_per_table使每个数据库都有自己的数据文件,测试表明新数据库现在在创建时使用了这个系统。
我注意到当我查看新导入的frms和数据或者针对它们编写任何SQL时,它们都没有找到。有几个“视图”可用,但没有表格。
如果我运行check table sometablename,我知道该表不存在。 如果我尝试创建一个具有相同名称的表,我会得知该表已经存在。
我已经停止并多次启动MYSQL服务,希望它能拿起新的frms,但什么都没有。
有什么想法吗?
答案 0 :(得分:2)
只需加载数据库目录的内容即无法恢复数据库。 InnoDB将其他信息存储在主MySQL数据目录中的一些主文件中。
恢复所有数据的唯一可靠方法是使用mysqldump
和恢复过程,或者在复制MySQL数据目录的整个内容之前FLUSH WITH WRITE LOCK
。建议不要将此方法用于生产系统,因为它会在此操作期间锁定整个数据库。