抢救没有InnoDB日志文件的无法访问的MySQL数据库

在过去的几个星期里,我一直在玩我们testingMySQL服务器的configuration, 而不是先运行一个mysqldump的应用程序。 目标是提高性能并启用lowercase_names 。 我试图调整InnoDB日志文件的大小,为了重新创buildInnoDB日志文件,我必须删除(比如重命名)InnoDB日志文件。 最后,我还原了旧的日志文件,并对所有InnoDB日志文件选项进行了注释,在Linux中保留了lowercase_names=1选项。

今天我发现最老的应用程序的数据库是无法访问的。 SHOW TABLES; 报告所有的表,但做SELECT * FROM TABLEERROR 1146 (42S02): Table 'TABLE' doesn't exist

  • 我还有原始的ibdata1文件,我从来没有备份过
  • 我有ib_logfile[01]文件的备份
  • 我已经尝试将innodb_force_recovery设置为6,但我仍然得到相同的错误

我已经倾销了所有其他工作的数据库。

我怎样才能用给定的文件打捞最后一个?

这不是InnoDB日志文件或任何问题。

当我调整数据库configuration时,我的目标是启用 lowercase_names因为我们的一个应用程序有硬编码查询 。 这最终打破了我试图挽救的DB的查询。

你永远无法恢复创build和填充不同的名字框的数据库。 因此,解决scheme是临时评论lowercase_names转储并从中恢复恢复。