Tengo el siguiente error con una de nuestras aplicaciones web:
Query3 failed: Error writing file '/tmp/MY1fnqpm' (Errcode: 28) ... INSERT MailList... (removed the rest of the query for security reasons)
Alguna idea: ¿se trata de un problema de espacio en el disco duro de mi servidor?
Respuestas:
Usa el
perror
comando :A menos que los códigos de error sean diferentes en su sistema, su sistema de archivos está lleno.
fuente
while true; do df -h /tmp; sleep 3; done
mientras ejecuta el script para ver cuánto espacio utilizan las tablas temporales.Hemos experimentado un problema similar, y el problema fue que MySQL usó el directorio / tmp para sus necesidades (es la configuración predeterminada). Y / tmp estaba ubicado en su propia partición, que tenía muy poco espacio para grandes solicitudes de MySQL.
Para obtener más detalles, eche un vistazo a esta respuesta: https://stackoverflow.com/a/3716778/994302
fuente
Tuve el mismo problema, pero el espacio en disco estaba bien (solo el 40% de su capacidad). El problema eran los inodos, tenía demasiados archivos pequeños y mis inodos estaban llenos.
Puede verificar el estado del inodo con df -i
fuente
El error significa que no tiene suficiente espacio para crear archivos temporales necesarios para MySQL.
Lo primero que puede intentar es ampliar el tamaño de su
/tmp/
partición. Si está bajo LVM, marque ellvextend
comando.Si no puede aumentar el tamaño de su partición
/tmp/
, puede trabajar en la configuración de MySQL, edite elmy.cnf
/etc/mysql/my.cnf
archivo (normalmente activado ) y busque esta línea:tmpdir = /tmp/
Cámbielo por lo que quiera (ejemplo
/var/tmp/
). Solo asegúrese de tener espacio y asignar permiso de escritura para el usuario mysql en el nuevo directorio.¡Espero que esto ayude!
fuente
Ejecute el siguiente código:
du -sh / var / log / mysql
Quizás los registros binarios de mysql llenaron la memoria. Si es así, siga la eliminación de los registros antiguos y reinicie el servidor. También agregue en my.cnf:
expire_logs_days = 3
fuente
du -sh /var/log/mysql.log
Tuve este mismo error y el problema simplemente no era suficiente espacio en mi máquina virtual. Eliminé algunos archivos innecesarios y comenzó a funcionar nuevamente.
mi asignación de espacio de memoria / disco se veía así
df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 37G 37G 127M 100% / ...
fuente
También puede intentar usar esta línea si la otra no funciona:
du -sh / var / lib / mysql / nombre_base_datos
También puede consultar con su host y ver qué tan grandes permiten que sean sus bases de datos.
fuente
Para los usuarios de xampp: en mi experiencia, el problema fue causado por un archivo, llamado '0' y ubicado en la carpeta 'mysql'. El tamaño era demasiado grande (el mío explotó a unos 256 Gb). Su eliminación solucionó el problema.
fuente
Este error ocurre cuando no tiene suficiente espacio en la partición. Por lo general, MYSQL usa / tmp en servidores Linux. Esto puede suceder con algunas consultas porque la búsqueda estaba devolviendo una gran cantidad de datos o posiblemente simplemente examinando una gran cantidad de datos creando grandes archivos temporales.
Edite su /etc/mysql/my.cnf
p.ej
Debería asignarse con más espacio que / tmp que suele estar en su propia partición.
fuente
Hoy. Tengo el mismo problema ... mi solución:
1) verifique el inodo:
df -i
vi:root@vm22433:/etc/mysql# df -i Filesystem Inodes IUsed IFree IUse% Mounted on udev 124696 304 124392 1% /dev tmpfs 127514 452 127062 1% /run /dev/vda1 1969920 1969920 0 100% / tmpfs 127514 1 127513 1% /dev/shm tmpfs 127514 3 127511 1% /run/lock tmpfs 127514 15 127499 1% /sys/fs/cgroup tmpfs 127514 12 127502 1% /run/user/1002
2) Comencé a buscar qué carpetas usan el número máximo de inods:
for i in /*; do echo $i; find $i |wc -l; done
pronto encontré en la carpeta / home / tomnolane / tmp, que contenía una gran cantidad de archivos.
3) Eliminé la carpeta / home / tomnolane / tmp PROFIT.
4) comprobado:
Filesystem Inodes IUsed IFree IUse% Mounted on udev 124696 304 124392 1% /dev tmpfs 127514 454 127060 1% /run /dev/vda1 1969920 450857 1519063 23% / tmpfs 127514 1 127513 1% /dev/shm tmpfs 127514 3 127511 1% /run/lock tmpfs 127514 15 127499 1% /sys/fs/cgroup tmpfs 127514 12 127502 1% /run/user/1002
está bien.
5)
restart mysql service
- ¡está bien!fuente