🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo solucionar el error 'Too many connections' en MySQL (Plesk, cPanel, DirectAdmin)

Actualizado el 15 de septiembre de 2025

¿Tu web ha empezado a dar errores y ves el mensaje “Too many connections” en tu panel de control? No te preocupes, es uno de los avisos más comunes en el mundo del hosting y, aunque suene técnico, tiene una explicación sencilla y varias soluciones que puedes aplicar incluso si no eres un experto.

En este artículo, vamos a desglosar qué significa este error, por qué ocurre en plataformas como Plesk, cPanel o DirectAdmin, y cómo solucionarlo paso a paso. Hablaremos de términos como max_connections mysql, ajustes de configuración y trucos para que tu base de datos vuelva a funcionar sin cortes.

Ponte cómodo, que esto te va a ahorrar más de un quebradero de cabeza.

¿Qué significa el error "Too many connections" en MySQL?

Imagina que tu base de datos MySQL es un restaurante con un número limitado de mesas. Cada vez que alguien entra a tu web (un visitante), el sistema necesita una “mesa” (una conexión) para poder atenderle. Si el restaurante solo tiene 100 mesas y entran 150 personas a la vez, 50 se quedan fuera con el mensaje: “Too many connections”.

En términos técnicos, MySQL tiene un límite de conexiones simultáneas definido por la variable max_connections mysql. Cuando ese número se supera, el servidor rechaza nuevas peticiones para no colapsarse.

Este error no significa que tu web esté rota, sino que está saturada en ese momento. Pero si ocurre con frecuencia, es una señal de que algo no va bien: quizás un plugin mal optimizado, demasiados procesos en segundo plano o incluso un ataque de fuerza bruta.

¿Por qué ocurre este error en Plesk, cPanel o DirectAdmin?

Cada panel de control gestiona MySQL de forma ligeramente distinta, pero el origen del problema suele ser el mismo.

  • En cPanel: es muy habitual que el límite por defecto sea bajo (por ejemplo, 150 conexiones). Si tienes varias webs o un sitio con mucho tráfico, llegarás rápido al tope.
  • En Plesk: el error plesk too many connections aparece cuando el servidor tiene muchos sitios alojados y cada uno consume conexiones simultáneas, especialmente si usan WordPress con muchos plugins.
  • En DirectAdmin: el sistema operativo del servidor puede tener un límite global bajo, y además, si usas una versión de MySQL antigua, el rendimiento empeora.

En todos los casos, la solución pasa por aumentar el límite, optimizar las consultas o reiniciar las conexiones muertas.

Primeros pasos: identifica el problema antes de tocar nada

Antes de lanzarte a cambiar configuraciones, es vital saber cuántas conexiones hay activas y cuál es el límite actual. Así sabrás si el problema es puntual o crónico.

1. Accede a MySQL por línea de comandos (SSH)

Si tienes acceso SSH a tu servidor, es la forma más rápida y fiable. Escribe:

mysql -u root -p

Te pedirá la contraseña. Después, ejecuta:

SHOW VARIABLES LIKE 'max_connections';

Verás algo como max_connections | 150. Ese es tu límite actual.

2. Mira cuántas conexiones hay ahora mismo

Ejecuta:

SHOW STATUS LIKE 'Threads_connected';

Si el número está cerca del límite (por ejemplo, 145 de 150), tienes el diagnóstico claro: estás al borde del colapso.

3. Revisa qué procesos están consumiendo

SHOW PROCESSLIST;

Aquí verás todas las consultas activas. Si hay muchas en estado Sleep, son conexiones abiertas pero inactivas. Son las típicas que se acumulan y provocan el error mysql too many connections.

Solución rápida: reiniciar MySQL (efecto inmediato)

Si tu web está caída y necesitas que vuelva ya, reiniciar el servicio MySQL libera todas las conexiones de golpe.

  • En cPanel: ve a WHM > Restart Services > MySQL.
  • En Plesk: entra en Herramientas y utilidades > Services Management y reinicia MySQL.
  • En DirectAdmin: usa el comando service mysql restart o systemctl restart mysql desde SSH.

