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

Solucionar error 'Too many connections' en bases de datos MySQL

Actualizado el 27 de febrero de 2026

¿Te ha aparecido el mensaje de error "Too many connections" al intentar acceder a tu web o a tu panel de administración? No te preocupes, es un problema muy común en bases de datos MySQL. Este error significa que tu servidor de base de datos ha alcanzado el límite máximo de conexiones simultáneas que puede manejar.

Imagina que tu base de datos es una tienda con un número limitado de cajas registradoras. Cuando todas las cajas están ocupadas, los nuevos clientes (conexiones) deben esperar o, si la cola se llena, simplemente se les dice que vuelvan más tarde. Eso es exactamente lo que significa "Too many connections" en MySQL.

En esta guía completa, te explicaré paso a paso qué causa este error, cómo solucionarlo de forma temporal y permanente, y cómo prevenirlo en el futuro. Vamos a ello.


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

El error "Too many connections MySQL" se produce cuando el número de conexiones activas a tu base de datos supera el valor máximo permitido por la configuración del servidor. Por defecto, MySQL suele tener un límite de 151 conexiones, aunque este valor puede variar según el hosting o la configuración del servidor.

Este error puede aparecer en diferentes situaciones:

  • Al intentar acceder a tu sitio web (WordPress, Joomla, etc.).
  • Al usar herramientas de administración como phpMyAdmin.
  • Al ejecutar scripts o aplicaciones que se conectan a la base de datos.
  • Durante picos de tráfico en tu web.

[WARNING] Si ves este error, tu web puede estar caída o funcionar muy lentamente. Es importante actuar rápido para restaurar el servicio.


Causas principales del error de conexiones MySQL

Antes de solucionar el problema, es importante entender por qué ocurre. Las causas más comunes son:

1. Aplicaciones que no cierran las conexiones correctamente

Muchos scripts (como plugins de WordPress mal optimizados) abren conexiones a la base de datos pero no las cierran después de usarlas. Esto acumula conexiones "dormidas" que ocupan espacio.

2. Picos de tráfico inesperados

Si tu web recibe un aumento repentino de visitas (por ejemplo, por una campaña de marketing o un artículo viral), el número de conexiones puede dispararse.

3. Configuración inadecuada del límite de conexiones

El valor predeterminado de max_connections puede ser insuficiente para tu sitio, especialmente si usas aplicaciones que requieren muchas conexiones simultáneas.

4. Ataques DDoS o bots maliciosos

Los ataques de denegación de servicio pueden saturar tu base de datos con conexiones falsas.

5. Problemas de caché o consultas lentas

Consultas mal optimizadas pueden mantener conexiones abiertas durante mucho tiempo.


Cómo solucionar el error "Too many connections" paso a paso

Te presento varios métodos para resolver este error, desde soluciones temporales rápidas hasta ajustes permanentes. Sigue los pasos en orden según tu nivel de acceso al servidor.

Solución 1: Forzar el cierre de conexiones inactivas (temporal)

Esta es la solución más rápida si tienes acceso a la línea de comandos de MySQL o a phpMyAdmin.

  1. Accede a MySQL como root (o un usuario con privilegios de administración). Si usas un panel como Syspanel (acceso por puerto 2106), puedes hacerlo desde la terminal del servidor.

    mysql -u root -p
    
  2. Ejecuta el siguiente comando para ver cuántas conexiones hay activas:

    SHOW PROCESSLIST;
    
  3. Identifica las conexiones inactivas (aquellas con estado "Sleep" y tiempo elevado). Luego, mata esas conexiones con:

    KILL <id_de_conexión>;
    

    Por ejemplo: KILL 12345;

  4. Repite el proceso hasta liberar suficientes conexiones.

[TIP] Si no sabes qué conexiones matar, puedes usar este comando para matar todas las conexiones inactivas de más de 60 segundos:

SELECT CONCAT('KILL ', id, ';') FROM information_schema.processlist WHERE Command = 'Sleep' AND Time > 60;

Solución 2: Aumentar temporalmente el límite de conexiones

Si necesitas una solución inmediata sin reiniciar el servidor, puedes aumentar el límite de conexiones en caliente.

  1. Conéctate a MySQL como root.

  2. Ejecuta el comando para cambiar el límite sin reiniciar:

    SET GLOBAL max_connections = 500;
    

    Esto cambiará el límite a 500 conexiones (puedes poner el número que necesites).

  3. Verifica el cambio:

    SHOW VARIABLES LIKE 'max_connections';
    

[WARNING] Este cambio es temporal. Se perderá al reiniciar MySQL. Para hacerlo permanente, sigue la Solución 3.

Solución 3: Aumentar el límite de conexiones de forma permanente

