Me temo que no puede soltar la base de datos.
El problema viene de la tabla que está corrupta. No es necesariamente el .ibd
archivo. Es, más que probable, la entrada del diccionario de datos dentro de ibdata1 ( Ver representación gráfica de ibdata1 ).
Escribí sobre esto de nuevo en Mar 02, 2012
: la tabla InnoDB SELECT devuelve ERROR 2006 (HY000): el servidor MySQL se ha ido (después de un corte de energía)
Aunque tedioso, esto es lo que puede hacer para guardar las otras tablas en esa base de datos corrupta bad_db
:
PASO 01) USE bad_db
PASO 02) Ejecutar SELECT COUNT(1) FROM tablename;
para cada mesa en bad_db
. Recopile todos los nombres de tabla que no bloqueen mysqld cuando intenta ejecutar el recuento.
PASO 03) Ejecutar mysqldump -u... -p... bad_db table1 table2 ... tableN > bad_db_goodtables.sql
para todas las tablas que no se bloquearon mysqld.
Si va a usar un nombre de base de datos diferente, vuelva bad_db_goodtables.sql
a cargar en esa nueva base de datos.
Si necesita que la base de datos tenga el mismo nombre, ¡MALAS NOTICIAS! Deberá revisar ibdata1. Hay más pasos:
PASO 04) mysqldump todas las otras bases de datos en archivos de volcado separados
PASO 05) Realice la limpieza de la infraestructura de InnoDB ( consulte mi Oct 29, 2010
publicación StackOverflow )
PASO 06) Vuelva a cargar todas las otras buenas bases de datos mysqldumps.
Darle una oportunidad !!!