我使用MySQL企业备份,但现在必须还原一张表。
我不想触摸我现有的表,但是我想将一个数据库还原到一个新数据库中,这样我就可以查看旧值并仅删除其中的几个。

我已将应用日志登录到要还原的数据库。
然后,我创建了一个名为XY的新数据库,并将“ appy-log”操作后生成的所有文件放入XY文件夹中的mysql数据文件中。

我确实看到了所有表,但是当我尝试查询其中的任何一个表时,都会出现错误“表不存在”

如何获得mysql将还原的文件读取到新表中而不引起更多问题?

最佳答案

您不能只是在数据目录下移动文件并期望InnoDB注意到它们。

InnoDB维护着一个“数据字典”,可以将其视为书的目录。这就是InnoDB知道存在哪些表的方式。数据字典由DDL语句(如CREATE,ALTER,DROP,RENAME)更新。但是,如果您将文件物理地移到datadir中,则不会更新。

此处记录了一种从MySQL企业备份中导入表的方法:Backing Up and Restoring a Single .ibd File

MySQL 5.6的transportable tablespace功能引入了一些新的灵活性。

请注意,这两种方法都是一次导入一个表。没有导入整个数据库的解决方案。

最终,将备份还原到一个单独的MySQL实例,然后访问您需要的几件事将变得容易得多。 MySQL Sandbox是帮助您设置MySQL临时实例的一个很好的工具。

关于mysql - 如何从MySQL中的备份创建新数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21237804/

10-16 18:48
查看更多