在没有 InnoDB 日志文件的情况下挽救无法访问的 MySQL 数据库

在没有 InnoDB 日志文件的情况下挽救无法访问的 MySQL 数据库

在过去的几周里,我一直在研究我们的测试 MySQL 服务器的配置,没有首先制作一个mysqldump在其上运行的应用程序。目的是提高性能并启用lowercase_names。我尝试调整 InnoDB 日志文件大小,为此我必须删除(例如,重命名)InnoDB 日志文件才能重新创建它们。最后,我恢复了旧日志文件并注释了所有 InnoDB 日志文件选项,将选项保留lowercase_names=1在 Linux 中。

今天我发现最旧的应用程序的数据库无法访问。虽然SHOW TABLES;报告所有表,但执行时SELECT * FROM TABLE显示ERROR 1146 (42S02): Table 'TABLE' doesn't exist

  • 我仍然有原始ibdata1文件,我从未备份过
  • ib_logfile[01]我有文件备份
  • 我尝试设置innodb_force_recovery到 6,但仍然出现同样的错误

我已经转储了所有其他正在工作的数据库。

我怎样才能挽救给定文件的最后一个文件?

答案1

这不是 InnoDB 日志文件或其他什么的问题。

当我调整数据库配置时,我的目标是使能够 lowercase_names因为我们的一个应用程序有硬编码查询。这最终破坏了我试图挽救的数据库查询。

您永远无法恢复使用不同名称大小写创建和填充的数据库。因此,解决方案是暂时注释掉lowercase_names倾倒并从中恢复。

相关内容