0

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

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

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

如果我运行 check table sometablename,我会发现该表不存在。如果我尝试创建一个同名的表,我会发现该表已经存在。

我已经停止并启动了 MYSQL 服务好几次,希望它会拿起新的 frms,但什么也没有。

任何的想法?

4

1 回答 1

2

您无法通过简单地加载数据库目录的内容来恢复数据库。InnoDB 将其他信息存储在 MySQL 主数据目录中的一些主文件中。

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

于 2012-11-05T20:08:41.693 回答