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

Cómo resolver el error 'Too many connections' en bases de datos MySQL (Plesk y cPanel)

Actualizado el 11 de octubre de 2025

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

Si has llegado hasta aquí, probablemente te has encontrado con un mensaje parecido a este al intentar acceder a tu web o a tu panel de administración:

“Warning: mysqli::__construct(): (HY000/1040): Too many connections”

O quizás algo más simple como:

“ERROR 1040: Too many connections”

No te preocupes, es un error más común de lo que parece y, sobre todo, tiene solución. Vamos a explicarlo de forma sencilla.

Imagina que tu base de datos MySQL es un restaurante muy popular. Tiene un número limitado de mesas (conexiones). Cuando todas las mesas están ocupadas, los nuevos clientes (peticiones de tu web, plugins, usuarios, etc.) no pueden entrar y reciben el aviso de “restaurante lleno”. Eso es exactamente lo que ocurre con el error Too many connections.

El problema es que, a diferencia de un restaurante, si las conexiones no se liberan correctamente, el “comedor” se llena muy rápido y tu web se queda bloqueada. La buena noticia es que, tanto en Plesk como en cPanel, puedes resolverlo de varias maneras, desde las más sencillas hasta las más técnicas.


Paso 1: Identifica la causa raíz del problema

Antes de lanzarnos a cambiar configuraciones, es importante saber por qué se han agotado las conexiones. Las causas más frecuentes son:

  • Consultas lentas o mal optimizadas: Un plugin o una consulta SQL que tarda muchísimo en ejecutarse mantiene la conexión abierta durante más tiempo del necesario.
  • Aplicaciones que no cierran conexiones: Algunos scripts (sobre todo si están mal programados) abren conexiones a la base de datos y no las cierran al terminar.
  • Ataques de fuerza bruta o tráfico repentino: Un pico de visitas muy alto o un bot atacando tu web pueden saturar el límite de conexiones.
  • Configuración del servidor demasiado baja: El valor por defecto de max_connections en muchos servidores compartidos es de 150 o menos, y a veces no es suficiente para el tipo de web que tienes.

Para diagnosticarlo, puedes acceder a tu panel de control (Plesk o cPanel) y mirar los logs de error de MySQL, o usar herramientas como phpMyAdmin para ejecutar una consulta que te diga cuántas conexiones hay activas.

[INFO] Si no te sientes cómodo con comandos, no pasa nada. En los siguientes pasos te doy soluciones para todos los niveles.


Paso 2: Soluciones inmediatas (para que tu web vuelva a funcionar YA)

Si tu web está caída, necesitas una solución rápida. Estas son las más efectivas:

2.1. Reiniciar el servicio MySQL (desde Plesk o cPanel)

La forma más rápida de “limpiar” todas las conexiones colgadas es reiniciar el servicio de MySQL. Es como apagar y encender el restaurante para que se vayan todos los clientes que se han quedado dormidos en las mesas.

En cPanel:

  1. Entra en tu panel de control.
  2. Busca la sección “Administración de servicios” o “Restart Services” (a veces está dentro de “Advanced”).
  3. Localiza “MySQL” y haz clic en el botón de reiniciar.

En Plesk:

  1. Accede a tu panel de Plesk.
  2. Ve a “Herramientas y ajustes”.
  3. Busca la opción “Servicios” o “Gestión de servicios”.
  4. Encuentra el servicio MySQL y haz clic en el icono de reiniciar.

[WARNING] Esta acción cortará todas las conexiones activas en ese momento. Es normal que tu web tarde unos segundos en volver a estar operativa. No es una solución definitiva, pero te saca del apuro.

2.2. Aumentar el límite de conexiones temporalmente (desde phpMyAdmin)

