After last time MySQL crashed, the log file has not been working properly. But it is a silent error so I didn’t notice it until now.
InnoDB: Error: page 570 log sequence number 7289495
InnoDB: is in the future! Current system log sequence number 5574939.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: for more information.
The most helpful tips I found is and MySQL InnoDB crash recovery guide for 11.23,11.24 (mysql will not start) and MySQL Forums :: InnoDB :: innodb log sequence error
This one gives answers in a more sophisticated way.
My database is relative small in size so I decided to go with the first two easy recipes. But the “dumpdbs.pl” perl script failed to work because of the mysql root password. I used mysqldump to do the work. Here is what I did:
1) stop mysqld:
sudo service mysqld stop
2) backup all the data :
mysqldump -u root -p --all-databases > all-databases.sql
3) rename the files in case anything bad happens:
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak
mv ibdata1 ibdata1.bak
4) restart mysqld with “innodb_force_recovery=4” in my.cnf :
sudo service mysqld start
Now the “log in the future” problem should be gone with the ibdata1 file reconstructed. But all the data are gone, too.
5) restore the data:
mysql -u root -p < all-databases.sql
6) you need to restart the mysqld again with “innodb_force_recovery=4”:
sudo service mysqld restart
Otherwise you will get another error in your mysql.log file:
InnoDB: Error: table `xxx`.`xx` does not exist in the InnoDB internal
InnoDB: data dictionary though MySQL is trying to drop it.
InnoDB: Have you copied the .frm file of the table to the
InnoDB: MySQL database directory from another database?
InnoDB: You can look for further help from
Now everything should be back to normal, double check if you lost any data. I got lucky. You can delete the .bak file if you want.
NOTE: if your database is huge, the dump and restore process will take a very long time. So you might want to explore the solutions given by the Any better way out of MySQL InnoDB log “in the future”?