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

Solución a error 'Too many connections' en MySQL (cPanel)

Actualizado el 18 de mayo de 2026

Imagina que llegas a tu sitio web y, en lugar de ver tu contenido, te encuentras con un mensaje de error como "Too many connections" o "Error establishing a database connection". Es frustrante, ¿verdad? Este error es uno de los más comunes en entornos de hosting compartido y servidores con cPanel, y suele aparecer cuando el número de conexiones activas a tu base de datos MySQL supera el límite permitido.

No te preocupes, es un problema con solución y, en la mayoría de los casos, puedes resolverlo sin ser un experto en servidores. En este artículo, te explicaré paso a paso qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo. Hablaremos de ajustar el parámetro max_connections, identificar consultas problemáticas y optimizar tu sitio para que no vuelva a suceder.


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

Cuando tu sitio web (ya sea WordPress, Joomla, una tienda online o cualquier aplicación) necesita acceder a la base de datos, establece una "conexión" con MySQL. Cada conexión consume recursos del servidor. El servidor tiene un límite máximo de conexiones simultáneas que puede manejar, definido por la variable max_connections.

Si en un momento dado hay más conexiones intentando acceder a la base de datos de las permitidas, MySQL rechaza las nuevas y muestra el error "Too many connections". Esto puede ocurrir por varias razones:

  • Picos de tráfico: Muchos visitantes simultáneos.
  • Consultas lentas: Una consulta que tarda mucho mantiene abierta la conexión.
  • Plugins o scripts mal configurados: Que no cierran las conexiones correctamente.
  • Ataques DDoS o bots: Que saturan el servidor con peticiones.
  • Límite muy bajo: El servidor tiene un valor de max_connections demasiado pequeño para tu sitio.

¿Por qué aparece este error específicamente en cPanel?

cPanel es uno de los paneles de control de hosting más populares. En entornos compartidos, el hosting suele establecer un límite de conexiones MySQL bastante restrictivo (por ejemplo, 10, 25 o 50 conexiones) para evitar que un solo usuario consuma todos los recursos del servidor. Si tu sitio tiene un tráfico medio-alto o usa muchas funciones que requieren base de datos (como caché, sesiones, etc.), es fácil alcanzar ese límite.

Además, en cPanel, las herramientas de gestión de bases de datos (como phpMyAdmin) también consumen una conexión. Si abres varias pestañas de phpMyAdmin, cada una cuenta como una conexión activa.


Soluciones paso a paso para el error "Too many connections" en MySQL (cPanel)

A continuación, te presento las soluciones ordenadas de la más sencilla a la más técnica. Empieza siempre por la primera y avanza si el problema persiste.

1. Aumentar temporalmente el límite de conexiones (max_connections)

Esta es la solución más rápida para que tu sitio vuelva a funcionar mientras investigas la causa raíz. Sin embargo, ten en cuenta que no todos los hostings lo permiten en planes compartidos. Si tienes un VPS o un servidor dedicado con cPanel, puedes hacerlo fácilmente.

¿Cómo ajustar max_connections desde cPanel?

  1. Accede a tu cPanel (generalmente en tudominio.com/cpanel).
  2. Busca la sección "Bases de Datos" y haz clic en "MySQL" o "phpMyAdmin". (No, aquí no se cambia el límite).
  3. En realidad, la opción no está directamente en cPanel para usuarios compartidos. Debes ir a "MySQL Remote Access" o "MySQL Databases" y buscar la opción "Edit MySQL Variables" o "MySQL Variables". Si no la ves, tu hosting no te permite cambiarlo.
  4. Si tienes acceso, busca la variable max_connections y cámbiala a un valor más alto (por ejemplo, de 50 a 100 o 150). Guarda los cambios.

[INFO] Si no encuentras la opción, contacta con tu proveedor de hosting. Ellos pueden aumentarlo temporalmente. Muchos hostings compartidos tienen un límite fijo y no permiten modificarlo.

Alternativa: Ajustar max_connections desde WHM (para administradores de servidores)

Si tienes acceso a WHM (Web Host Manager), el panel de administración de cPanel:

  1. Inicia sesión en WHM (puerto 2087, ej: tudominio.com:2087).
  2. Busca "SQL Services" > "MySQL/MariaDB" > "MySQL Configuration".
  3. En la pestaña "Server Configuration", busca "max_connections".
  4. Cambia el valor y haz clic en "Save". Luego reinicia MySQL desde "Restart Services" > "MySQL".

[WARNING] Aumentar demasiado max_connections puede saturar la memoria RAM del servidor. No lo subas a valores extremos (por ejemplo, 1000) sin supervisión. Un incremento prudente es de 50 a 100.


2. Identificar y matar conexiones activas manualmente

Si el error ya ocurrió y necesitas liberar conexiones rápidamente, puedes matar procesos directamente desde phpMyAdmin o la línea de comandos.

Desde phpMyAdmin (en cPanel):

  1. Entra a phpMyAdmin desde cPanel.
  2. Haz clic en la pestaña "Processes" o "Procesos" (a veces está en la parte superior).
  3. Verás una lista de todas las conexiones activas. Las que llevan mucho tiempo en estado "Sleep" o "Query" son las candidatas.
  4. Marca las que quieras eliminar y haz clic en "Kill" (o "Finalizar").

[TIP] Si no ves la pestaña "Processes", es posible que tu usuario no tenga permisos de superusuario. En ese caso, contacta con soporte.

Desde la línea de comandos (SSH):

