我使用了 MySQL 企业备份,但现在必须恢复一张表。 我不想碰我现有的表,但我想将一个数据库恢复到一个新数据库中,这样我就可以查看旧值并只从中取出一些内容。
我已将日志应用到我想要恢复的数据库。 然后我创建了一个名为 XY 的新数据库,并将“appy-log”操作后生成的所有文件放入 XY 文件夹中,放入 mysql 数据文件中。
我确实看到了所有表格,但是当我尝试查询其中任何一个表格时,我收到错误“表格不存在”
如何让 mysql 将恢复的文件读入新表而不引起更多问题?
最佳答案
你不能只在数据目录下移动文件并期望 InnoDB 注意到它们。
InnoDB 维护一个“数据字典”,可以将其视为书籍的目录。这就是 InnoDB 知道哪些表存在的方式。数据字典由CREATE、ALTER、DROP、RENAME等DDL语句更新。但如果您将文件物理移动到数据目录中,它不会更新。
此处记录了从 MySQL Enterprise Backup 导入表的方法:Backing Up and Restoring a Single .ibd File 。
MySQL 5.6 引入了一些新的灵 active ,其 transportable tablespace功能。
请注意,这两种方法都用于一次导入一个表。没有导入整个数据库的解决方案。
最终,您可以更轻松地将备份恢复到单独的 MySQL 实例,然后访问您需要的一些内容。 MySQL Sandbox 是一个帮助您设置 MySQL 临时实例的好工具。 .
关于mysql - 如何从 mysql 中的备份创建新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21237804/