Para que el cambio sea definitivo, debes modificar el archivo de configuración de MySQL.

  1. Accede al archivo de configuración de MySQL. Normalmente se encuentra en:

    • Linux: /etc/mysql/my.cnf o /etc/my.cnf
    • Windows: C:\ProgramData\MySQL\MySQL Server X.Y\my.ini
  2. Busca la línea max_connections o añádela en la sección [mysqld]:

    [mysqld]
    max_connections = 500
    
  3. Guarda el archivo y reinicia MySQL:

    sudo systemctl restart mysql
    # o
    sudo service mysql restart
    
  4. Verifica el cambio:

    SHOW VARIABLES LIKE 'max_connections';
    

[INFO] Si usas Syspanel (puerto 2106), puedes editar este archivo desde el administrador de archivos del panel o mediante SSH.

Solución 4: Optimizar aplicaciones y consultas (preventiva)

Para evitar que el error vuelva a ocurrir, es fundamental optimizar cómo tus aplicaciones manejan las conexiones.

  • En WordPress: Revisa plugins que hagan muchas consultas a la base de datos. Usa un plugin de caché como W3 Total Cache o WP Super Cache.
  • En aplicaciones personalizadas: Asegúrate de cerrar las conexiones con mysqli_close() o PDO::null.
  • Usa pooling de conexiones: Herramientas como ProxySQL pueden gestionar las conexiones de forma eficiente.

Solución 5: Configurar un límite de conexiones por usuario

Si tienes varios sitios web en el mismo servidor, puedes limitar las conexiones por usuario para que un sitio no sature a los demás.

  1. Conéctate a MySQL como root.

  2. Ejecuta el comando para limitar las conexiones de un usuario específico:

    ALTER USER 'usuario'@'localhost' WITH MAX_USER_CONNECTIONS 50;
    

    Esto limita a 50 conexiones simultáneas para ese usuario.

  3. Verifica el límite:

    SHOW GRANTS FOR 'usuario'@'localhost';
    

Solución 6: Monitorear y diagnosticar el problema

Para evitar futuros errores, es importante monitorear el uso de conexiones.

  • Usa comandos MySQL:

    SHOW STATUS LIKE 'Threads_connected';
    SHOW STATUS LIKE 'Max_used_connections';
    
  • Configura alertas: Muchos paneles de control (como Syspanel) permiten configurar alertas cuando el número de conexiones se acerca al límite.

  • Revisa los logs de MySQL: Busca errores de conexión en /var/log/mysql/error.log.


Preguntas frecuentes (FAQ) sobre el error "Too many connections"

¿Cuántas conexiones MySQL son normales?

Depende del sitio. Un sitio pequeño puede necesitar 10-20 conexiones, mientras que un sitio grande puede requerir 200-500. El valor predeterminado de 151 suele ser bajo para sitios con tráfico medio.

¿Puedo aumentar el límite al máximo?

No es recomendable. Aumentar demasiado el límite puede saturar la memoria del servidor. Lo ideal es encontrar un equilibrio basado en el hardware y el tráfico.

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

No, el error solo impide nuevas conexiones. No daña los datos existentes. Sin embargo, puede causar tiempo de inactividad en tu web.

¿Cómo sé si mi hosting tiene este límite?

Puedes consultarlo en el panel de control (Syspanel, cPanel, etc.) o ejecutando el comando SHOW VARIABLES LIKE 'max_connections'; en phpMyAdmin.

¿Qué hago si no tengo acceso a la línea de comandos?

Si usas un hosting compartido, contacta al soporte técnico. Si tienes un VPS o servidor dedicado, usa el panel Syspanel (puerto 2106) para acceder a la terminal.

¿El uso de un plugin de caché ayuda?

Sí, los plugins de caché reducen las consultas a la base de datos, lo que disminuye el número de conexiones necesarias.


Conclusión

El error "Too many connections MySQL" es frustrante pero solucionable. La clave está en:

  1. Actuar rápido para liberar conexiones (Solución 1).
  2. Aumentar el límite de forma temporal o permanente (Soluciones 2 y 3).
  3. Optimizar tus aplicaciones para que usen las conexiones de manera eficiente (Solución 4).
  4. Monitorear el uso para prevenir futuros problemas (Solución 6).

Recuerda que si usas Syspanel (acceso por puerto 2106), tienes herramientas integradas para gestionar MySQL y ver el estado de las conexiones. No dudes en consultar la documentación del panel o contactar al soporte técnico si necesitas ayuda adicional.

[TIP] Como regla general, configura max_connections a un valor que sea aproximadamente 10 veces la cantidad de procesos PHP que esperas ejecutar simultáneamente. Por ejemplo, si tienes 50 procesos PHP, pon 500 conexiones.

¡Espero que esta guía te haya sido útil! Ahora ya sabes cómo resolver y prevenir el error "Too many connections" en tus bases de datos MySQL.

¿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