Hola,
Es probable que el problema es debido a las tablas temporales de mysql. Mysql crea estas tablas en /tmp para poder ejecutar ciertos tipos de consultas. Estas tablas pueden ser muy grandes cuando la consulta incluye muchos filas de la tabla. Puede ser difícil saber lo que está pasando porque mysql va borrando los archivos y por eso no siempre aparecen cuando haces un "ls" o "du" en /tmp. Si /tmp no está 100% lleno cuando lo revisas, pero sigues recibiendo errores el contrario, es muy probable que esto sea el problema.
Una manera para ver el problema es correr un script como el siguiente...
Code:
#!/bin/bash
while [ true ]; do
find /tmp -size +1M -ls
mysqladmin processlist
sleep 5
done
...para ver los archivos grandes en /tmp y la lista de procesos en mysql cada cinco segundos. Esto te dirigirá al usuario o el proceso responsable. Normalmente las consultas que generan tablas temporales muy grandes son ineficientes y se puede lograr el mismo objectivo con una consulta mejor.
- - -
Si el problema de raíz es que no hay suficiente espacio en /tmp, puedes seguir los siguientes pasos para aumentar su tamaño (esto supone que /tmp está montado como un "loopback device" en el archivo /usr/tmpDSK):
1. Prevenir que cPanel reinice los servicios durante esta operación:
Code:
/scripts/restartsrv_tailwatchd --stop
2. Parar los servicios principales que usan tmp:
Code:
/scripts/restartsrv_mysql --stop
/scripts/restartsrv_httpd --stop
3. Asegurar que nada hay otros proceso que están usando /tmp. El siguiente comando muestra una lista de proceso que tienen archivos abiertos dentro de /tmp:
Mata cualquier proceso que todavia está usando /tmp
4. Desmontar /tmp:
5. Editar el script /scripts/securetmp, cambiando el valor de $tmpdsksize al valor deseado:
Code:
vi /scripts/securetmp
Por ejemplo, para crear una partición /tmp que es de 2 digabytes, haría que $tmpdsksiz sea 2097152 como:
Code:
my $tmpdsksize = 2097152;
6. Elminar el archivo que se usa para la partición "loopback" de /tmp:
7. Ejecutar el script:
8. Recrear el enlace simbólico para mysql.sock:
Code:
cd /tmp; ln -s /var/lib/mysql/mysql.sock
9. Reinciar los servicios que se había detenido anteriormente:
Code:
/scripts/restartsrv_tailwatchd --start
/scripts/restartsrv_mysql --start
/scripts/restartsrv_httpd --start
Saludos!