"tbl_name.frm" tabla definición (tabla) archivo "tbl_name. MYD "Archivo de datos "tbl_name. Archivo índice MYI" Cada uno de estos 3 tipos de archivo puede sufrir diferentes formas de corrupción, pero el problema suele ocurrir en archivos de datos y archivos índice. mi isamchk crea un ". MYD" (datos) funciona, funciona eliminando el antiguo ". MYD y renombrar el nuevo archivo al nombre original para finalizar la fase de reparación. Si usas --quick, myisamchk no crea un temporal ". MYD", simplemente supongo". MYD" es correcto y solo crea un nuevo archivo de índice, sin tocar". MYD", que es seguro porque myisamchk detecta automáticamente". MYD" está corrompido y en este caso, abandona la reparación. También puedes darle a myisamchk dos opciones: rápidas. En este caso, myisamchk no abandona algunos errores (como repetir claves), sino que intenta modificar el ". MYD" para resolverlos. Normalmente, solo es útil si implementas una solución normal con muy poco espacio libre en disco, usando las dos opciones rápidas. En este caso, al menos deberías hacer una copia de seguridad antes de ejecutar myisamchk. 1. Cómo comprobar los errores en la tabla Para comprobar una tabla, utiliza el siguiente comando: mi isamchk tbl_name Esto detecta el 99,99% de todos los errores. Lo que no puede descubrir es que la corrupción solo está involucrada en los archivos de datos (lo cual es poco común). Si quieres comprobar una tabla, normalmente deberías ejecutar myisamchk sin la opción o usar cualquiera de las opciones -s o --silent. mi isamchk -e tbl_name Realiza una comprobación de datos completamente exhaustiva (-e significa "comprobación extendida"). Hace una comprobación de lectura por clave en cada línea para confirmar que apuntan a la línea correcta. Esto puede llevar mucho tiempo en una mesa grande con muchas teclas. Myisamchk suele detenerse después de encontrar el primer error. Si quieres más información, puedes añadir la opción --verbose(-v). Esto hace que mi error continúe hasta un máximo de 20 errores. En el uso general, un myisamchk simple (sin argumentos distintos al nombre de la tabla) es suficiente. mi isamchk -e -i tbl_name Como el comando anterior, pero la opción -i le dice a myisamchk que imprima algunas estadísticas también. 2. Cómo reparar la mesa El síntoma de una tabla corrupta suele ser una ruptura inesperada de consulta, y puedes ver, por ejemplo, estos errores: "tbl_name.frm" está bloqueado y no puede cambiarse. No he podido encontrar el archivo "tbl_name. MYI"(Errcode :###)。 Obtén el error ### del procesador de tablas (en este caso, el error 135 es una excepción). Fin inesperado del archivo. Los archivos de registro fueron destruidos. En estos casos, debes arreglar la mesa. Myisamchk suele detectar y corregir la mayoría de los fallos. El proceso de reparación consta de hasta 4 etapas, descritas a continuación. Antes de empezar, deberías solicitar permisos al directorio de la base de datos y a los archivos de la lista de comprobación para asegurarte de que son legibles para usuarios de Unix que usan mysqld (y para ti, ya que necesitas acceso al archivo que estás comprobando). Si se niega a modificar el archivo, también deben ser escribibles para ti. Fase 1: Revisa tu tabla ¡Corre mi isamchk *. MYI o (myisamchk -e *. Lo sé si tienes más tiempo). Utiliza la opción -s (silencio) para desactivar la información innecesaria.
El formato de archivo utilizado por MySQL para almacenar datos ha sido probado extensamente, pero siempre existen condiciones externas que pueden causar la corrupción de las tablas de la base de datos: el proceso mysqld se elimina en una sola escritura; Un apagado inesperado del ordenador (por ejemplo, si el ordenador pierde energía); Un error de hardware. Este capítulo describe cómo comprobar y gestionar la corrupción de datos en una base de datos MySQL. Si tu mesa está muy dañada, deberías intentar averiguar por qué. Véase G.1 Depuración de un servidor MySQL. Al realizar la recuperación de fallos, es importante entender que cada tabla en una base de datos tbl_name corresponde a los 3 archivos del directorio de la base de datos |