Error al descartar la base de datos InnoDB


8

Estoy tratando de colocar una base de datos en mysql, pero cada vez que aparece este error

ERROR 2013 (HY000): Lost connection to MySQL server during query

incluso conectado como root.

Originalmente, tenía una tabla corrupta que no podía recrear, por lo tanto, decidí recrear la base de datos. Tengo un archivo innodb por tabla, no estoy seguro si eso importa.

¿Cómo puedo descartar esta base de datos?

Respuestas:


10

Me temo que no puede soltar la base de datos.

El problema viene de la tabla que está corrupta. No es necesariamente el .ibdarchivo. 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.sqla 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, 2010publicación StackOverflow )

PASO 06) Vuelva a cargar todas las otras buenas bases de datos mysqldumps.

Darle una oportunidad !!!


Muy apreciado Rolando! Fantástica respuesta. Ojalá hubiera una manera de reparar ese db. Me hubiera gustado que fuera el mismo nombre :)
giorgio79

Ejecuté MySQL por un tiempo, si esto sucediera la primera vez el otro día, gracias por la explicación.
webLacky3rdClass

1
¿Cómo puede realizar la limpieza de la infraestructura de InnoDB si no puede eliminar la base de datos y el paso 2 de la limpieza es eliminar todas las bases de datos?
bancer

Probablemente sea una situación rara, pero esto sucedió mientras restauraba un vertedero como trabajo de fondo. La terminal principal murió y la base de datos no se pudo quitar hasta que se cortó la conexión de restauración.
STW
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.