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

Cómo arreglar el error 'Too many connections' en MySQL desde tu panel

Actualizado el 22 de septiembre de 2025

¿Te ha pasado que tu web se queda congelada y al intentar acceder al panel de administración de tu base de datos te aparece un mensaje críptico que dice "Too many connections"? No te preocupes, no eres el único. Este es uno de los errores más comunes en entornos de hosting, y la buena noticia es que, en la mayoría de los casos, tiene una solución clara y aplicable desde tu propio panel de control.

En esta guía extensa y paso a paso, vamos a desglosar exactamente qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo desde tu panel sin necesidad de ser un experto en servidores. Vamos a ello.

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

Antes de lanzarnos a tocar configuraciones, es fundamental entender qué está pasando. Imagina que tu base de datos MySQL es un restaurante muy popular. El restaurante tiene un número limitado de mesas (conexiones). Cuando todas las mesas están ocupadas, el maître (MySQL) no puede dejar entrar a más clientes (consultas de tu web o aplicaciones) y les dice: "Lo sentimos, estamos llenos, too many connections".

Técnicamente, MySQL tiene un límite máximo de conexiones simultáneas que puede manejar. Este límite está definido por una variable llamada max_connections. Cuando tu sitio web, los plugins, los cron jobs o incluso los bots de Google intentan conectarse a la vez y superan ese número, el servidor rechaza las nuevas solicitudes con este error.

Síntomas comunes de este fallo

No siempre verás el mensaje directamente. A veces se manifiesta de otras formas:

  • Tu página web carga en blanco o muestra un error 500.
  • El panel de WordPress (o cualquier CMS) te da error al intentar iniciar sesión.
  • Los formularios de tu web no envían datos.
  • Ves el mensaje de error directamente en la pantalla de tu sitio o en los logs de error de tu panel.

Paso 1: Diagnosticar el problema desde tu panel

Lo primero que necesitas es saber cuántas conexiones estás utilizando y cuál es el límite actual. No sirve de nada aumentar el límite si el problema es un plugin que se vuelve loco y abre 500 conexiones sin cerrarlas.

Accede a tu gestor de bases de datos

