Error 28 en MySQL. Sin espacio en disco
Hace poco tuve un problema con un servidor: se quedó sin espacio en disco. Al limpiarlo, empezó la base de datos a dar errores. Fuí al log de MySQL y me encontré con muchas líneas de error, pero el que me llamó la atención me decía que «Incorrect key file for table ‘/tmp/#sql_3c51_0.MYI’; try to repair it». Básicamente era que no podía ejecutar SQL grandes porque el espacio en /tmp no era suficiente.
Las soluciones al error pasaban por hacer backup de todas las BD, descargártelas, borrar ciertos archivos y volver a restaurarlas, pero yo dudaba de que ese trabajo sirviera de algo. Entonces encontré esta explicación:
Por defecto, MySQL tiene asignado el directorio /tmp del raíz para hacer sus tareas. Cuando la partición raíz está llena, Debian (o Ubuntu en mi caso), crea en RAM una partición /tmp de 1 mega para que MySQL siga funcionando para las funciones básicas, pero no para traerse datos de uan web, por ejemplo. Si hacemos df -h, veremos una línea parecida a esta:
overflow 1,0M 24K 1000K 3% /tmp
La solución consiste simplemente en borrar esa partición, y volverá a coger el directorio /tmp del raíz. Es decir, hacemos
sudo umount -l /tmp
Y para estar más seguros reiniciaremos el servicio de MySQL. Y todo arreglado.
0 comments