Otra opción rápida es aumentar el número máximo de conexiones permitidas sin reiniciar el servicio. Necesitas acceso a phpMyAdmin.

  1. Entra en phpMyAdmin desde tu panel (en cPanel suele estar en “Bases de Datos”, en Plesk dentro de la base de datos concreta).
  2. Haz clic en la pestaña “Variables” o “Estado” (la ubicación puede variar).
  3. Busca la variable max_connections.
  4. Si puedes editarla (a veces no te deja), cámbiala a un valor más alto, por ejemplo, 500.
  5. Guarda los cambios.

[INFO] Este cambio es temporal y se pierde al reiniciar el servidor. Sírvelo como un “parche” mientras aplicas la solución definitiva del paso siguiente.


Paso 3: Soluciones definitivas (configurando el servidor correctamente)

Aquí es donde vamos a arreglar el problema de raíz. La clave está en ajustar la configuración de MySQL en el archivo my.cnf (o my.ini en Windows).

3.1. Localizar y editar el archivo de configuración de MySQL

En cPanel:

  1. Accede por SSH a tu servidor (necesitas credenciales de root o de usuario con permisos).
  2. El archivo suele estar en /etc/my.cnf o /etc/mysql/my.cnf.
  3. También puedes usar el “Editor de configuración de MySQL” que viene en cPanel (dentro de “Software” o “Servicios”). Esta opción es más segura si no estás acostumbrado a la terminal.

En Plesk:

  1. Igual que en cPanel, necesitas acceso SSH.
  2. El archivo de configuración generalmente está en /etc/my.cnf.
  3. Otra opción es usar el administrador de archivos de Plesk para localizarlo, aunque será más seguro hacerlo por SSH.

3.2. Ajustar las variables clave

Dentro del archivo de configuración, busca la sección [mysqld] y añade o modifica estas líneas:

  • max_connections: Es el número máximo de conexiones simultáneas. Un valor razonable para empezar es 500, pero si tu servidor tiene muchos recursos, puedes subirlo a 1000. No lo pongas demasiado alto si tu RAM es limitada, o podrías causar otros problemas.
  • max_connect_errors: Este valor controla cuántos errores de conexión se permiten antes de que una IP sea bloqueada. Si tienes ataques, puedes subirlo a 1000 o 10000.
  • wait_timeout y interactive_timeout: Son el tiempo (en segundos) que MySQL espera antes de cerrar una conexión inactiva. Reducirlos ayuda a liberar conexiones colgadas. Por ejemplo, wait_timeout = 60 (un minuto) es un buen valor para webs con mucho tráfico.
  • connect_timeout: Tiempo máximo para establecer una conexión. Un valor de 10 es suficiente.

Ejemplo de cómo quedaría la sección:

[mysqld]
max_connections = 500
max_connect_errors = 1000
wait_timeout = 60
interactive_timeout = 60
connect_timeout = 10

[TIP] Si no sabes cuánta RAM tienes, una regla rápida es: max_connections * (uso medio por conexión) no debe superar el 70% de tu RAM total. Cada conexión puede consumir entre 1MB y 5MB, así que ve con cuidado.

3.3. Reiniciar MySQL para aplicar los cambios

Después de guardar el archivo, es imprescindible reiniciar el servicio MySQL para que los cambios surtan efecto.

En cPanel:

/etc/init.d/mysql restart

En Plesk:

systemctl restart mysql

O también puedes usar el panel gráfico para reiniciar el servicio como vimos antes.


Paso 4: Optimizar tus aplicaciones para evitar futuros bloqueos

Cambiar la configuración del servidor es fantástico, pero si el problema es que una aplicación hace un mal uso de las conexiones, volverá a pasar. Aquí tienes algunos consejos para que no tengas que volver a leer este artículo.

4.1. Usa un plugin de caché

Si usas WordPress, un plugin de caché como W3 Total Cache o WP Super Cache reduce drásticamente el número de peticiones a la base de datos. Tu web cargará más rápido y consumirá menos conexiones.

4.2. Revisa los plugins y temas