[WARNING] Este reinicio cortará todas las consultas en curso. Hazlo solo si no tienes procesos críticos en marcha (por ejemplo, una importación grande).

Solución definitiva: aumentar max_connections en MySQL

Reiniciar es un parche, pero si el error se repite, necesitas subir el límite de conexiones. Te explico cómo hacerlo en cada panel.

En cPanel (WHM)

  1. Entra en WHM como root.
  2. Busca SQL Services y luego Configure MySQL.
  3. Localiza la línea max_connections y cámbiala a un valor más alto (por ejemplo, 300 o 500).
  4. Guarda y reinicia MySQL.

En Plesk

  1. Abre Plesk > Tools & Settings > Database Servers.
  2. Selecciona tu servidor MySQL.
  3. En la pestaña Configuration, busca max_connections.
  4. Aumenta el valor y guarda.

[INFO] En Plesk, a veces el valor está en un archivo de configuración. Si no lo ves, edita /etc/mysql/my.cnf y añade max_connections = 500 bajo [mysqld].

En DirectAdmin

  1. Ve a DirectAdmin > System Info & Files > MySQL Management.
  2. Edita el archivo de configuración (normalmente /etc/my.cnf).
  3. Añade o modifica la línea max_connections = 500.
  4. Reinicia MySQL.

¿Cómo saber cuál es el valor ideal de max_connections?

No se trata de poner un número gigante porque sí. Cada conexión usa memoria RAM. Si pones 1000 y tu servidor tiene 2GB de RAM, lo vas a tumbar.

Una regla sencilla:

  • Servidor pequeño (1-2GB RAM): 100-150 conexiones.
  • Servidor medio (4-8GB RAM): 300-500 conexiones.
  • Servidor grande (16GB+ RAM): 800+ conexiones.

Para calcularlo, usa esta fórmula mental: (RAM total - RAM del sistema) / 2MB por conexión. Pero si no quieres complicarte, empieza doblando tu límite actual y ve monitorizando.

Optimiza tu aplicación para no gastar conexiones

Aumentar el límite es útil, pero si tu código es ineficiente, volverás a caer. Aquí van algunos consejos prácticos.

1. Cierra las conexiones en tu código

Si usas PHP, asegúrate de que cada conexión se cierra al finalizar la petición. Por ejemplo, con mysqli_close($conexion). En WordPress, los plugins mal programados suelen dejar conexiones abiertas.

2. Usa un pool de conexiones

Herramientas como ProxySQL o PgBouncer (aunque este último es para PostgreSQL) gestionan conexiones compartidas. En MySQL, puedes usar MySQL Router o simplemente configurar tu aplicación para reutilizar conexiones.

3. Reduce el tiempo de espera

En MySQL, las conexiones que están en estado Sleep ocupan espacio. Puedes reducir el valor de wait_timeout (por defecto suele ser 28800 segundos, que son 8 horas). Bájalo a 60 o 120 segundos:

SET GLOBAL wait_timeout = 120;

4. Revisa tu CMS y plugins

Si usas WordPress, desactiva plugins que hagan muchas consultas a la base de datos (como los de estadísticas o caché mal configurados). También es recomendable usar un plugin de caché como W3 Total Cache o WP Rocket para reducir las peticiones al servidor.

Cómo solucionar el error "Too many connections" en cPanel sin acceso SSH

No todo el mundo tiene acceso root. Si solo tienes el cPanel normal, puedes intentar lo siguiente:

  • Contacta con tu proveedor: muchos hostings compartidos tienen un límite fijo. Pide que te suban max_connections o que optimicen el servidor.
  • Optimiza tu código: si tu web hace consultas lentas, pide a tu desarrollador que añada índices a las tablas o que use consultas preparadas.
  • Reduce el tráfico falso: si sospechas de un ataque, activa un firewall como Cloudflare. Esto bloqueará bots y reducirá el número de conexiones simultáneas.

Plesk too many connections: trucos específicos

En Plesk, el error plesk too many connections es muy común en servidores con muchos sitios. Además de subir el límite, te recomiendo:

  • Activa el modo de solo lectura para bases de datos que no se usan.
  • Usa la herramienta de monitorización de Plesk para ver qué sitio consume más conexiones.
  • Configura un cron que cierre conexiones inactivas. Puedes usar algo como:
mysqladmin -u root -p processlist | grep "Sleep" | awk '{print $2}' | xargs -I{} mysqladmin -u root -p kill {}

Pero cuidado, esto es avanzado. Mejor pide ayuda a tu administrador.

DirectAdmin: errores comunes y soluciones

En DirectAdmin, el error suele aparecer cuando el servidor tiene un límite global bajo. Además de subir max_connections, revisa:

  • El número de procesos por usuario: en DirectAdmin > Admin Tools > Process Manager, verás si un usuario está abusando.
  • La versión de MySQL: si usas MySQL 5.5 o inferior, considera migrar a MariaDB o MySQL 8, que gestionan mejor las conexiones.

Herramientas para monitorizar conexiones en tiempo real

No tienes que estar pendiente todo el día. Usa herramientas como:

  • MySQL Workbench: desde tu ordenador, te conectas al servidor y ves las conexiones activas.
  • Nagios o Zabbix: si tienes varios servidores, te avisan cuando se acerca al límite.
  • El propio panel: cPanel tiene MySQL Process Viewer, y Plesk tiene Database Server Status.

¿Qué pasa si el error persiste?

Si has subido max_connections, optimizado tu web y el error sigue apareciendo, es momento de mirar más allá.

1. ¿Tienes suficiente memoria RAM?

Si el servidor se queda sin RAM, MySQL se vuelve inestable y empieza a rechazar conexiones. Añade más memoria o cambia a un plan superior.

2. ¿Hay consultas lentas bloqueando el sistema?

Activa el log de consultas lentas en MySQL. En my.cnf, añade:

slow_query_log = 1
long_query_time = 2

Después, revisa el log para ver qué consultas tardan más de 2 segundos. Suelen ser las culpables de saturar el sistema.

3. ¿Estás siendo atacado?

Un ataque de fuerza bruta o un bot malicioso puede generar cientos de conexiones por segundo. Activa un firewall, limita el acceso a wp-login.php (si usas WordPress) o usa un servicio de protección como Sucuri.

Preguntas frecuentes (FAQ)

¿El error "Too many connections" daña mi base de datos?

No. Es un error temporal que solo impide nuevas conexiones. Tus datos están a salvo, pero es crucial solucionarlo para que tu web vuelva a estar disponible.

¿Puedo aumentar max_connections en un hosting compartido?

Normalmente no, porque el servidor es compartido y el límite lo controla el proveedor. En ese caso, contacta con soporte y pide que lo suban o que migres a un servidor dedicado o VPS.

¿Es mejor usar MariaDB en lugar de MySQL?

Sí, MariaDB es un clon mejorado de MySQL. Gestiona mejor las conexiones y es compatible con la mayoría de configuraciones. Si tu panel lo permite, migrar es una buena idea.

¿Cuántas conexiones consume WordPress por defecto?

Cada petición a WordPress puede consumir entre 1 y 5 conexiones, dependiendo de los plugins. Un sitio con 200 visitas simultáneas puede necesitar 400 conexiones si está mal optimizado.

¿Reiniciar MySQL borra mis datos?

No, reiniciar el servicio solo corta las conexiones activas. Los datos almacenados en disco no se pierden. Eso sí, las transacciones que estaban en curso pueden quedar a medias.

Resumen final: plan de acción ante el error

Te dejo una checklist para que actúes rápido:

  • 1. Identifica el límite actual y las conexiones activas (SSH o panel).
  • 2. Reinicia MySQL si la web está caída.
  • 3. Aumenta max_connections en my.cnf o en la configuración del panel.
  • 4. Reduce wait_timeout para cerrar conexiones inactivas.
  • 5. Optimiza tu código y plugins.
  • 6. Monitoriza con herramientas como MySQL Workbench.
  • 7. Si nada funciona, contacta con tu proveedor de hosting.

Con estos pasos, el error too many connections mysql pasará a ser un mal recuerdo. Recuerda que la clave está en equilibrar el límite con la memoria disponible y en mantener tu aplicación limpia y eficiente.

Si tienes dudas, deja un comentario y te ayudo a configurarlo. ¡Hasta la próxima!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel