我浏览了整个网站,但没有找到这个问题的答案,所以我会问。如果它在这里的某个地方,我很抱歉。
我有一个 MySQL 5.5.15 服务器在旧的 Windows 2003 服务器上运行。由于硬盘驱动器和主板问题,该服务器最终失败。我现在有一台 Windows 2008 服务器。我确保将 MySQL 5.5.15 放在上面,所以第一步我有匹配的软件。
我移动了我拥有的所有数据文件。所以这包括 my.ini、ibdata1 和两个日志文件,一组 mysql-bin 文件,日期从去年 12 月开始。我找不到 .frm 文件。
然后我启动了 mysqld --console 并且它启动得很好。没有错误。
然后我单独启动了 mysql,并要求查看数据库。它只报告了三个默认值——information_schema、mysql 和 performance_schema。当我询问用户时,它具有默认用户。我的 ibdata1 文件是 641mb。
我确实尝试使用 innodb_force_recovery 的各种值启动它 - 没有任何变化。它仍然可以顺利启动,并且仍然只显示其中的数据。
2013 年 9 月 13 日更新 - 去年秋天从 5.1 升级到 5.5 期间,我的系统变得相当混乱。尽管 ini 文件明确表示要将数据放在一个位置,但一定有一个注册表项或其他仍然指向 5.1 的东西。因此,虽然三个主要文件(IBDATA1 等)位于 5.5 目录中,但所有匹配的 .frm 文件都位于 5.1 目录中。
当我在 2003 年的服务器上将所有部分组装在一起时,使用匹配的 5.5 MySQL 软件 POOF,WordPress 五个数据库完全顺利导出,所有数据都通过崩溃。这五个数据库已在新服务器上启动并运行。他们一切都很好。这五个在他们的目录中只有 .frm 文件,并在那里被列为 INNODB。所以数据确实在我拥有的 IBDATA1 文件中。
剩下的三个 UBB 论坛数据库。他们在目录中有 .frm 以及 .myi 和 .myd 文件。.frm 文件表明这些表是 MISAM。升级后我已将它们全部转换为 INNODB。因此,这些 .frm 文件似乎不是与 IBDATA1 文件一起使用的文件。但我在旧 C 盘上找不到任何其他 .frm 文件。我能够成功导出那些 .myi / .myd 文件中的数据——这是去年 12 月我将它们转换为 INNODB 之前的数据状态。这至少让论坛能够使用 8 年左右的数据进行工作——当然,最后 9 个月的数据仍然缺失。INNODB 转换后的所有内容都“捕获”在 IBDATA1 文件中。
我知道我将表转换为 INNODB。我知道我拥有的这个 INNODB 文件(IBDATA1)是正在使用的活动文件,因为我刚刚从中获取了所有 wordpress 内容。显然我现在必须找到“正确的” .frm 文件来配合它——或者找到某种方法从 IBDATA1 文件中提取数据而无需 .frm 文件。或者,我是否可以编辑我拥有的 .frm 文件并将它们从说这些表是 MyISAM(它们的当前状态)更改为说它们是 INNODB(实际上它们是)?
我愿意接受建议。
丽莎