Receio que você não possa descartar o banco de dados.
O problema vem da tabela que está corrompida. Não é necessariamente o .ibd
arquivo. É, mais do que provável, a entrada do dicionário de dados no ibdata1 ( consulte a representação pictórica do ibdata1 ).
Eu escrevi sobre isso de volta Mar 02, 2012
: Tabela InnoDB SELECT retorna ERRO 2006 (HY000): O servidor MySQL se foi (após uma queda de energia)
Embora tedioso, eis o que você pode fazer para salvar as outras tabelas nesse banco de dados corrompido bad_db
:
PASSO 01) USE bad_db
PASSO 02) Corra SELECT COUNT(1) FROM tablename;
para todas as tabelas em bad_db
. Colete todos os nomes de tabelas que não travam o mysqld quando você tenta executar a contagem.
PASSO 03) Corra mysqldump -u... -p... bad_db table1 table2 ... tableN > bad_db_goodtables.sql
para todas as tabelas que não travaram o mysqld.
Se você usar um nome de banco de dados diferente, recarregue bad_db_goodtables.sql
-o nesse novo banco de dados.
Se você precisa que o banco de dados seja o mesmo nome, BAD NEWS !!! Você terá a revisão ibdata1. Há mais etapas:
PASSO 04) mysqldump todos os outros bancos de dados em arquivos de despejo separados
ETAPA 05) Execute a limpeza da infraestrutura do InnoDB ( consulte minha Oct 29, 2010
publicação do StackOverflow )
PASSO 06) Recarregue todos os outros bons bancos de dados do mysqldumps.
De uma chance !!!