Si trabajando con MySQL obtenéis el siguiente error,
Error writing file '/tmp/pTdf4iTz' (Errcode: 28)
Lo primero que deberíais de hacer, no antes este error, sino ante cualquier, es mirar qué significa. Para ello,
# perror 28 OS error code 28: No space left on device
Por lo que parece, todo apunta a que no hay espacio libre en el directorio temporal sobre el que trabaja MySQL. Para comprobar cual es este,
mysql> show variables like 'tmpdir'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | tmpdir | /tmp | +---------------+-------+ 1 row in set (0.00 sec)
Y ahora comprobamos si efectivamente hay o no espacio libre y obtenemos lo siguiente,
shell> df -hP /tmp S.ficheros Size Used Avail Use% Montado en /dev/mapper/vg0-tmp 504M 93M 387M 20% /tmp
Tenemos un 80% de espacio libre y aun así nos está fallando la query por falta de espacio.
La explicación
MySQL cuando realiza una query emplea espacio temporal y al finalizarla y devolver los datos, borra ese fichero temporal. Lo que está sucediendo es que el espacio libre, sí esos casi 400 Mb no son suficientes para manejar el fichero temporal que genera la query.
La solución
Optimizar más la query o darle un directorio temporal a MySQL con más espacio libre para que la query se pueda ejecutar correctamente.
Gracias.
ResponderEliminarHola Javier, me ha pasado mucho este problema, pero no logramos identificar cual es la query que genera el problema... Ideal si me puedes ayudar para identificar ¿cual es la query que esta generando este archivo temporal, que no se borra?
ResponderEliminarPrueba a habilitar el log y vernos query que tarda. Si te quedas sin espacio en disco, la query tendría que tardar en ejecutarse.
ResponderEliminar