La mayoría de los paneles de control (como cPanel, Plesk o Syspanel, que es el sistema que usamos nosotros y que se accede por el puerto 2106) tienen una herramienta llamada phpMyAdmin o similar.

  1. Entra en tu panel de control (por ejemplo, Syspanel en http://tu-dominio.com:2106).
  2. Busca la sección de Bases de Datos.
  3. Haz clic en phpMyAdmin o en Administrar junto a la base de datos que te da problemas.

Consulta el estado actual

Una vez dentro de phpMyAdmin, no entres todavía en tu base de datos. En la pantalla principal, busca la pestaña que dice "Estado" o "Variables" (depende de la versión).

  • En Estado, verás estadísticas en tiempo real. Busca algo llamado Threads o Conexiones actuales. Ese es el número de conexiones activas ahora mismo.
  • Ve a la pestaña Variables y busca max_connections. Ahí verás el límite máximo permitido.

[TIP]: Si el número de conexiones actuales está muy cerca del máximo (por ejemplo, tienes 145 de 150), el problema es de saturación. Si está muy bajo (por ejemplo, 5 de 150) pero aun así te da el error, el problema es que las conexiones se quedan "colgadas" o hay un bug en algún script.

Paso 2: Aumentar max_connections (La solución directa)

Si has confirmado que estás llegando al límite, la solución más rápida es subir ese límite. Aunque los cambios en MySQL suelen requerir reiniciar el servicio (algo que no puedes hacer desde un hosting compartido), en la mayoría de los paneles modernos puedes cambiarlo en caliente para que se aplique al instante.

Desde el archivo de configuración (my.cnf o my.ini)

Este método es el más "profesional" y el que sobrevive a los reinicios del servidor.

  1. Ve a la sección de Archivos o Administrador de archivos en tu panel.
  2. Busca la carpeta raíz de tu cuenta (normalmente public_html o www). A veces el archivo de configuración está en una carpeta oculta como /etc (si tienes acceso root, algo poco común en hosting compartido). Si no lo ves, este método puede no estar disponible para ti.
  3. Busca el archivo my.cnf o my.ini. Si no existe, puedes crearlo en la raíz de tu cuenta (aunque esto no siempre funciona en servidores compartidos).
  4. Edítalo y busca la línea max_connections. Si no está, añádela bajo la sección [mysqld].
[mysqld]
max_connections = 500

En este ejemplo, hemos subido el límite a 500. Guarda el archivo.

[WARNING]: Este cambio no se aplica automáticamente en todos los servidores. Necesitarás reiniciar MySQL, algo que normalmente no puedes hacer desde un panel básico. Si este método no funciona, pasa al siguiente, que es el más fiable para usuarios de hosting.

Desde el panel de control (La solución fácil)

Esta es la forma más segura y recomendada para la mayoría de los usuarios, ya que el panel se encarga de aplicar los cambios correctamente.

  1. Vuelve a phpMyAdmin.
  2. Haz clic en la pestaña "Variables" (o "Variables del servidor").
  3. En el buscador, escribe max_connections.
  4. Verás la fila correspondiente. Haz clic en el botón "Editar" (normalmente un icono de lápiz).
  5. Cambia el valor a uno más alto. Te recomiendo subirlo de forma escalonada. Si tienes 150, pásalo a 300. Si sigue fallando, a 500. No lo pongas a 10000 sin más, ya que podría sobrecargar la memoria del servidor (y el proveedor podría enfadarse).
  6. Guarda los cambios.

[INFO]: En algunos paneles, como Syspanel, esta opción puede estar oculta o restringida. Si no puedes editarla, contacta con el soporte técnico de tu hosting y pídeles que aumenten max_connections para tu cuenta. Es una petición muy común y suelen hacerlo sin problema.

Paso 3: Solucionar el error MySQL conexiones de forma definitiva (Optimización)

Aumentar el límite es un parche, no una cura. Si tu web necesita 500 conexiones, hay algo mal en su código. Aquí te dejo las causas más habituales y cómo atajarlas desde tu panel.

Revisa los procesos durmientes (Sleeping)

A menudo, el error "too many connections mysql" no es porque haya mucha gente en tu web, sino porque las conexiones no se cierran bien.

  1. En phpMyAdmin, ve a la pestaña "Procesos" o "Procesos".
  2. Verás una lista de todas las conexiones activas.
  3. Fíjate en la columna "Comando" o "Estado". Si ves muchas filas con el estado "Sleep" o "Dormir", son conexiones que están abiertas pero inactivas.
  4. Puedes seleccionarlas todas y hacer clic en "Finalizar" o "Kill" para cerrarlas manualmente.

Esto liberará espacio al instante, pero si vuelve a pasar, significa que tu aplicación no está cerrando las conexiones correctamente.

Optimiza las consultas de tu web

Si usas WordPress, un plugin mal configurado puede abrir múltiples conexiones por cada página visitada.

  • Actualiza tus plugins: Las actualizaciones suelen corregir fugas de memoria y errores de conexión.
  • Desactiva plugins uno a uno: Ve a la sección de plugins de tu panel (si usas WordPress), desactívalos todos y ve activándolos de uno en uno. Después de activar cada uno, visita tu web y revisa si el número de conexiones en phpMyAdmin se dispara. Así sabrás cuál es el culpable.
  • Instala un plugin de caché: Reducir el número de consultas a la base de datos es clave. Un buen plugin de caché (como W3 Total Cache o WP Super Cache) genera páginas estáticas y evita que se llame a MySQL constantemente.

Revisa los Cron Jobs

A veces, un cron job mal configurado se ejecuta cada minuto y abre 10 conexiones que no cierra.

  1. Ve a la sección de Tareas Programadas o Cron Jobs en tu panel.
  2. Revisa si hay alguna tarea que se ejecute muy frecuentemente (cada 5 minutos o menos).
  3. Si no es esencial, aumenta el intervalo de ejecución (por ejemplo, a cada 30 minutos) o elimínala si no sabes qué hace.

Paso 4: Soluciones avanzadas para el error base de datos

Si has llegado hasta aquí y el problema persiste, puede que necesites ajustar el tiempo de espera de las conexiones o la caché de consultas.

Ajustar el tiempo de espera (wait_timeout)

Esta variable define cuántos segundos MySQL espera antes de cerrar una conexión inactiva. Si está muy alta (por ejemplo, 28800 segundos, que son 8 horas), las conexiones "Sleep" se acumulan.

  1. En phpMyAdmin, ve a Variables.
  2. Busca wait_timeout.
  3. Edítala y cámbiala a un valor más bajo, como 60 (1 minuto) o 120 (2 minutos).

Esto hará que MySQL limpie las conexiones muertas mucho más rápido.

Aumentar la memoria del servidor (Si tienes VPS o Dedicado)

Si tu plan de hosting es VPS o dedicado, el problema puede ser que el servidor no tiene suficiente memoria para manejar el límite que quieres. Aumentar max_connections a 500 sin tener RAM suficiente causará otros errores.

[WARNING]: No aumentes max_connections a lo loco. Cada conexión consume memoria. Una regla general es que 100 conexiones requieren al menos 1GB de RAM libre. Si no sabes cuánta RAM tienes, no subas el número sin consultar antes con tu proveedor.

Preguntas Frecuentes (FAQ)

Aquí tienes las dudas más comunes que resolvemos en soporte sobre este tema.

¿Puedo aumentar max_connections desde cualquier panel de hosting?

Depende. En paneles como cPanel y Plesk, la opción de editar variables de MySQL está disponible a través de phpMyAdmin, pero el servidor puede revertir los cambios en el próximo reinicio. En Syspanel, si tienes acceso a la base de datos, puedes intentarlo, pero si no, deberás abrir un ticket de soporte. El puerto de acceso a Syspanel es el 2106.

¿Cuál es el valor recomendado para max_connections?

No hay un número mágico. Para un blog pequeño, 100 es suficiente. Para una tienda online con mucho tráfico, 300-500 es razonable. Empieza con un número que doble tu límite actual y monitoriza.

¿Por qué me sigue dando el error después de cambiar el valor?

Porque el cambio no se ha aplicado o porque el problema no es el límite, sino un error en el código. Revisa los Procesos en phpMyAdmin para ver si hay conexiones atascadas. Si las hay, el problema es de tu aplicación, no del servidor.

¿El error "Too many connections" puede deberse a un ataque DDoS?

Sí, es posible. Si de repente tienes miles de conexiones desde IPs desconocidas, puede ser un ataque. Si sospechas esto, contacta con tu proveedor de hosting inmediatamente, ya que necesitarás protección adicional a nivel de red (firewall).

Conclusión y resumen de acciones

Para solucionar error base de datos de este tipo, sigue esta escalera de acciones:

  1. Diagnostica: Entra a phpMyAdmin y mira el estado actual y el límite.
  2. Aplica el parche: Aumenta max_connections desde Variables.
  3. Limpia: Mata los procesos "Sleep" desde la pestaña Procesos.
  4. Optimiza: Revisa plugins, cron jobs y el tiempo de espera (wait_timeout).
  5. Pide ayuda: Si nada funciona, contacta a tu proveedor de hosting. Es su trabajo ayudarte a configurar el servidor, y en Syspanel (puerto 2106) estamos encantados de ayudarte a ajustar estos parámetros para que tu web respire.

Recuerda que este error es un síntoma. La solución a largo plazo no es tener un límite infinito, sino una web que use los recursos de forma eficiente. Con esta guía, ya tienes las herramientas para atacar el problema desde la raíz y desde tu propio panel.

Espero que esta guía detallada te haya sido de utilidad. Si te ha quedado alguna duda, déjala en los comentarios (si estás en un blog) o abre un ticket de soporte con la información que has recopilado. ¡Buena suerte!

¿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