Si tienes acceso SSH a tu servidor:

  1. Conéctate por SSH.
  2. Ejecuta: mysql -u root -p -e "SHOW PROCESSLIST;" (te pedirá la contraseña de root de MySQL).
  3. Para matar un proceso específico: mysql -u root -p -e "KILL ID_DEL_PROCESO;" (reemplaza ID_DEL_PROCESO por el número que aparece en la lista).
  4. Para matar todos los procesos de un usuario: mysql -u root -p -e "KILL USER 'usuario'@'localhost';" (no recomendado si no sabes lo que haces).

3. Optimizar tu sitio para reducir conexiones simultáneas

La solución definitiva es evitar que el error vuelva a ocurrir. Aquí tienes acciones concretas:

a. Revisa plugins y temas (especialmente en WordPress)

  • Desactiva todos los plugins y reactívalos uno por uno para encontrar el culpable.
  • Los plugins de caché (como W3 Total Cache, WP Super Cache) pueden ayudar a reducir consultas a la base de datos.
  • Los plugins de sesiones (como WooCommerce) pueden mantener conexiones abiertas. Configúralos para que usen Redis o Memcached en lugar de la base de datos.

b. Habilita el caché de consultas MySQL

Esto almacena en memoria los resultados de consultas repetitivas, reduciendo la necesidad de abrir nuevas conexiones.

  • Desde phpMyAdmin o WHM, busca la variable query_cache_size y ajústala a un valor como 64M o 128M (si tu hosting lo permite).
  • También asegúrate de que query_cache_type esté en ON (1).

c. Usa un plugin de optimización de base de datos

Herramientas como WP-Optimize, Advanced Database Cleaner o Optimize Database after Deleting Revisions pueden limpiar tablas, eliminar datos basura y optimizar consultas.

d. Configura un límite de conexiones por usuario

En MySQL, puedes limitar las conexiones por usuario con:

ALTER USER 'tu_usuario'@'localhost' WITH MAX_USER_CONNECTIONS 10;

Esto evita que una sola aplicación consuma todas las conexiones.


4. Soluciones avanzadas: Reescribir el archivo de configuración de MySQL

Si tienes acceso root al servidor, puedes editar directamente el archivo my.cnf (o my.ini en Windows).

  1. Localiza el archivo (normalmente en /etc/my.cnf o /etc/mysql/my.cnf).
  2. Busca la línea [mysqld] y añade o modifica:
    max_connections = 150
    wait_timeout = 60   # Reduce el tiempo de espera de conexiones inactivas
    interactive_timeout = 60
    
  3. Guarda y reinicia MySQL: systemctl restart mysql (o service mysql restart).

[WARNING] Reducir wait_timeout a valores muy bajos (menos de 30 segundos) puede causar errores en aplicaciones que tardan en procesar. Un valor de 60-120 segundos es seguro.


5. ¿Qué hacer si el error persiste? Contacta con el soporte

Si después de probar todo lo anterior el error "Too many connections" sigue apareciendo, es probable que el problema esté en el servidor o en un ataque. En ese caso:

  • Contacta a tu proveedor de hosting y explícales que necesitas aumentar el límite de conexiones o que investiguen si hay un ataque DDoS.
  • Revisa los logs de MySQL en cPanel > "Error Log" o "MySQL Error Log" para ver si hay consultas repetitivas.
  • Considera migrar a un plan superior (VPS o dedicado) si tu sitio ha crecido y necesita más recursos.

FAQ: Preguntas frecuentes sobre el error "Too many connections"

¿Puedo solucionar este error sin acceso a cPanel?

Sí, si tu hosting te da acceso a phpMyAdmin, puedes matar procesos manualmente. Si no, contacta con soporte.

¿Aumentar max_connections siempre soluciona el problema?

No. Si el problema es una consulta lenta o un plugin defectuoso, aumentar el límite solo retrasará el colapso. Es mejor identificar la causa raíz.

¿Cuántas conexiones MySQL necesito para un sitio normal?

  • Sitio pequeño (menos de 100 visitas/día): 10-25 conexiones.
  • Sitio mediano (1000-5000 visitas/día): 50-100 conexiones.
  • Sitio grande (más de 10k visitas/día): 150-300 conexiones o más.

¿El error puede deberse a un ataque?

Sí. Los bots maliciosos o ataques DDoS pueden generar miles de conexiones. Si ves muchas conexiones desde IPs desconocidas, bloquea esas IPs desde cPanel > "IP Blocker" o con un firewall como CSF.

¿Qué pasa si uso Syspanel (HestiaCP) en lugar de cPanel?

Si tu servidor usa Syspanel (el nombre de interfaz de HestiaCP), el proceso es similar pero el acceso es por el puerto 2106 (ej: tudominio.com:2106). Dentro, busca "Bases de Datos" > "MySQL" y luego "Editar configuración" para ajustar max_connections. También puedes reiniciar MySQL desde "Servicios".


Conclusión: Prevenir es mejor que lamentar

El error "Too many connections" en MySQL es una señal de que tu sitio necesita una puesta a punto. No te asustes, sigue estos pasos:

  1. Aumenta temporalmente max_connections (si puedes).
  2. Mata conexiones activas para recuperar el acceso.
  3. Optimiza tu sitio: revisa plugins, activa caché, limpia la base de datos.
  4. Ajusta los tiempos de espera en la configuración de MySQL.
  5. Si nada funciona, pide ayuda a tu hosting.

Con estas soluciones, tu sitio volverá a funcionar sin problemas y estarás mejor preparado para futuros picos de tráfico. Recuerda que la clave está en la optimización constante y en monitorear el rendimiento de tu base de datos.

¿Tienes más dudas? Déjalas en los comentarios o consulta con tu proveedor de hosting. ¡Buena suerte!

¿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