Incluso el formato de tabla MyISAM
es muy
fiable (todos los cambios hechos en una tabla por un comando
SQL se escriben antes que retorne el comando), puede obtener
tablas corruptas si cualquiera de los siguientes eventos
ocurre:
El proceso mysqld muere durante una escritura.
La máquina se apaga inesperadamente.
Fallos de hardware.
Usa un programa externo (como myisamchk) en una tabla que está siendo modificada por el servidor a la vez.
Un bug en el código de MySQL o MyISAM
.
Los síntomas típicos de una tabla corrupta son:
Obtiene el siguiente error al seleccionar datos de una tabla:
Incorrect key file for table: '...'. Try to repair it
Las consultas no obtienen registros en la tabla o retornan datos incompletos.
Puede chequear la salud de una tabla MyISAM
usando el comando CHECK TABLE
, y reparar
una tabla MyISAM
corrupta con
REPAIR TABLE
. Cuando
mysqld no está en ejecución, puede
chequear o reparar una tabla con el comando
myisamchk . Consulte
Sección 13.5.2.3, “Sintaxis de CHECK TABLE
”, Sección 13.5.2.6, “Sintaxis de REPAIR TABLE
”,
and Sección 5.8.3.1, “Sintaxis para invocar myisamchk”.
Si sus tablas se corrompen frecuentemente, debe tratar de
determinar porqué ocurre. Lo más importante es saber si la
tabla se corrompe como resultado de un fallo de servidor.
Puede verificarlo fácilmente buscando un mensaje
restarted mysqld
reciente en el log de
errores. Si encuentra dicho mensaje, es probable que la
corrupción de tabla sea resultado de la caída del servidor.
De otro modo, la corrupción pudo haber ocurrido durante
operaciones normales. Esto es un bug. Debe tratar de crear un
caso de test reproducible que demuestre el problema. Consulte
Sección A.4.2, “Qué hacer si MySQL sigue fallando (crashing)” y
Sección D.1.6, “Crear un caso de prueba tras haber encontrado una tabla corrupta”.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.