En primer lugar, debe saber que las claves y los índices son sinónimos en MySQL.Si nos fijamos en la documentación acerca de la CREATE TABLE Syntax, se puede leer:
KEY
es normalmente sinónimo de INDEX
. El atributo clave PRIMARY KEY
también se puede especificar como KEY
cuando se especifica en una definición de columna. Esto se implementó para compatibilidad con otros sistemas de bases de datos.
Ahora, el tipo de error que está recibiendo puede ser debido a dos cosas:
- problemas de disco en el servidor MySQL
- dañados llaves/mesas
En el primer caso, verá que agregar un límite a su consulta podría resolver el problema temporalmente. Si eso lo hace por usted, probablemente tenga una carpeta tmp
que es demasiado pequeña para el tamaño de las consultas que está tratando de hacer. ¡Entonces puede decidir o hacer tmp
más grande, o para hacer sus consultas más pequeñas! ;)
A veces, tmp
es lo suficientemente grande pero todavía se llena, deberá realizar una limpieza manual en estas situaciones.
En el segundo caso, hay problemas reales con los datos de MySQL. Si puede volver a insertar los datos fácilmente, le aconsejaría simplemente dejar/volver a crear la tabla, y volver a insertar los datos. Si no puede, puede intentar reparar la mesa en su lugar con REPAIR table. En general, es un proceso largo que podría fallar.
Mira el mensaje de error completo se obtiene: archivo de clave
incorrecta para la tabla 'FILEPATH.MYI'; intente repararlo
Menciona en el mensaje que usted puede intentar repararlo. Además, si nos fijamos en la FILEPATH real que se obtiene, se puede encontrar más información:
si se trata de algo así como /tmp/#sql_ab34_23f
que significa que MySQL necesita para crear una tabla temporal, debido al tamaño de la consulta. Lo almacena en/tmp y no hay suficiente espacio en su/tmp para esa tabla temporal.
si contiene el nombre de una tabla real en su lugar, significa que es muy probable que esta tabla esté dañada y debe repararla.
Si se identifica que su problema está relacionado con el tamaño de/tmp, acabo de leer esta respuesta a una pregunta similar para la revisión: MySQL, Error 126: Incorrect key file for table.
Obtengo esto también con vistas –
la carpeta tmp tiene un límite generalmente de 2GB, prueba df -h para verlo –
Si has hecho una 'TABLA DE REPARACIÓN' y sigues obteniendo esto, además hay espacio en '/ tmp' entonces quizás quieras intentar reiniciar el servidor. – icc97