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

Solucionar el error 'Too many connections' en MySQL/MariaDB (guía para hosting)

Actualizado el 19 de marzo de 2026

¡Hola! Si has llegado hasta aquí, probablemente te has encontrado con un mensaje de error bastante intimidante en tu web o en tu panel de control: Too many connections. No te preocupes, no eres el primero al que le pasa, y lo más importante: tiene solución.

En esta guía completa para hosting, vamos a desglosar qué significa exactamente este error, por qué ocurre y, lo más crucial, cómo solucionarlo paso a paso tanto si tienes un hosting compartido como un VPS o un servidor dedicado. Vamos a ello.

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

Imagina que tu base de datos MySQL o MariaDB es un restaurante muy popular. Tiene un número limitado de mesas (conexiones). Cuando un cliente (tu web, un plugin, un script) quiere sentarse, ocupa una mesa. Si todas las mesas están ocupadas y llega un nuevo cliente, el maître (el servidor de base de datos) le dice: "Lo siento, no hay sitio".

El error Too many connections es exactamente eso: tu servidor de base de datos tiene un límite máximo de conexiones simultáneas permitidas (definido por la variable max_connections). Cuando ese límite se alcanza, cualquier nueva solicitud de conexión es rechazada con este error.

En el contexto de MySQL/MariaDB, este error suele aparecer en tu sitio web (a veces en blanco o con un mensaje de error de WordPress), en tu panel de administración o al intentar acceder a phpMyAdmin.

[INFO] Este error no significa que tu base de datos se haya "roto" o que hayas perdido datos. Simplemente está "saturada" de peticiones en ese momento. Es un problema de recursos y configuración, no de integridad de datos.

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

Las causas pueden ser varias, y entender la raíz del problema es clave para solucionarlo de forma definitiva. Las más comunes son:

  1. Aumento repentino de tráfico: Si tu web sale en portada de un medio importante o se vuelve viral, el número de visitantes simultáneos puede dispararse, agotando las conexiones disponibles.
  2. Consultas lentas o mal optimizadas: Un plugin mal configurado, una consulta SQL ineficiente o un tema de WordPress que hace demasiadas llamadas a la base de datos pueden mantener las conexiones abiertas durante mucho tiempo, bloqueando el paso a otras nuevas.
  3. Ataques de fuerza bruta o DDoS: Los atacantes pueden lanzar miles de intentos de conexión a la vez, saturando el servidor.
  4. Procesos zombi o conexiones que no se cierran: A veces, un script se queda "colgado" y no libera su conexión a la base de datos, acumulándose con el tiempo.
  5. Límite del servidor demasiado bajo: En algunos planes de hosting compartido, el valor de max_connections es muy restrictivo (por ejemplo, 30 o 50) para proteger la estabilidad del servidor físico que comparten muchos clientes.

Soluciones paso a paso para arreglar el error MySQL/MariaDB

Aquí tienes una guía práctica, ordenada de la solución más sencilla a la más técnica. Empieza por la primera y avanza según tus conocimientos y acceso al servidor.

1. La solución rápida: Reiniciar el servicio (Si tienes acceso SSH o un panel)

Si tienes acceso a un VPS o servidor dedicado, la forma más rápida de "desatascar" temporalmente el problema es reiniciar el servicio de MySQL/MariaDB. Esto matará todas las conexiones activas y liberará el límite.

Para ello, accede por SSH a tu servidor y ejecuta uno de estos comandos:

sudo systemctl restart mysql
# o si usas MariaDB
sudo systemctl restart mariadb

[WARNING] Esto es un parche temporal. Si el problema es recurrente, reiniciar el servicio no lo solucionará de raíz. Además, en un hosting compartido, no tendrás permiso para hacer esto. Esta acción puede causar una breve interrupción del servicio en tu web.

2. Aumentar el límite de max_connections

