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

Cómo corregir el error 'Too many connections' en MySQL

Actualizado el 15 de abril de 2026

¿Tu web se ha quedado congelada y ves un mensaje de error que dice "Too many connections"? No te preocupes, no eres la única persona a la que le pasa. Es uno de los errores más comunes en el mundo del hosting y las bases de datos, y la buena noticia es que tiene solución.

Este error, que en pantalla puede aparecer como "error mysql conexiones", significa, literalmente, que tu servidor de base de datos (MySQL o MariaDB) ha alcanzado su límite máximo de conexiones simultáneas. Imagina que tu base de datos es un restaurante con un número limitado de mesas. Si llegan más clientes que mesas disponibles, el resto tiene que esperar fuera. Si las mesas están ocupadas por procesos que no terminan, el restaurante se satura.

En este artículo, te voy a explicar paso a paso, y de forma muy sencilla, cómo diagnosticar, solucionar y prevenir este problema. Vamos a ello.

¿Por qué ocurre el error "Too many connections"?

Antes de lanzarnos a arreglar nada, es fundamental entender por qué ocurre. No sirve de nada subir el límite si el problema de fondo es otro. Las causas más habituales son:

  1. Picos de tráfico repentinos: Tu web se vuelve viral o una campaña de marketing funciona demasiado bien. De repente, cientos o miles de usuarios intentan conectarse a la vez y el servidor no da abasto.
  2. Consultas lentas o mal optimizadas: Si una consulta tarda mucho en ejecutarse, mantiene la conexión abierta durante más tiempo. Esto bloquea "mesas" (conexiones) para otros usuarios.
  3. Procesos zombis o atascados: A veces, una consulta se queda colgada para siempre. Esto llena el límite de conexiones sin hacer nada útil.
  4. Aplicaciones que no cierran conexiones: Hay aplicaciones o scripts (como WordPress con demasiados plugins) que no cierran las conexiones a la base de datos correctamente. Abren una conexión para cada pequeña acción y nunca la liberan.
  5. El límite max_connections es simplemente demasiado bajo: En algunos planes de hosting compartido, este valor es muy restrictivo para proteger al servidor general.

El error es un aviso de que algo en tu sistema está consumiendo todos los recursos de conexión. Nuestro objetivo es arreglarlo y, sobre todo, evitar que vuelva a pasar.

Paso 1: Accede a tu servidor y a la consola de MySQL

Para poder diagnosticar el problema, primero necesitas acceder al servidor donde está alojada tu base de datos. Dependiendo de tu tipo de hosting, esto se hace de una forma u otra.

Si tienes un VPS o un servidor dedicado

Tendrás acceso por SSH. Abre tu terminal y conéctate:

ssh usuario@tu-servidor.com

Una vez dentro, accede a la consola de MySQL con el usuario root (o un usuario con privilegios administrativos):

mysql -u root -p

Te pedirá la contraseña de root de la base de datos. Si no la sabes, puede que esté en un archivo de configuración de tu aplicación (por ejemplo, wp-config.php en WordPress).

Si tienes un hosting compartido con Syspanel

Si tu proveedor utiliza el panel de control Syspanel (anteriormente conocido como HestiaCP), el proceso es un poco diferente, pero no menos sencillo.

  1. Accede a tu panel de control Syspanel a través de la URL https://tu-servidor.com:2106. Recuerda que el puerto de acceso es el 2106.
  2. Una vez dentro, busca la sección de "Base de Datos" o "Bases de Datos".
  3. Desde ahí, podrás acceder a la herramienta de gestión de bases de datos (como phpMyAdmin) o, si tienes acceso SSH, también podrás usar la consola desde el propio panel.

[TIP]
Si tu plan es de hosting compartido, es probable que no tengas acceso directo a la consola de MySQL con permisos de administrador. En ese caso, la solución más rápida es contactar con el soporte de tu proveedor y pedirles que reinicien el servicio MySQL o que te informen del valor actual de max_connections.

Paso 2: Diagnóstico del problema

Una vez que estés dentro de la consola de MySQL, es el momento de diagnosticar. Vamos a ejecutar una serie de comandos para ver qué está pasando.

1. Ver el límite actual de conexiones

Primero, comprobemos cuántas conexiones tienes permitidas. Ejecuta este comando:

SHOW VARIABLES LIKE 'max_connections';

