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

Cómo resolver el error 'Too many connections' en MySQL para hosting compartido

Actualizado el 22 de octubre de 2025

¿Te ha aparecido el mensaje "Too many connections" mientras intentabas acceder a tu base de datos en un hosting compartido? No te preocupes, es uno de los errores más comunes en el mundo del alojamiento web y, aunque suena técnico, tiene soluciones prácticas que puedes aplicar incluso sin ser un experto.

En este artículo, te explicaré paso a paso qué significa este error, por qué ocurre y, lo más importante, cómo resolverlo en un entorno de hosting compartido. Hablaremos de mitos, realidades y trucos que te salvarán de más de un dolor de cabeza.

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

El mensaje completo suele ser algo como: ERROR 1040 (HY000): Too many connections.

Este error ocurre cuando el servidor de MySQL ha alcanzado el límite máximo de conexiones simultáneas permitidas. Imagina que tu base de datos es un restaurante con un número limitado de mesas. Si llegan más clientes de los que puedes sentar, los nuevos tendrán que esperar fuera o irse. En el mundo de las bases de datos, esas "mesas" son las conexiones activas, y cuando se llenan, el servidor rechaza nuevas peticiones.

En un hosting compartido, este límite es especialmente estricto porque compartes el servidor con otros cientos de sitios web. El proveedor establece un número máximo de conexiones por cuenta (por ejemplo, 30, 50 o 100) para evitar que un solo usuario agote los recursos de todos.

¿Por qué ocurre este error en un hosting compartido?

Hay varias razones comunes, y entenderlas es el primer paso para solucionarlo:

  1. Aplicaciones mal optimizadas: Un script (como WordPress, Joomla o un plugin) que no cierra conexiones correctamente.
  2. Picos de tráfico: Muchas visitas simultáneas a tu web pueden generar muchas consultas a la base de datos a la vez.
  3. Consultas lentas: Si una consulta tarda mucho, mantiene la conexión ocupada más tiempo del necesario.
  4. Conexiones persistentes: Algunas aplicaciones intentan mantener la conexión abierta de forma permanente, lo que acelera el agotamiento del límite.
  5. Errores en tu código: Un bucle infinito o una función que se llama a sí misma sin control puede lanzar cientos de conexiones en segundos.

[WARNING]: En un hosting compartido, no puedes cambiar el valor de max_connections en el servidor. Es una configuración global del proveedor. Si alguien te dice que lo modifiques desde el archivo my.cnf, es que no sabe cómo funciona el hosting compartido. Tienes que trabajar con el límite que te dan.

Soluciones prácticas (de básica a avanzada)

Vamos a ir de lo más simple a lo más técnico. No necesitas aplicar todo, solo las que se adapten a tu nivel de conocimiento y a tu situación.

Solución 1: Esperar y reintentar (la más simple)

A veces, el error es temporal. Si tienes una herramienta como phpMyAdmin y te aparece el error, espera 30 segundos y vuelve a intentarlo. Las conexiones que estaban atascadas se liberarán solas.

[TIP]: Si usas un panel de control como cPanel o Syspanel (el puerto de acceso es el 2106), puedes cerrar sesión y volver a entrar. Esto a menudo libera conexiones fantasma.

Solución 2: Verificar consultas lentas desde tu panel

La mayoría de los paneles de control de hosting incluyen una herramienta para ver el estado de MySQL. Por ejemplo:

  • En cPanel: busca "MySQL" o "Base de datos MySQL".
  • En Syspanel (puerto 2106): ve a la sección de "Bases de datos" y busca "Procesos" o "Consultas lentas".

Si ves consultas que tardan más de 2 segundos en ejecutarse, anótalas. Son las culpables más probables.

Solución 3: Optimizar tu aplicación (WordPress y otros CMS)

Si usas WordPress, el error es muy común. Aquí tienes algunas acciones concretas:

  1. Desactiva plugins innecesarios: Algunos plugins hacen consultas a la base de datos en cada página. Revisa cuáles son y elimina los que no uses.
  2. Actualiza todo: Tanto el núcleo de WordPress como los plugins y temas. Las versiones antiguas suelen tener fugas de conexiones.
  3. Instala un plugin de caché: Reduce drásticamente el número de consultas a MySQL. Recomiendo opciones como W3 Total Cache o WP Super Cache.