Si el reinicio no es suficiente o quieres dar más margen, puedes aumentar el número máximo de conexiones permitidas. Esto se hace modificando la configuración de MySQL/MariaDB.

¿Cómo hacerlo en un VPS o servidor dedicado?

  1. Accede por SSH a tu servidor.
  2. Edita el archivo de configuración de MySQL/MariaDB. Normalmente se encuentra en /etc/mysql/mysql.conf.d/mysqld.cnf o /etc/mysql/my.cnf. También puede ser /etc/my.cnf.
  3. Busca la línea que dice [mysqld] y debajo de ella añade o modifica la línea:
    [mysqld]
    max_connections = 200
    
    (Puedes poner un número más alto, como 300 o 500, pero ten cuidado con la memoria RAM de tu servidor. Cada conexión consume unos pocos MB de RAM).
  4. Guarda el archivo y reinicia el servicio:
    sudo systemctl restart mysql
    

¿Cómo hacerlo en un hosting compartido?

En la mayoría de los hostings compartidos, no puedes modificar directamente el archivo de configuración. Sin embargo, a menudo puedes cambiar el valor de max_connections desde el propio archivo my.cnf de tu cuenta, si tu proveedor lo permite. Suelen ofrecer una opción en el panel de control (como cPanel o Plesk) para "ajustar las variables de MySQL".

[TIP] Si no encuentras la opción, contacta con el soporte de tu hosting y pídeles que aumenten el límite de max_connections para tu cuenta. Es una petición común y suelen hacerlo sin problema si justificas la necesidad.

3. Optimizar tus consultas y tu sitio web (La solución más efectiva a largo plazo)

Aumentar el límite es como ponerle una venda a una herida: puede funcionar por un tiempo, pero la solución real es que tu sitio no necesite tantas conexiones. Aquí es donde entra la optimización.

### Optimiza los plugins y el tema de WordPress

  • Audita tus plugins: Desactiva todos los plugins y actívalos uno a uno para ver cuál genera el error. A veces, un plugin con un error de código o una mala configuración de caché puede estar realizando cientos de consultas por minuto.
  • Usa un plugin de caché: Un buen plugin de caché (como W3 Total Cache o WP Super Cache) reduce drásticamente la carga en la base de datos, ya que sirve páginas estáticas sin necesidad de consultar MySQL en cada visita.
  • Mantén todo actualizado: WordPress, temas y plugins. Las actualizaciones suelen corregir errores de rendimiento y fugas de memoria.

### Optimiza tus consultas SQL

Si tienes conocimientos técnicos, revisa las consultas que hacen tus scripts. A veces, una consulta SELECT * FROM tabla es innecesaria y puede convertirse en SELECT campo1, campo2 FROM tabla. Usa índices en las columnas que se usan en las cláusulas WHERE y JOIN. Esta es una tarea más avanzada, pero es la que mejor rendimiento aporta.

4. Limpiar conexiones muertas o en estado "Sleep"

A veces, el problema no es el número de conexiones, sino que muchas de ellas están inactivas (en estado Sleep). Puedes verlas con el siguiente comando SQL (si tienes acceso a phpMyAdmin o la línea de comandos):

SHOW PROCESSLIST;

Si ves muchas conexiones con Command = Sleep y un Time muy alto, son conexiones que no se están cerrando correctamente. Para matarlas, puedes usar:

KILL <id_de_la_conexion>;

[WARNING] No mates conexiones que estén en estado Query, ya que podrías corromper una operación en curso. Solo mata las que estén en Sleep y lleven mucho tiempo.

Para evitar que esto ocurra, puedes reducir el tiempo de espera de las conexiones inactivas. En tu archivo de configuración, añade o modifica la variable wait_timeout:

[mysqld]
wait_timeout = 60

Esto hará que las conexiones que estén inactivas durante más de 60 segundos se cierren automáticamente, liberando espacio.

5. Usar un sistema de caché de objetos (Redis o Memcached)