Verás un resultado como este:

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 150   |
+-----------------+-------+

En este caso, el límite es de 150. Esto es un valor común, pero puede que sea insuficiente para tu sitio.

2. Ver cuántas conexiones hay en uso

Ahora, veamos cuántas conexiones se están usando en este momento:

SHOW STATUS LIKE 'Threads_connected';

Este comando te dirá el número de conexiones activas en ese instante. Si el número está muy cerca de max_connections, el problema es evidente.

3. Identificar qué está consumiendo las conexiones

Este es el paso más importante. Ejecuta el siguiente comando para ver una lista de todos los procesos que están ejecutándose en MySQL:

SHOW FULL PROCESSLIST;

Esto te dará una tabla con columnas como Id, User, Host, db, Command, Time, State e Info.

  • User: ¿Quién se está conectando? ¿Un usuario de WordPress? ¿Un usuario de una aplicación específica?
  • Command: Si dice Sleep, significa que la conexión está abierta pero no está haciendo nada. Si dice Query, significa que está ejecutando una consulta.
  • Time: El tiempo que lleva el proceso en ese estado. Si hay muchos procesos con un Time alto y estado Sleep, es una señal de que la aplicación no está cerrando conexiones.
  • Info: Muestra la consulta que se está ejecutando. Si ves consultas muy largas o complejas, ahí puede estar el problema.

[INFO]
Si ves muchos procesos en estado Sleep con un tiempo elevado, es casi seguro que el problema es que tu aplicación (WordPress, por ejemplo) no está cerrando las conexiones correctamente. Esto es muy común con plugins mal codificados.

Paso 3: Soluciones inmediatas (para arreglar el error ya)

Ahora que ya sabes qué está pasando, vamos a ponerle remedio. Estas son las soluciones más rápidas para que tu web vuelva a funcionar.

Solución A: Matar los procesos zombis

Si has identificado procesos que llevan mucho tiempo en estado Sleep o que son consultas que se han quedado atascadas, puedes matarlos. Esto liberará conexiones al instante.

Para matar un proceso, usa el comando KILL seguido del Id del proceso:

KILL 12345;

Sustituye 12345 por el ID que quieras eliminar. Si hay muchos, puedes matar varios a la vez separándolos por comas:

KILL 12345, 12346, 12347;

[WARNING]
Ten cuidado al matar procesos. Si matas una consulta que está a punto de terminar, podrías corromper datos. Asegúrate de que el proceso que vas a matar es realmente un proceso zombi o una consulta que no debería estar ejecutándose durante tanto tiempo.

Solución B: Aumentar el valor de max_connections

Esta es la solución más directa para el error "too many connections mysql". Vamos a subir el límite. Para hacerlo, ejecuta este comando en la consola de MySQL:

SET GLOBAL max_connections = 300;

Este cambio es temporal y se perderá cuando reinicies MySQL. Para hacerlo permanente, tendrás que editar el archivo de configuración de MySQL (my.cnf o my.ini).

En la mayoría de los servidores Linux, el archivo está en /etc/mysql/my.cnf o /etc/my.cnf. Dentro, busca la sección [mysqld] y añade o modifica la línea:

max_connections = 300

Guarda el archivo y reinicia el servicio:

sudo systemctl restart mysql

[TIP]
No subas el valor de max_connections de forma exagerada (por ejemplo, a 10000). Esto podría sobrecargar la memoria de tu servidor. Un valor de 300 o 500 suele ser más que suficiente para la mayoría de sitios web.

Paso 4: Soluciones a largo plazo (para prevenir el error)

Subir el límite es un parche. Para solucionar el problema de raíz, necesitas optimizar la forma en que tu aplicación y tu base de datos interactúan.

Optimizar las consultas y la aplicación

  1. Actualiza tu CMS y plugins: Si usas WordPress, asegúrate de tener todo actualizado. Las actualizaciones suelen incluir mejoras de rendimiento y corrección de errores que evitan fugas de conexiones.
  2. Desactiva plugins innecesarios: Cada plugin activo es una posible fuente de consultas lentas o mal optimizadas. Prueba a desactivar plugins uno a uno para ver cuál es el culpable.
  3. Utiliza un plugin de caché: La caché reduce drásticamente el número de consultas a la base de datos. Un plugin como W3 Total Cache o WP Super Cache puede hacer maravillas.
  4. Revisa el código de tu aplicación: Si tienes una aplicación a medida, asegúrate de que cierra las conexiones a la base de datos después de cada operación. Esto es un error común en el desarrollo.