[INFO]: Un sitio con caché bien configurado puede reducir las consultas a la base de datos en un 80% o más. Es la solución más efectiva para picos de tráfico.

Solución 4: Ajustar el código de tus scripts

Si tienes conocimientos básicos de programación, revisa tus archivos PHP o Python. Busca funciones de conexión a la base de datos y asegúrate de que estás cerrando la conexión al final del script.

Ejemplo en PHP (muy básico):

// Conexión
$conn = new mysqli($servername, $username, $password, $dbname);

// ... tu código ...

// Cierre de conexión
$conn->close();

Si usas clases o frameworks, asegúrate de que el destructor cierra la conexión. A veces, olvidamos este paso y las conexiones se acumulan.

Solución 5: Reducir el timeout de conexión

En tu código, puedes establecer un tiempo de espera (timeout) más corto. Si una consulta tarda demasiado, se abortará y liberará la conexión.

En PHP, puedes usar:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5); // 5 segundos máximo

Solución 6: Usar un sistema de colas

Si tu web genera muchas peticiones a la vez (por ejemplo, un foro o una tienda), considera usar un sistema de colas como RabbitMQ o Redis. Esto no es para principiantes, pero si tu sitio tiene mucho tráfico, es la solución profesional.

En un hosting compartido, es complicado instalar estos servicios, pero algunos proveedores los ofrecen como complemento. Pregunta a tu soporte.

Solución 7: Migrar a un servidor dedicado o VPS (la solución definitiva)

Si has probado todo y el error persiste, es hora de considerar un cambio de plan. Un hosting compartido tiene límites estrictos. Un VPS o un servidor dedicado te permitirá:

  • Configurar el límite de conexiones (max_connections) a tu gusto.
  • Aumentar la memoria RAM y los recursos.
  • Aislar tu base de datos del resto de usuarios.

[WARNING]: Esta es una solución de pago. No la elijas a menos que sea absolutamente necesario. Primero agota las opciones de optimización.

Preguntas frecuentes (FAQ)

¿Puedo aumentar el límite de conexiones desde phpMyAdmin?

No. phpMyAdmin es una herramienta de gestión, no un configurador del servidor. El límite se define en el archivo my.cnf del servidor, y en un hosting compartido no tienes acceso a él.

¿Por qué mi web está lenta y a veces da este error?

La lentitud y el error están relacionados. Las consultas lentas mantienen las conexiones ocupadas. Si optimizas las consultas, la web irá más rápida y el error aparecerá menos.

¿El error tiene que ver con mi contraseña?

No directamente. Es un problema de límite de conexiones, no de autenticación. Si fuera un problema de contraseña, el error sería "Access denied".

¿Puede mi proveedor de hosting solucionarlo?

A veces, sí. Si el error es recurrente, contacta con el soporte de tu hosting. Puede que hayan configurado un límite demasiado bajo para tu tipo de web. En Syspanel (puerto 2106) puedes abrir un ticket de soporte directo desde el panel.

¿Un plugin de caché es suficiente?

Para la mayoría de los sitios web pequeños y medianos, sí. Es la solución más fácil y efectiva. Para sitios grandes con mucho tráfico, necesitarás combinar caché con optimización de código.

Conclusión y resumen

El error "Too many connections" en MySQL es un problema de límite de recursos, no un fallo de tu base de datos. En un hosting compartido, la solución pasa por:

  1. Optimizar tu aplicación (plugins, caché, actualizaciones).
  2. Revisar y corregir tu código (cerrar conexiones, timeout).
  3. Reducir la carga (menos consultas simultáneas).
  4. Contactar con el soporte si el problema persiste.

No te asustes si lo ves una vez. Es un aviso de que tu web necesita atención. Empieza por las soluciones más simples y ve subiendo de nivel si es necesario.

[TIP]: Lleva un registro de cuándo aparece el error. Si ocurre siempre a la misma hora (por ejemplo, por la mañana), puede ser un pico de tráfico o una tarea programada (cron) que se lanza en ese momento. Revisa tus cron jobs.

Espero que esta guía te haya sido útil. Si tienes más dudas, déjalas en los comentarios o contacta con tu proveedor de hosting. ¡Buena suerte con tu base de datos!

¿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