Un plugin mal programado es la causa número uno de este error. Desactiva los plugins uno a uno y observa si el error desaparece. Si encuentras al culpable, busca una alternativa o contacta con su desarrollador.

4.3. Optimiza tus consultas SQL

Si tienes conocimientos técnicos, revisa las consultas que hace tu aplicación. Añadir índices a las tablas que se consultan con frecuencia puede reducir el tiempo de ejecución de las consultas de segundos a milisegundos.

4.4. Implementa un sistema de colas

Si tu web envía muchos correos o procesa tareas pesadas, considera usar un sistema de colas como RabbitMQ o Redis. Así, las tareas se procesan en segundo plano y no saturan la base de datos en horas punta.


Paso 5: Soluciones específicas para Plesk y cPanel

Aunque la configuración general es similar, cada panel tiene sus particularidades.

5.1. En Plesk

Plesk tiene una herramienta llamada “Monitor de Salud” que puede ayudarte a detectar picos de conexiones. También puedes configurar alertas para que te avisen cuando el número de conexiones supere un umbral.

Otra opción es usar el administrador de procesos de Plesk para ver qué procesos de MySQL están consumiendo más recursos y matarlos si es necesario.

[TIP] Si tu servidor usa Syspanel (antes conocido como HestiaCP), el acceso a la gestión de servicios se realiza a través del puerto 2106. Allí también puedes reiniciar MySQL y editar su configuración de forma más visual.

5.2. En cPanel

cPanel ofrece “MySQL® Database Configuration” dentro de “Software” o “Servicios”. Esta interfaz te permite ajustar las variables de MySQL sin necesidad de tocar el archivo manualmente, lo cual es más seguro para principiantes.

También puedes usar “MySQL® Process Manager” para ver qué consultas están activas y, si alguna se ha quedado bloqueada, matarla.


Preguntas frecuentes (FAQ)

¿Por qué sigo viendo el error después de reiniciar MySQL?

Si reinicias y el error vuelve a aparecer a los pocos minutos, la causa es una aplicación que está haciendo un mal uso de las conexiones. Revisa los logs y los plugins como indicamos en el paso 4.

¿Cuál es el valor ideal de max_connections?

No hay una respuesta única. Depende de tu hardware y del tipo de web. Empieza con 500 y monitorea el uso. Si ves que se queda corto, súbelo gradualmente.

¿Puedo dañar mi servidor si subo demasiado max_connections?

Sí. Si pones un valor demasiado alto y tu servidor no tiene suficiente RAM, MySQL puede consumir toda la memoria y provocar que el sistema operativo se bloquee. Ve con cuidado y haz cambios graduales.

¿Qué debo hacer si no tengo acceso SSH?

Si estás en un hosting compartido, es posible que no tengas acceso SSH. En ese caso, contacta con tu proveedor de hosting y pídeles que aumenten el límite de max_connections. Es una petición común y suelen aceptarla sin problema.

¿Es mejor usar un hosting con más recursos?

Si tu web tiene un tráfico alto y constante, puede que el problema sea que tu plan de hosting es demasiado limitado. Considera migrar a un VPS o a un plan dedicado donde tengas más control y recursos.


Resumen final

El error “Too many connections” en MySQL es un problema serio pero solucionable. La clave está en:

  1. Diagnosticar la causa (consultas lentas, plugins mal programados, etc.).
  2. Aplicar una solución rápida (reiniciar MySQL o subir el límite temporalmente).
  3. Configurar correctamente el servidor (ajustando max_connections, wait_timeout, etc.).
  4. Optimizar tu web para prevenir futuros bloqueos.

Tanto en Plesk como en cPanel tienes herramientas para gestionar este problema, ya sea desde el panel gráfico o desde la terminal.

Espero que esta guía te haya sido de ayuda. Si sigues teniendo problemas, no dudes en contactar con tu proveedor de hosting o con un administrador de sistemas. ¡Tu web volverá a estar en línea en un abrir y cerrar de ojos!

¿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