MYSQL: Error writing file (No space left on device)
Este error ocurre cuando el servidor de base de datos MySQL se queda sin espacio en disco para escribir archivos temporales. Para solucionar este error, puedes seguir los siguientes pasos:
- Identifica el archivo que está causando el problema. Para hacer esto, abre la consola de MySQL y ejecuta el siguiente comando:
SHOW VARIABLES LIKE 'tmpdir';
Este comando mostrará la ruta del directorio temporal que está usando MySQL. Luego, ejecuta el siguiente comando para encontrar los archivos temporales que están ocupando espacio:
SELECT * FROM information_schema.global_status WHERE variable_name LIKE 'created_tmp_files';
Este comando mostrará el número de archivos temporales que ha creado MySQL. Si este número es alto, es probable que sea la causa del error.
- Limpia los archivos temporales antiguos. Para hacer esto, ejecuta el siguiente comando:
FLUSH TABLES;
Este comando cerrará todas las tablas abiertas en MySQL y eliminará todos los archivos temporales que ya no son necesarios.
- Asegúrate de que tienes suficiente espacio en disco para MySQL. Para hacer esto, ejecuta el siguiente comando:
df -h
Este comando mostrará el espacio disponible en cada partición de disco en tu sistema. Si la partición que contiene el directorio temporal de MySQL está llena, es necesario liberar espacio en ella.
- Si el problema persiste, puedes cambiar la ubicación del directorio temporal de MySQL a una partición con más espacio libre. Para hacer esto, sigue los siguientes pasos:
a. Edita el archivo de configuración de MySQL, que suele llamarse my.cnf o my.ini, dependiendo del sistema operativo.
b. Busca la línea que comienza con tmpdir y cambia la ruta del directorio temporal a una partición con más espacio libre.
c. Guarda el archivo y reinicia el servidor de MySQL para que los cambios tengan efecto.
Espero que estos pasos te ayuden a solucionar el error “Error writing file (No space left on device)” en MySQL.
Si está trabajando con MySQL y tienes el siguiente error, esta es la solución: MYSQL: Error writing file
Error writing file '/tmp/pTdf4iTz' (Errcode: 28)
Lo primero que debemos hacer es ver el problema y ver si hay una posible solución:
# perror 28 OS error code 28: No space left on device
El problema es que ya no hay espacio libre en el directorio temporal sobre el que trabaja MySQL. Para comprobar cual es este ejecutemos el siguiente comando.
mysql> show variables like 'tmpdir'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | tmpdir | /tmp | +---------------+-------+ 1 row in set (0.00 sec)
Con esto comprobamos que no hay espacio en la carpeta temporal.
shell> df -hP /tmp S.ficheros Size Used Avail Use% Montado en /dev/mapper/vg0-tmp 504M 93M 387M 20% /tmp
SOLUCIÓN
Optimizar más nuestr query o darle un directorio temporal a MySQL con más espacio libre para que la query se pueda ejecutar correctamente.