Solucionar error Too Many Connections MySQL

error too many connections

📅 Publicado el 17 de agosto, 2026 · Por Equipo RedServicio

¿Por qué aparece el error too many connections en MySQL?

Entras a tu web y te encuentras con la pantalla en blanco. O peor: ese mensaje genérico de «Error estableciendo una conexión con la base de datos». El corazón te da un vuelco. Si estás leyendo esto, es probable que te hayas topado ya con el famoso error too many connections. Básicamente, tu base de datos ha puesto el cartel de «lleno». Sucede cuando el número de conexiones simultáneas supera el límite que tiene configurado tu servidor MySQL. Por defecto, este tope suele estar en 151. Parece mucho, pero para sitios con tráfico alto o con un código que no sabe cuándo dejar de pedir, se queda corto enseguida.

Al llegar a ese techo, el servidor simplemente cierra la puerta a nuevas peticiones. Se forma un cuello de botella y nadie entra. Y ojo, que no siempre es culpa de que te hayan hecho viral. A veces es simplemente un problema de configuración o de código descuidado. Vamos a ver cómo sacar al servidor del atolladero y evitar que vuelva a pasar.

Diagnóstico: Comprobando el límite actual de conexiones

Antes de tocar nada, hay que mirar bajo el capó. Necesitas saber con qué números estás jugando. Ya sea desde la terminal o desde phpMyAdmin (según cómo tengas montado tu hosting), el objetivo es claro: saber cuánto vale la variable max_connections y cuántas están en uso ahora mismo.

Si usas la línea de comandos, escribe esto:

SHOW VARIABLES LIKE 'max_connections';

El resultado es una tabla sencilla. El número que ves en Value es el techo que tienes. Si estás en un hosting compartido, es probable que no tengas mano para cambiarlo y tengas que llamar a soporte. Pero si gestionas un VPS o un dedicado, el mando está en tus manos.

También conviene saber cuántas conexiones están vivas en este preciso instante. Usa este otro comando:

SHOW STATUS WHERE `variable_name` = 'Threads_connected';

Si el número de hilos conectados toca el límite o lo iguala, ya tienes el diagnóstico confirmado. Toque de queda.

Diferencia entre conexiones activas y en reposo

No todas las conexiones abiertas están trabajando de verdad. Muchas veces, las aplicaciones dejan conexiones «durmiendo» (estado Sleep) por si acaso, esperando ser reutilizadas. También cuentan para el límite. Si ves muchas en este estado, quizá el problema no es que venga mucha gente, sino que tu código no cierra la puerta al salir.

Para verlo con tus propios ojos, ejecuta:

SHOW PROCESSLIST;

Si la lista se llena de comandos Sleep que se eternizan, tu prioridad es optimizar el código. Aumentar el límite sin arreglar esto es como poner una venda en una herida infectada.

Ajustando el parámetro max_connections

Si ya has descartado (o arreglado) las fugas de código y sigues corto de espacio, toca subir el límite. Es la solución más directa para que el servidor acepte a más gente a la vez.

Método 1: Cambio temporal (vía comandos)

Para aliviar el problema ya mismo, sin reiniciar nada, puedes usar este comando en tu cliente de MySQL:

SET GLOBAL max_connections = 500;

Aquí estamos subiendo el listón a 500. Es una buena prueba de fuego para ver si el servidor aguanta el tirón antes de hacer el cambio fijo. Ojo con la memoria RAM. Cada conexión come recursos, así que no pongas un número astronómico porque el servidor podría caerse.

Método 2: Cambio permanente (editando my.cnf)

Para que el cambio sobreviva a un reinicio, tienes que tocar el archivo de configuración my.cnf (o my.ini en Windows). Suele vivir en /etc/my.cnf o /etc/mysql/my.cnf si estás en Linux.

Abre el archivo, busca la sección [mysqld] y añade o modifica la línea:

[mysqld]
max_connections = 500

Guarda y reinicia el servicio:

sudo systemctl restart mysql

O si usas un sistema un poco más viejo:

sudo service mysql restart

Nota importante sobre recursos: Subir a 500 conexiones puede pedir prestada mucha RAM. Si tu servidor es modesto, MySQL podría empezar a usar swap o incluso crashear. Ve subiendo de poco en poco (a 200, luego 300) y vigila el consumo de memoria.

Optimización más allá de aumentar el límite

Subir el límite es a veces solo una muleta. Si el tráfico sigue subiendo, volverás a toparte con el techo. La solución de verdad pasa por optimizar cómo tu aplicación habla con la base de datos.

Revisar el tiempo de espera (wait_timeout)

Existe un parámetro llamado wait_timeout. Define cuánto tiempo aguanta MySQL una conexión abierta e inactiva antes de cortarla. Por defecto son 8 horas (28800 segundos). Demasiado si tus conexiones se quedan dormidas y ocupan sitio.

Para una web dinámica, suele ser seguro bajar este tiempo. Prueba a ponerlo a 300 segundos en tu my.cnf:

[mysqld]
wait_timeout = 300
interactive_timeout = 300

Así, las conexiones que el código se olvidó cerrar se liberarán solas antes, dejando hueco a las nuevas.

Uso de Connection Pooling

Si programas en Java, Python (Django/Flask), Node.js o .NET, implementa un pool de conexiones. Es básicamente un grupo de conexiones reutilizables en lugar de abrir y cerrar una nueva por cada clic del usuario. Reduce mucho la carga y mantiene el número de conexiones bajo control, evitando que vuelva el error too many connections.

¿Qué pasa si no tengo acceso a la configuración del servidor?

Si estás atascado en un hosting compartido y no puedes tocar my.cnf ni usar SET GLOBAL, tienes las manos atadas. Toca hablar con el soporte de tu proveedor para pedir que suban el límite. La otra opción es migrar a un plan VPS o Dedicado donde tú tengas el control. En RedServicio, por ejemplo, tenemos planes VPS optimizados precisamente para que puedas ajustar estos parámetros a tu medida, con soporte técnico que sabe de lo que habla.

Conclusión

Ver el error too many connections es la señal inequívoca de que tu base de datos está operando al límite. O que tu aplicación está siendo un poco despilfarradora con los recursos. La solución tiene dos patas: ajustar la variable max_connections para dar más aire al tráfico, y revisar el código para asegurar que se cierran las conexiones.

Recuerda que cada conexión extra cuesta memoria. Sube el límite poco a poco y vigila cómo responde el servidor. Si tu negocio crece y esto te pasa a menudo, quizá sea momento de escalar la infraestructura. Tener un proveedor de hosting que te deje jugar con la configuración y te ayude cuando se complica es fundamental para que tu web no se quede a oscuras en un pico de visitas.

📝

Equipo RedServicio

Artículos escritos y revisados por nuestro equipo técnico especializado en hosting e infraestructura web en España.

¿Listo para un hosting de verdad?

Servidores en España · Soporte 24/7 en español · Migración gratuita

Ver Planes desde 3,95€/mes →

Te puede interesar:

ClisecSeguridad informática

Página GratisCrea tu web gratis

Scroll al inicio