Cómo solucionar el error de base de datos MySQL “Archivo de claves incorrecto para la tabla”

Summary: Este blog discute el error MySQL 'Incorrect Key File for Table' en detalle. Describe las posibles causas detrás del error y las soluciones para corregirlas. Para solucionar el error causado por tablas dañadas, intente utilizar el software Stellar Repair for MySQL. Utilice la versión demo del software para reparar la base de datos y sus tablas corruptas, y previsualice las tablas recuperables para comprobar la integridad de los datos.

Es posible que se encuentre con el error de MySQL ‘Incorrect Key File for Table’ al ejecutar una consulta MySQL de gran tamaño. Por ejemplo, algunos usuarios han informado de que reciben el error al ejecutar una consulta para obtener miles de registros de una tabla utilizando más de un JOIN.

¿Por qué MySQL devuelve el error ‘Incorrect Key File for Table’ al ejecutar una consulta?

El mensaje de error completo de MySQL “Archivo de clave incorrecto para la tabla ‘FILEPATH.MYI’; intente repararlo” sugiere que puede intentar reparar la clave. Mirar tu tabla FILEPATH puede ayudarte a encontrar más detalles sobre el error:

Posibles causas del error MySQL ‘Archivo de claves incorrecto para tabla’ y sus soluciones

Es posible que el error se deba a un problema de espacio en disco o a la corrupción de una tabla MySQL. Siga leyendo para saber cómo puede resolver estos dos problemas.

Causa 1 – Espacio insuficiente en la carpeta temporal (/Tmp)

Nota: No obtendrá el error al ejecutar consultas individuales, pero puede encontrar el error al ejecutar consultas grandes simultáneamente en el mismo Servidor MySQL.

La razón principal por la que se produce el error ‘Incorrect key file’ de MySQL es que su consulta está obteniendo datos mayores que el tamaño de su carpeta /tmp (es decir, la carpeta utilizada para almacenar tablas temporales).

Solución – Cambiar la ubicación de la carpeta ‘/temp

En primer lugar, debes determinar si la partición del disco está llena mirando el tamaño de la carpeta /tmp. Ejecute el comando df con la opción ‘-h’ para comprobar el uso del disco del sistema de archivos de forma legible:

df -h

Si la partición está llena, cambie la ubicación de la carpeta /tmp a un disco con amplio espacio libre. Cambie la ubicación del archivo en el archivo de configuración de MySQL (.cnf).

A veces, la carpeta /tmp es lo suficientemente grande, pero aún así puede llenarse. En ese caso, tendrás que limpiar algo de espacio en la carpeta manualmente.

Causa 2 – Claves o tabla dañadas

La corrupción de la tabla es otra razón que puede provocar el error “Archivo de claves incorrecto para la tabla”.

Solución – Volver a crear o reparar la tabla dañada

Para resolver el problema, elimine o vuelva a crear la tabla dañada y, a continuación, vuelva a insertar los datos.

Por ejemplo, en la siguiente consulta se utiliza la operación ‘DELETE’ para eliminar la tabla, y después se utiliza el comando ‘OPTIMIZE’ TABLE para liberar espacio en disco.

mysql> DELETE tbl_name WHERE id < 200000;

mysql> OPTIMIZE TABLE tbl_name;

Si no puede volver a insertar los datos, intente reparar la tabla. En el caso de las tablas MyISAM, puedes utilizar el comando ‘REPAIR table’ para solucionar la corrupción:

REPAIR TABLE tbl_name USE_FRM;

Este comando sólo funcionará en tablas MyISAM. Para reparar tablas con el motor de base de datos InnoDB, consulte las mejores formas de reparar la corrupción de tablas InnoDB en MySQL. Pero, ejecutar un comando de reparación para cada una de las tablas de la consulta puede ser un proceso largo y lento.

¿Qué más se puede hacer para reparar tablas dañadas?

Utilice el software Stellar Repair for MySQL para reparar tablas dañadas. El software ayuda a reparar la base de datos MySQL y todos sus objetos rápidamente en unos pocos clics. Recupera todos los datos de la base de datos dañada sin pérdida de datos.

Conclusión

Cuando se encuentra con el error de MySQL ‘Incorrect Key File for Table’, lo primero que debe hacer es comprobar la ubicación de la carpeta /tmp para asegurarse de que tiene suficiente espacio en disco para almacenar tablas temporales. Si no es así, cambie la ubicación de la carpeta a un disco que tenga suficiente espacio libre. Si no hay ningún problema con el espacio en disco, lo más probable es que la tabla de la base de datos esté dañada y necesite ser reparada. Si no puede reparar la tabla manualmente, puede utilizar el software de MySQL database repair.

Related Post

Exit mobile version