O seguinte funcionou para o meu:
-
Defina innodb_force_recovery =1 no seu my.cnf
-
Tente fazer com que seu mysqld reinicie. Caso contrário, repita a etapa 1 e incrementinnodb_force_recovery por cada um até ser bem-sucedido. Use o guia para ajudá-lo a entender o que está acontecendo cada vez que você o incrementa:http://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html
-
Uma vez que o mysqld está rodando, tente e despeje todos os seus bancos de dados
- Se isso não funcionar, você terá que tentar primeiro no nível do banco de dados
- Se isso não funcionar, você terá que tentar no nível da mesa
-
Assim que um deles for bem sucedido e todos os seus db's ou todas as suas tabelas forem exportadas, pare o mysqld
-
Mova seu ib_logfile*> ib_logfile*.bak. Estes estão normalmente em seu diretório de dados mysql.
-
Se na primeira etapa você incrementou seu innodb_force_recovery => 4, você precisa configurá-lo abaixo de 4. A partir de 5.6.15, uma configuração innodb_force_recovery de 4 ou mais coloca o InnoDB no modo somente leitura.
-
Inicie o servidor mysqld
-
Importe seus bancos de dados ou tabelas exportados
-
Incrementou seu innodb_force_recovery => 1
-
Reinicie o servidor mysqld