我使用MySQL企业备份,但我现在必须恢复一个表。 我不想触摸我现有的表但是我想将一个数据库恢复到一个新的数据库中,这样我就可以查看旧的值并只从中获取几个数据。
我已将application-log应用于要恢复的数据库。 然后我创建了一个名为XY的新数据库,并将“appy-log”操作后生成的所有文件放入XY文件夹中的mysql数据文件中。
我确实看到了所有表格,但当我尝试查询其中任何一个表格时,我收到错误“表格不存在”
如何让mysql将恢复的文件读入新表而不会引起更多问题?
答案 0 :(得分:0)
你不能只在数据目录下移动文件,并期望InnoDB注意到它们。
InnoDB维护着一个“数据字典”,它可以被认为是一本书的目录。这就是InnoDB知道哪些表存在的方式。数据字典由DDL语句更新,例如CREATE,ALTER,DROP,RENAME。但是,如果您将文件实际移动到datadir中,则不会更新。
此处记录了从MySQL Enterprise Backup导入表的方法:Backing Up and Restoring a Single .ibd File。
MySQL 5.6通过transportable tablespace功能引入了一些新的灵活性。
请注意,这两种方法都是一次导入一个表。导入整个数据库没有解决方案。
最终,将备份恢复到单独的MySQL实例,然后访问您需要的一些内容会更容易。帮助您设置MySQL临时实例的一个好工具是MySQL Sandbox。