Esta es una solución muy efectiva para sitios web dinámicos (como WordPress). Un sistema de caché de objetos almacena en memoria (RAM) los resultados de las consultas a la base de datos. De esta manera, cuando un usuario visita tu web, el servidor no tiene que hacer una nueva consulta a MySQL, sino que la obtiene de la memoria caché, que es muchísimo más rápida y no consume una conexión a la base de datos.

Puedes instalar Redis o Memcached en tu servidor y configurar un plugin de caché para que lo use. Esto puede reducir el número de conexiones a la base de datos en un 90% o más.

6. Contactar con tu proveedor de hosting

Si has llegado hasta aquí y el error persiste, es momento de pedir ayuda profesional.

[TIP] Si tu hosting tiene un panel de control como Syspanel, recuerda que puedes acceder a él a través del puerto 2106 (por ejemplo, https://tu-servidor:2106). Ahí podrás ver estadísticas de uso de tu base de datos y, en algunos casos, reiniciar el servicio o ajustar la configuración.

Cuando contactes con el soporte, facilítales la siguiente información:

  • La hora exacta en la que ocurrió el error.
  • El mensaje de error completo.
  • Si ha sido un evento puntual o recurrente.
  • Capturas de pantalla si las tienes.

Ellos podrán ver los logs del servidor y determinar si es un problema de tu cuenta o un fallo en el servidor compartido.

Preguntas frecuentes (FAQ) sobre el error "Too many connections"

¿Qué es max_connections en MySQL?

Es una variable de configuración que define el número máximo de conexiones simultáneas que el servidor de base de datos puede aceptar. Una vez alcanzado, se rechazan nuevas conexiones.

¿Es peligroso el error "too many connections mysql"?

No es peligroso para tus datos, pero sí para la disponibilidad de tu sitio web. Mientras el error esté activo, los visitantes no podrán ver tu web correctamente.

¿Puedo solucionar el error "error mysql hosting" sin acceso SSH?

Sí, en muchos casos. Puedes intentar optimizar tu web (desactivar plugins, activar caché), contactar con el soporte de tu hosting para que aumenten el límite, o usar un plugin para matar procesos desde el panel de administración de WordPress.

¿Cuántas conexiones max_connections debería tener?

Depende de tu plan de hosting y del tráfico de tu web. Un valor de 100 a 150 es un buen punto de partida para sitios web pequeños o medianos. Sitios con mucho tráfico pueden necesitar 300 o más. Lo ideal es monitorizar el uso real y ajustarlo en consecuencia.

¿Cómo puedo ver el número de conexiones actuales?

Puedes usar la siguiente consulta SQL en phpMyAdmin o la línea de comandos:

SHOW STATUS LIKE 'Threads_connected';

Esto te mostrará el número de conexiones activas en ese momento.

Conclusión: Resumen de acciones para solucionar el error

Para terminar, aquí tienes un resumen de las acciones que puedes tomar, ordenadas de menor a mayor complejidad:

  1. Reinicia el servicio de MySQL/MariaDB (si tienes acceso).
  2. Aumenta el valor de max_connections en la configuración.
  3. Optimiza tu sitio web: plugins de caché, revisar plugins, actualizar todo.
  4. Mata conexiones inactivas con KILL y ajusta wait_timeout.
  5. Implementa Redis o Memcached para reducir la carga en la base de datos.
  6. Contacta con tu proveedor de hosting para obtener ayuda experta.

Recuerda que el error too many connections es un síntoma de que tu servidor de base de datos está bajo presión. La solución ideal no es solo aumentar el límite, sino reducir la necesidad de conexiones mediante la optimización. Esperamos que esta guía te haya sido de gran ayuda y que hayas podido solucionar el problema.

¡Mucha suerte con tu sitio web! Si te surge cualquier otra duda, no dudes en volver a consultar nuestras guías.

¿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