InnoDB provides no means to repair corrupted table space. Once a table got corrupt the only way to repair MySQL files is to start it with innodb_force_recovery={4,5,6} in hope that you can dump the table, so you can rebuild the table space from scratch. At least this is what the manual says. But let’s take a closer look at InnoDB corruption. In some case you can repair InnoDB table space much faster.
UPDATE: If corruption is in PRIMARY index check post Recover Corrupt MySQL Database
What InnoDB provides to repair tablespace corruption
InnoDB doesn’t let you repair the table space, but you can rebuild secondary indexes with ALTER TABLE DROP/ADD KEY. That may be very useful in case corruption malformed pages where secondary index is stored.
So, before starting a whole story with innodb_force_recovery, dump, drop, create and reload …
[Read more]