我以前保存了 /var/lib/mysql/ddms 目录的副本(“ddms”是架构名称)。现在我通过运行在新安装的 Ubuntu 10.04.3 LTS 上安装了一个新的 MySQL apt-get install mysql-server,我相信安装了 5.1 版。在我复制 /var/lib/mysql 下的 ddms 目录后,它的一些表工作正常,这些表具有一组关联的三个文件:一个 .frm 文件、一个 .MYD 文件和一个 .MYI 文件。
但是,有两个表具有不同的文件集:一个 .frm 文件和一个 .ibd 文件。这两个表没有显示在 phpMyAdmin 的表列表中。当我查看错误日志时,它说:
[ERROR] Cannot find or open table ddms/dictionary_item from
the internal data dictionary of InnoDB though the .frm file for the
table exists. Maybe you have deleted and recreated InnoDB data
files but have forgotten to delete the corresponding .frm files
of InnoDB tables, or you have moved .frm files …Run Code Online (Sandbox Code Playgroud) 我已经从备份中提取了 mysql 的数据目录,需要从旧表中获取模式,但它是来自另一台机器的备份。
我今天已经阅读了大量有关如何执行此操作的教程,但每次似乎都失败了,或者我最终不得不重新安装 mysql,因为 mysql 挂起或崩溃。我尝试了以下方法:
.frm文件中恢复我尝试了各种顺序和组合。
是否有任何外部工具可以从.frm文件中提取模式?如果我打开文件,我可以看到列名。我看了一眼,但似乎找不到任何能让我做到这一点的东西。
提前致谢。