How to change innodb_log_file_size safelyBaron Schwartz
If you need to change MySQL’s innodb_log_file_size parameter (see How to calculate a good InnoDB log file size), you can’t just change the parameter in the my.cnf file and restart the server. If you do, InnoDB will refuse to start because the existing log files don’t match the configured size.
You need to shut the server down cleanly and normally, and move away (don’t delete) the log files, which are named ib_logfile0, ib_logfile1, and so on. Check the error log to ensure there was no problem shutting down. Then restart the server and watch the error log output carefully. You should see InnoDB print messages saying that the log files don’t exist. It will create new ones and then start. At this point you can verify that InnoDB is working, and then you can delete the old log files.
The typical error message you’ll see in the client when InnoDB has refused to start due to log file size mismatch looks like this:
ERROR 1033 (HY000): Incorrect information in file...
That really means that InnoDB hasn’t started, and MySQL is trying to access a table with the InnoDB storage engine, which is failing, of course.
- How to Choose the MySQL innodb_log_file_size
- InnoDB performance optimization basics (redux)
- Here’s my favorite secret MySQL 5.6 feature. What’s yours?
- What is a big innodb_log_file_size?
- Measuring the amount of writes in InnoDB redo logs