Optimizar la configuración del servidor

  1. Ajusta el wait_timeout: Este es el tiempo que MySQL espera antes de cerrar una conexión inactiva. Si tienes muchas conexiones en estado Sleep, puedes reducir este valor para que se liberen antes.
SET GLOBAL wait_timeout = 60;

Esto cerrará las conexiones inactivas después de 60 segundos en lugar de los 28800 segundos (8 horas) que hay por defecto. Al igual que con max_connections, para hacerlo permanente deberás añadirlo al archivo my.cnf.

  1. Usa un pool de conexiones: Si tu aplicación es muy compleja, considera el uso de un pool de conexiones. Esto significa que la aplicación reutiliza un número fijo de conexiones en lugar de abrir una nueva para cada consulta. Herramientas como ProxySQL o MariaDB MaxScale son excelentes para esto, pero requieren un conocimiento técnico avanzado.

Optimizar el rendimiento general de MySQL

  1. Índices: Asegúrate de que las tablas de tu base de datos tienen los índices adecuados. Una consulta que recorre 1 millón de filas sin índice es mucho más lenta que una que usa un índice para encontrarlas al instante. Esto mantiene las conexiones ocupadas durante menos tiempo.
  2. Reinicia MySQL periódicamente: A veces, un simple reinicio limpia todos los procesos zombis y libera memoria. Puedes programar un reinicio nocturno si tu proveedor lo permite.

Preguntas Frecuentes (FAQ)

¿Qué significa exactamente el error "Too many connections"?

Significa que el servidor MySQL ha alcanzado el número máximo de conexiones simultáneas que tiene configuradas. No puede aceptar más conexiones hasta que algunas de las existentes se liberen.

¿Es peligroso este error?

No es peligroso en sí mismo, pero es una señal de que tu servidor está bajo presión. Si no se soluciona, tu web se volverá inaccesible para los usuarios.

¿Puedo solucionar este error desde Syspanel?

Sí, puedes hacerlo de dos maneras. Primero, puedes acceder a la consola de MySQL desde el panel si tienes la opción "Shell" o "Consola". Segundo, puedes usar la herramienta de gestión de bases de datos (como phpMyAdmin) para ejecutar los comandos SHOW PROCESSLIST y KILL. Recuerda que el puerto de acceso a Syspanel es el 2106.

¿Cuál es un buen valor para max_connections?

Depende del hardware de tu servidor y de la complejidad de tu aplicación. Como regla general, puedes empezar con 150 y subirlo a 300 si ves que se queda corto. Si necesitas más de 500, es hora de considerar una mejora de plan o una optimización más profunda de tu código.

¿Qué pasa si no tengo acceso SSH?

Si estás en un hosting compartido, contacta con tu proveedor de hosting. Ellos podrán ajustar la configuración de MySQL por ti o reiniciar el servicio para liberar las conexiones.

He subido max_connections, pero el error sigue apareciendo. ¿Qué hago?

Esto significa que el problema no es el límite, sino que tu aplicación está haciendo un uso ineficiente de las conexiones. Vuelve al Paso 2 y analiza la lista de procesos con SHOW FULL PROCESSLIST. Identifica qué aplicación o consulta está acaparando las conexiones y optimízala.

[INFO]
Recuerda que, en muchos casos, el error "Too many connections" es un síntoma de un problema más profundo, como una consulta SQL mal optimizada o un plugin de WordPress con fugas de memoria. Subir el límite temporalmente te dará aire, pero la solución definitiva pasa por optimizar tu aplicación.

Conclusión

El error "Too many connections" puede ser frustrante, pero como has visto, tiene solución. La clave está en diagnosticar correctamente la causa raíz y aplicar la solución adecuada, ya sea matar procesos zombis, aumentar el límite de conexiones o, lo más importante, optimizar tu aplicación y tu servidor para un uso más eficiente de los recursos.

Si sigues estos pasos, podrás mantener tu web estable y rápida, incluso en momentos de alto tráfico. Y si en algún momento te sientes perdido, no dudes en contactar con el soporte técnico de tu proveedor de hosting. Siempre están ahí para echar una mano.

¿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