Forcing InnoDB Recovery innodb_force_recovery  is 0 by default (normal startup without forced recovery). The permissible nonzero values for  innodb_force_recovery  are 1 to 6. A larger value includes the functionality of lesser values. For example, a value of 3 includes all of the functionality of values 1 and 2. If you are able to dump your tables with an  innodb_force_recovery  value of 3 or less, then you are relatively safe that only some data on corrupt individual pages is lost. A value of 4 or greater is considered dangerous because data files can be permanently corrupted. A value of 6 is considered drastic because database pages are left in an obsolete state, which in turn may introduce more corruption into B-trees and other database structures. As a safety measure,  InnoDB  prevents  INSERT ,  UPDATE , or  DELETE  operations when innodb_force_recovery  is greater than 0. An  innodb_force_recovery  setting of 4 or greater places  InnoDB  in read-only mode. Lets the server run even if it detects a corrupt page. Tries to make  SELECT * FROM  tbl_name  jump over corrupt index records and pages, which helps in dumping tables. Prevents the master thread and any purge threads from running. If an unexpected exit would occur during the purge operation, this recovery value prevents it. Does not run transaction rollbacks after crash recovery. Prevents insert buffer merge operations. If they would cause a crash, does not do them. Does not calculate table statistics. This value can permanently corrupt data files. After using this value, be prepared to drop and recreate all secondary indexes. Sets  InnoDB  to read-only. Does not look at undo logs when starting the database:  InnoDB  treats even incomplete transactions as committed. This value can permanently corrupt data files. Sets  InnoDB  to read-only. Does not do the redo log roll-forward in connection with recovery. This value can permanently corrupt data files. Leaves database pages in an obsolete state, which in turn may introduce more corruption into B-trees and other database structures. Sets  InnoDB  to read-only. You can  SELECT  from tables to dump them. With an  innodb_force_recovery  value of 3 or less you can  DROP  or  CREATE  tables.  DROP TABLE  is also supported with an  innodb_force_recovery  value greater than 3.  DROP TABLE  is not permitted with an  innodb_force_recovery  value greater than 4. If you know that a given table is causing an unexpected exit on rollback, you can drop it. If you encounter a runaway rollback caused by a failing mass import or  ALTER TABLE , you can kill the  mysqld  process and set  innodb_force_recovery  to  3  to bring the database up without the rollback, and then  DROP  the table that is causing the runaway rollback. If corruption within the table data prevents you from dumping the entire table contents, a query with an ORDER BY  primary_key  DESC  clause might be able to dump the portion of the table after the corrupted part. 3392 • 2  ( SRV_FORCE_NO_BACKGROUND ) • 1  ( SRV_FORCE_IGNORE_CORRUPT ) • 3  ( SRV_FORCE_NO_TRX_UNDO ) • 4  ( SRV_FORCE_NO_IBUF_MERGE ) • 5  ( SRV_FORCE_NO_UNDO_LOG_SCAN ) • 6  ( SRV_FORCE_NO_LOG_REDO )