Mysql的InnoDB恢复,从死Mac转移到Windows

Mac服务器崩溃之后,我正忙着从InnoDB表中恢复logging。 所有表共享一个数据文件。 我已经将ibdata1和两个日志文件复制到Windows上托pipe的新的mysql服务器以进行恢复,以及我需要的表的单个.frm文件。 到目前为止,复苏已经惨败。

尝试将各种innodb_force_recovery选项与lower_case_table_names选项组合在这些数据文件的副本上,并不能解决问题。 即使正常开始使用这些文件的副本,最初也会检测到崩溃并进行修复,而且其他初创公司不会出错。 删除ib_logfiles并让Mysql在重新启动时重新创build它们并不能解决问题。 将.frm文件名更改为全部小写并重新启动不能解决问题。

SHOW TABLES查询显示表,但是对表本身的任何查询失败,错误1146.当运行innodb_table_monitor ,在输出中我可以清楚地看到表定义(或多或less)和行计数。 查看ibdata1文件的内容,我以纯文本的方式查看所有logging数据,但没有可用的模式来parsing它。

从我可以告诉,这个问题似乎都归结为“错误1146 – 表'db.my_table'不存在”当我尝试引用任何命令或查询中的表。 你看,这个表是用Mac上的大写字符创build的,根据Mysql,Windows无法处理。

任何人都知道解决scheme来提取这些logging?

尝试安装基于UNIX的应用程序子系统安装或提供安装* nix版本的MySQL的能力可能解决您的问题。 从技术上讲,问题不在于窗口无法处理大写字符(窗口肯定可以显示它们),问题一定是mysql在窗口上使用大小写,默认情况下不关心大小写以全部小写forms返回文件名(或者全部大写的某个时候 – 这取决于特定的呼叫)。