设置innodb_log_file_size会导致MySQL崩溃

时间:2008-11-24 16:58:33

标签: mysql database innodb logfile

所以,我希望能够将最大日志文件大小设置为64M,但在使用innodb_log_file_size=64M之后,MySQL启动正常,但似乎没有任何工作正常。

编辑:并且恰当地说我的意思是根本没有。设置其他InnoDB变量不会导致任何问题。

我该如何解决这个故障?

3 个答案:

答案 0 :(得分:4)

确保MySQL干净地关闭,并从MySQL数据目录(通常为ib_logfile*)删除(或移动到其他地方)所有/var/lib/mysql/文件。

我已经测试过并为我工作过。这是source of this hint

InnoDB在show table status评论字段中报告了一些错误。您将在MySQL错误日志(MySQL数据目录中的hostname.err)中找到其他问题。

答案 1 :(得分:2)

我也遇到了这个问题,根据@ porneL的回答,这是我的具体bash步骤来纠正这个问题:

service mysql stop              # Stop MySQL
rm /var/lib/mysql/ib_logfile0   # Delete log file 1
rm /var/lib/mysql/ib_logfile1   # Delete log file 2
vim my.conf                     # Change innodb_log_file_size = 64M
service mysql start             # Start MySQL

我在MySQL forums上找到了这些具体步骤。

答案 2 :(得分:1)

在更改innodb_log_file_size之前,您必须从中清除所有剩余的交易数据。您只需将innodb_fast_shutdown设置为0或2。

  • innodb_fast_shutdown = 0:InnoDB在关闭之前执行缓慢关闭,完全清除和插入缓冲区合并
  • innodb_fast_shutdown = 2:InnoDB刷新日志并关闭冷,好像MySQL崩溃了;没有提交的事务会丢失,但崩溃恢复操作会使下一次启动需要更长的时间。

鉴于此,这就是你如何处理它

mysql -ANe"SET GLOBAL innodb_fast_shutdown = 2"
vi /etc/my.cnf                  # Change innodb_log_file_size = 64M
service mysql stop              # Stop MySQL
rm /var/lib/mysql/ib_logfile0   # Delete log file 1
rm /var/lib/mysql/ib_logfile1   # Delete log file 2
service mysql start             # Start MySQL