Cómo solucionar el error 'Too many connections' en MySQL en Plesk
¿Tu sitio web se ha vuelto inaccesible de repente y ves un mensaje de error como "Too many connections"? No te preocupes, es un problema común en servidores que usan Plesk y, sobre todo, muy fácil de solucionar. En este artículo te explicaré paso a paso qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo de forma definitiva.
¿Qué significa el error "Too many connections" en MySQL?
Este error aparece cuando el número de conexiones simultáneas a tu base de datos MySQL (o MariaDB) supera el límite máximo permitido por el servidor. Piensa en ello como un restaurante con solo 10 mesas: si llegan 15 grupos de personas, las últimas 5 tendrán que esperar o irse. En el mundo de las bases de datos, cuando se supera el límite, el servidor rechaza nuevas conexiones y muestra el temido mensaje.
[INFO]
El límite predeterminado en muchos servidores con Plesk suele ser de 30 a 100 conexiones simultáneas. Si tu sitio recibe mucho tráfico o alguna aplicación no cierra bien sus conexiones, puedes llegar rápidamente a ese tope.
¿Por qué ocurre el error "Too many connections" en Plesk?
Las causas más frecuentes son:
- Picos de tráfico inesperados: Muchos visitantes simultáneos pueden saturar las conexiones.
- Aplicaciones mal optimizadas: Scripts o CMS (como WordPress, Joomla, etc.) que no cierran conexiones después de usarlas.
- Conexiones persistentes mal configuradas: Algunas aplicaciones mantienen abiertas conexiones innecesarias.
- Ataques DDoS o bots: Tráfico malicioso que abre muchas conexiones.
- Plugins o temas defectuosos: En WordPress, por ejemplo, un plugin mal codificado puede generar conexiones sin cerrar.
[WARNING]
Si el error ocurre de forma repentina y sin aumento de tráfico legítimo, revisa los logs de seguridad. Podría ser un intento de ataque.
Soluciones paso a paso para el error "Too many connections" en Plesk
Voy a mostrarte varios métodos, desde los más rápidos hasta los más avanzados. Elige el que mejor se adapte a tu nivel de conocimiento.
1. Solución rápida: Reiniciar MySQL/MariaDB desde Plesk
A veces, simplemente reiniciar el servicio libera todas las conexiones colgadas.
- Accede a tu panel de Plesk.
- Ve a Herramientas y ajustes (en la barra lateral izquierda).
- Busca la sección Servicios y haz clic en Administrador de servicios.
- Localiza el servicio MySQL o MariaDB (depende de tu versión).
- Haz clic en el icono de reinicio (suele ser un círculo con una flecha).
[TIP]
Este método es temporal. Si el problema se repite, necesitarás aplicar una solución permanente.
2. Aumentar el límite de conexiones en Plesk (método gráfico)
Plesk permite modificar la configuración de MySQL sin tocar archivos de texto.
- En Plesk, ve a Herramientas y ajustes > Ajustes del servidor de bases de datos.
- Busca la opción Número máximo de conexiones (max_connections).
- Cambia el valor a un número más alto, por ejemplo, 150 o 200 si tu servidor tiene suficiente memoria RAM.
- Haz clic en Aceptar y luego reinicia el servicio MySQL como se explicó antes.
[INFO]
No subas el límite de forma excesiva (más de 500) sin consultar con tu proveedor de hosting, ya que cada conexión consume memoria RAM.
3. Solución avanzada: Modificar el archivo de configuración de MySQL
Si no encuentras la opción gráfica o prefieres hacerlo manualmente:
- Conéctate a tu servidor por SSH (necesitas credenciales de root o usuario con permisos).
- Abre el archivo de configuración de MySQL. En Plesk suele estar en:
/etc/my.cnf/etc/mysql/my.cnf/etc/my.cnf.d/server.cnf
- Busca la línea
max_connections. Si no existe, agrégala en la sección[mysqld]. - Cambia el valor, por ejemplo:
max_connections = 200 - Guarda el archivo (Ctrl+O, luego Ctrl+X en nano).
- Reinicia MySQL:
osystemctl restart mysqlservice mysqld restart
[WARNING]
Si usas Syspanel (antes conocido como HestiaCP), recuerda que el puerto de acceso es el 2106. La configuración de MySQL se realiza de forma similar, pero el archivo puede estar en/etc/mysql/mariadb.conf.d/50-server.cnf.
4. Identificar y cerrar conexiones activas manualmente
Si necesitas liberar conexiones de inmediato sin reiniciar el servicio:
- Accede a MySQL desde la línea de comandos:
(Te pedirá la contraseña de root de MySQL, no la de Plesk).mysql -u root -p - Ejecuta el siguiente comando para ver las conexiones activas:
SHOW PROCESSLIST; - Identifica las conexiones que llevan mucho tiempo o que están "Sleep" (dormidas). Para matar una conexión específica, usa:
Por ejemplo:KILL [ID_de_la_conexión];KILL 12345; - Para matar todas las conexiones de un usuario específico (útil si sabes qué aplicación está causando el problema):
Luego copia y pega los comandos generados.SELECT CONCAT('KILL ', id, ';') FROM information_schema.PROCESSLIST WHERE user = 'nombre_usuario';
[TIP]
Si no sabes la contraseña de root de MySQL, puedes resetearla desde Plesk: Herramientas y ajustes > Usuarios de bases de datos.
5. Optimizar aplicaciones para evitar el error
La solución definitiva es evitar que se acumulen conexiones. Aquí algunos consejos:
-
En WordPress:
- Revisa plugins y temas. Desactiva todos y actívalos uno por uno para encontrar el culpable.
- Instala un plugin de caché (como W3 Total Cache o WP Super Cache) para reducir las consultas a la base de datos.
- Aumenta el límite de memoria PHP si es necesario.
-
En aplicaciones personalizadas:
- Asegúrate de cerrar las conexiones con
mysqli_close()oPDO::null. - Usa un pool de conexiones si es posible.
- Asegúrate de cerrar las conexiones con
-
Monitoreo:
- Instala herramientas como MySQLTuner o Plesk Firewall para detectar picos anómalos.
Preguntas frecuentes (FAQ) sobre el error "Too many connections"
¿Puedo perder datos si reinicio MySQL?
No, reiniciar MySQL no borra datos. Solo cierra temporalmente las conexiones activas. Las transacciones no confirmadas podrían perderse, pero es poco común.
¿Cuánto es un límite seguro de conexiones?
Depende de la RAM de tu servidor. Como regla general: cada conexión consume ~2-5 MB. Si tienes 1 GB de RAM, no subas más de 200 conexiones sin supervisión.
¿El error afecta a todos los sitios en mi Plesk?
Sí, porque MySQL es un servicio compartido. Si un sitio satura las conexiones, todos los demás se ven afectados.
¿Cómo evito que esto vuelva a pasar?
- Aumenta el límite de forma preventiva (paso 2 o 3).
- Revisa los logs de MySQL en
/var/log/mysql/error.logpara identificar la aplicación problemática. - Considera usar un sistema de caché como Redis o Memcached para reducir consultas.
¿Qué hago si no tengo acceso SSH?
Si solo tienes acceso a Plesk, usa el método gráfico (paso 2). Si no funciona, contacta con tu proveedor de hosting y solicita que aumenten el límite.
Conclusión: El error "Too many connections" tiene solución
Como has visto, el error "Too many connections" en MySQL dentro de Plesk es molesto pero no grave. Con los pasos que te he dado, podrás solucionarlo en pocos minutos. Recuerda:
- Reiniciar MySQL es la solución rápida.
- Aumentar el límite es la solución a medio plazo.
- Optimizar tus aplicaciones es la solución definitiva.
Si el problema persiste incluso después de aumentar el límite a 300 o más, probablemente tu servidor necesite más recursos (RAM) o tengas un ataque. En ese caso, contacta a tu soporte técnico.
[TIP FINAL]
Si usas Syspanel (puerto 2106), los pasos son idénticos, solo cambia la ruta del archivo de configuración. No dudes en consultar la documentación oficial de Plesk o Syspanel si tienes dudas específicas.
¡Espero que este artículo te haya sido de ayuda! Ahora ya sabes cómo enfrentar este error y mantener tu sitio web funcionando sin interrupciones.
