Recientemente en nuestro blog teníamos el problema «Error establishing database connection». Al tratar de acceder al panel de control Plesk para verificar nuestra base de datos, nos encontramos con que no podíamos acceder al mismo a causa del siguiente error:
Unable to connect to database: mysql_connect() [function.mysql-connect]: Too many connections
0: /usr/local/psa/admin/plib/common_func.php3:108
psaerror(string 'Unable to connect to database: mysql_connect() [function.mysql-connect]: Too many connections')
1: /usr/local/psa/admin/auto_prepend/auth.php3:93
Esto se solucionó editando el archivo de configuración de MySQL (/etc/my.cnf), agregando la siguiente línea en la sección [mysqld]:
max_connections = 500
Luego reiniciamos el servicion MySQL (/etc/init.d/mysqld restart), pero nos encontramos con otro problema al tratar de iniciar nuevamente el servicio:
Timeout error occurred trying to start MySQL Daemon
Fuimos a ver el log de errores de mysqld (var/log/mysqld.log) y nos encontramos con numerosas líneas cono esta:
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
Esto se resolvió de la siguiente manera:
Detener todos los procesos MySQL con killall -9 mysqld. Luego, doble chequeo con ps aux | grep mysql. Finalmente, iniciamos mysql daemon con /etc/init.d/mysqld start y todo volvió a la normalidad.