在过去的几个星期里,我一直在玩我们testingMySQL服务器的configuration, 而不是先运行一个mysqldump的应用程序。 目标是提高性能并启用lowercase_names 。 我试图调整InnoDB日志文件的大小,为了重新创buildInnoDB日志文件,我必须删除(比如重命名)InnoDB日志文件。 最后,我还原了旧的日志文件,并对所有InnoDB日志文件选项进行了注释,在Linux中保留了lowercase_names=1选项。
今天我发现最老的应用程序的数据库是无法访问的。 SHOW TABLES; 报告所有的表,但做SELECT * FROM TABLE说ERROR 1146 (42S02): Table 'TABLE' doesn't exist 。
ibdata1文件,我从来没有备份过 ib_logfile[01]文件的备份 innodb_force_recovery设置为6,但我仍然得到相同的错误 我已经倾销了所有其他工作的数据库。
这不是InnoDB日志文件或任何问题。
当我调整数据库configuration时,我的目标是启用 lowercase_names因为我们的一个应用程序有硬编码查询 。 这最终打破了我试图挽救的DB的查询。
你永远无法恢复创build和填充不同的名字框的数据库。 因此,解决scheme是临时评论lowercase_names , 转储并从中恢复恢复。