25 de junio de 2013

Error 2002 en MySQL Server en Linux

Algunas veces resolver problemas simples en GNU-Linux se pueden tornar confuso. Uno de estos casos, puede suscitarse cuando nos vemos enfrentados a la rutina de actualizar el sistema operativo de nuestro servidor de producción, por razones de seguridad.

Naturalmente, siempre debemos implementar procesos de backup efectivos para el servidor. De modo que una vez efectuado el proceso la actualización de Linux, tengamos a ruta de retorno, si una o varias de las aplicaciones web que soporta el servidor de producción, funcionan con problemas o simplemente dejan de funcionar.

En nuestro caso, después de la actualización de Linux Ubuntu:

sudo apt-get update
sudo apt-get upgrade

El servicio MySQL dejó de funcionar, entregando el siguiente mensaje de error al intentar ingresar a la consola de administración:

ERROR 2002 (HY000): Can't connect to local MySQL server 
through socket '/var/run/mysqld/mysqld.sock' (2)


Resolviendo el problema de MySQL

El mensaje de error es medianamente claro, pero la situación que generaba este error, en nuestro caso era absurdamente simple.

Todo se originó por una falta de control del tamaño de los archivos logs, que habían consumido el espacio de almacenamiento en la partición del disco. Era muy simple darse cuenta de ello, pero el mensaje de error MySQL no ayudaba mucho.

Para evidenciar el problema, sólo fue necesario ejecutar desde la terminal, el comando para conocer cuanto es el espacio de disco utilizado:

df -h

Sólo observando el porcentaje de uso de la partición del disco '/dev/xvda' se pudo detectar el problema.

Así, todo el problema de MySQL se resuelve despejando un poco de espacio en el disco o aumentando de tamaño la partición.

Conclusión

Los archivos logs soy muy útiles como recursos para hacer seguimiento de un problema o condición inesperada. Sin embargo, como estos archivos por su naturaleza crecen en forma indefinida, se hace necesario imponer medidas para mantenerlos bajo control.

Una solución efectiva es el uso de LOGROTATE, que en este caso, hubiera evitado el origen todo el problema.