发新话题
打印

mysql InnoDB Incorrect information in file 错误

mysql InnoDB Incorrect information in file 错误

更改了innodb的日志文件大小,即innodb_log_file_size的值,重启mysql之后对innodb的表都会报错:[ERROR] /usr/local/mysql/bin/mysqld: Incorrect information in file: './a/b.frm'。
解决办法
0)确保my.cnf中的innodb_fast_shutdown的值不是2,如果是2则需要先改为1,然后重启使之生效,再关闭mysql删log文件。其默认值是1。
1)备份日志文件ib_logfile
2)删除掉现在的ib_logfile
3)重启MySQL

TOP

修改完/etc/my.cnf的配置一直没有重启,今天重启了一下,看似一切正常,但是却没法访问原有的数据表,出现类似的提示:
Incorrect information in file: './DATABASE_NAME/TABLE_NAME.frm'
仔细查看mysql的错误日志文件,发现提示ib_logfile0文件大小设置不正确:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!

下面即时具体受影响的数据表信息。

显然mysql启动时会对比ib_logfileN和配置里设置的文件大小,可见是我更改innodb_log相关的配置导致的:
> innodb_log_file_size = 256M
> innodb_log_files_in_group = 3
< innodb_log_file_size = 5M
< innodb_log_files_in_group = 2


改回以前配置就没有问题了。

TOP

发新话题