Saltar al contenido

Método para resolver que una tabla MySQL esté marcada como rota y la última reparación falló

Método 1: buscar y reparar las tablas dañadas

Si se produce este error, indica que una o más tablas de la base de datos están corruptas y requieren reparación. El primer paso para encontrar las tablas que desencadenan el error se encuentra en esta solución. Estas son las medidas que puedes implementar.

Ejecute estos comandos para encontrar la tabla que está marcada como colapsada y necesita ser reparada.

Myisamchk -s / var / lib / mysql/*/*.MYI
MyISAM-table ‘/var/lib/mysql/dbname/nombre de tabla. MYI ‘debería reconstruirse y marcarse como bloqueado.
El comando anterior enumera todas las tablas marcadas como contraídas y deben repararse

Ejecute el comando # myisamchk -r /var/lib/mysql/dbname/nombre de tabla. MYI para reparar la mesa.
Para cada tabla que esté etiquetada como contraída y deba repararse, debe ejecutar este comando. Cada vez, el valor del nombre de la tabla es distinto.

Después de detener el servicio web MySQL, actualice el estado de la tabla para que la CLI de MySQL comprenda que ha verificado y reparado las tablas dañadas. Ejecute el siguiente orden para actualizar el estado de la tabla.
myisamchk -r –update-state /var/lib/mysql/dbname/table_name.MYI
Debe reiniciar el servicio MySQL después de haber actualizado el estado de cada tabla reparada. Ejecute el siguiente orden para iniciar el servicio MySQL.

Iniciar servicio MySQL
Si este método no funciona para usted, puede probar los otros métodos que se detallan a continuación.

 

Método 2: use myisamchk para reparar la mesa

En primer lugar, inicie sesión en su servidor mediante un comando SSH como: ssh root@example.com.
Detenga el demonio/servicio MySQL ejecutando el directorio de servicio del comando de parada MySQL en su base de datos MySQL.
Normalmente el directorio está en /var/lib/mysql. El comando a utilizar es cd / var /lib / mysql/TU NOMBRE DE LA BASE DE DATOS.
Después de eso, ejecute el comando myisamchk – nombre de la tabla myisamchk-r.
Reinicie el servicio MySQL ejecutando el comando MySQL.
Como resultado, puede arreglar la tabla MySQL y usar la CLI de MySQL para consultar tablas en la base de datos. Además, si su base de datos se daña y no puede acceder a ella, puede utilizar los diferentes métodos para recuperar la base de datos MySQL dañada.

 

 

Método 3: diferentes formas de reparar tablas corruptas


Como se analizó en la solución anterior, reparar tablas corruptas es la forma más sencilla de corregir el error. Si bien hemos hablado de una forma de descubrir y reparar tablas corruptas, existen otros métodos que le gustaría explorar. Como resultado, he abordado aquí varios métodos para encontrar y reparar tablas corruptas.

Consultar tablas
Ejecute * .MYI o myisamchk -e * .MYI. Para eliminar datos innecesarios, también puedes utilizar la opción silenciosa. La sintaxis del comando es myisamchk * .MYI

Como he explicado anteriormente, ¿cuáles pueden ser los síntomas de las tablas corruptas? Entonces, el primer paso es verificar la tabla con el siguiente comando.

Utilice el error de ejecución nnn, donde nnn es el número de errores, para obtener más datos sobre el error.

Reparación segura
Después de encontrar tablas corruptas, debes probar el comando

Utilice myisamchk -r -q tbl_name
La -r -q implica «modo rápido de recuperación». Este comando intenta reparar el archivo de índice de la tabla sin tocar el archivo de información. Si por alguna razón no puede reparar la mesa, realice los siguientes pasos.

Utilice el nombre myisamchk-r tbl para crear una copia de seguridad del archivo de información antes de continuar. En este caso -r implica «modo de recuperación».
El comando elimina del archivo de datos filas inexactas y filas eliminadas y recrea el archivo de índice. Sin embargo, si esta fase falla, use myisamchk –safe-recover tbl name para ejecutar el siguiente comando.
Esta técnica de recuperación es antigua y se utiliza cuando falla el modo de recuperación normal.
Dado que el método Safe Recovery es lento al recuperar los datos, debe tener paciencia. Establezca valores clave de tamaño de búfer y ordene las variables de tamaño de búfer en aproximadamente el 25 por ciento de su memoria accesible cuando ejecute myisamchk para acelerar el proceso de recuperación.

3. Reparación difícil

La recuperación no es fácil para todas las tablas. En muchos casos, el archivo de índice falta, destruye el primer bloque de 16 KB del archivo de índice o incluye datos inexactos. Estos se clasifican como difíciles de reparar y requieren una estrategia distinta.

Finalmente, debe generar un archivo de índice nuevo para corregir estos casos. Estas son las medidas que puedes tomar.

Pasos:

Primero, traslade los archivos de datos a un lugar seguro.
El uso del siguiente comando crea un nuevo archivo de datos vacío y un archivo de índice MySQL db_name
ESTABLECER confirmación automática = 1;
TRUNCAR TABLA tbl_name;
Abandonar
Copie el archivo de datos antiguo en el archivo de datos recién generado. Ahora regresa a Safe Repair y realiza las órdenes para recuperar tablas.

 

 

FUENTE: https://www.databasefilerecovery.com/blog/mysql-table-marked-crashed-last-repair-failed.html