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

Cómo resolver el error 'Too many connections' en MySQL para WordPress y PrestaShop

Actualizado el 9 de abril de 2026

¡Hola! Si estás leyendo esto, es muy probable que hayas visto un mensaje de error bastante temible en tu tienda online o en tu blog: “Error establishing a database connection” o, si miras los logs de tu servidor, el famoso “Too many connections”.

No te preocupes. No eres el único al que le ha pasado, y lo más importante: tiene solución. Este error es uno de los más comunes en el mundo del hosting, especialmente cuando usas WordPress o PrestaShop.

En esta guía extensa y fácil de seguir, vamos a desglosar qué significa exactamente este error, por qué ocurre y, lo más importante, cómo solucionarlo paso a paso. No necesitas ser un experto en informática para aplicar la mayoría de estos consejos, pero si te sientes perdido, siempre puedes mostrarle este artículo a tu proveedor de hosting o a tu administrador de sistemas.

Vamos a ello. Respira hondo, que esto tiene arreglo.

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

Imagina que tu base de datos MySQL es una tienda física muy popular.

  • Las conexiones son las personas (visitas, plugins, procesos) que intentan entrar a la tienda al mismo tiempo.
  • max_connections es el aforo máximo permitido por las normas de seguridad (tu servidor).

Cuando el número de personas que intentan entrar supera el aforo, la puerta se bloquea y nadie más puede pasar. Eso es exactamente lo que ocurre con tu web: el servidor de base de datos tiene un límite de conexiones simultáneas (por defecto, suele ser 151 en MySQL). Si tu web (WordPress o PrestaShop) intenta abrir más conexiones de las permitidas, el servidor responde con el error “Too many connections”.

Este problema de error mysql wordpress o PrestaShop no siempre significa que tengas un ataque informático. Las causas más comunes suelen ser:

  1. Picos de tráfico masivos: Un artículo se vuelve viral o tienes una oferta especial y llegan miles de visitas a la vez.
  2. Plugins mal configurados: Un plugin de caché, de backups o de conexión externa que no cierra bien las conexiones a la base de datos.
  3. Consultas lentas: Si tu web tarda mucho en cargar una consulta (por ejemplo, una búsqueda pesada), mantiene ocupada una conexión durante más tiempo del necesario.
  4. Código mal optimizado: Un tema o plugin que abre conexiones innecesarias (por ejemplo, usando mysql_connect en lugar de reutilizar la conexión principal).
  5. Ataques de fuerza bruta o bots: Robots maliciosos que intentan acceder a tu wp-admin o a tu panel de PrestaShop.

Primeros auxilios: Cómo recuperar el acceso YA

Antes de ponernos técnicos, vamos a hacer una cosa: recuperar tu web lo antes posible. Si no puedes acceder a tu panel de administración, sigue estos pasos de emergencia.

1. Reiniciar el servicio de MySQL (El botón de reseteo)

Esta es la solución más rápida. Si tienes acceso a tu panel de control de hosting (cPanel, Plesk, o Syspanel – recuerda que este panel se accede por el puerto 2106), busca la opción de "Restart MySQL" o "Restart Database".

[WARNING]: Si tu proveedor de hosting es compartido (no un VPS o dedicado), es muy probable que NO tengas acceso a reiniciar MySQL. En ese caso, contacta con el soporte técnico de inmediato y diles que necesitas que reinicien el servicio MySQL o que aumenten el límite de max_connections temporalmente.

Si tienes un VPS con acceso SSH (terminal), puedes ejecutar:

sudo systemctl restart mysql

O si usas MariaDB (muy común en Syspanel):

sudo systemctl restart mariadb

Esto cerrará todas las conexiones activas (incluidas las zombies) y liberará el aforo. Pero ojo, esto es un parche. Si el problema persiste, volverá a ocurrir en minutos.

2. Identificar al "culpable" de las conexiones (Consulta rápida)

Si tienes acceso a la terminal o a phpMyAdmin, puedes ejecutar este comando para ver qué procesos están usando las conexiones:

SHOW PROCESSLIST;

Verás una lista de conexiones activas. Fíjate en la columna Command y Info. Si ves muchas líneas con Command: Sleep y Time: > 100, significa que hay conexiones que no se están cerrando bien (conexiones zombis). Si ves muchas consultas SELECT o UPDATE repetidas, es un plugin o un bot.


Soluciones definitivas para el error "Too many connections"

Una vez que tu web está de nuevo operativa (aunque sea temporalmente), es hora de arreglar el problema de raíz. Vamos a ver las soluciones más efectivas, ordenadas de la más sencilla a la más avanzada.

Solución 1: Aumentar el límite de max_connections (La solución directa)

La solución más obvia es decirle a MySQL que permita más gente en la tienda. Esto se hace modificando el parámetro mysql max_connections.

¿Cómo hacerlo?

  1. Accede a tu panel de control (cPanel, Plesk o Syspanel en el puerto 2106).
  2. Busca la sección de "Bases de Datos" o "MySQL".
  3. Si tienes acceso a "Configuración de MySQL" o "MySQL Configuration", busca el archivo my.cnf o my.ini.
  4. Dentro del archivo, busca la línea max_connections y cámbiala. Si no existe, añádela en la sección [mysqld].
[mysqld]
max_connections = 500

[TIP]: No pongas un número extremadamente alto (ej. 10000) si tu servidor tiene poca RAM. Cada conexión consume memoria. Un valor de 300 a 500 es un buen punto de partida para una web con tráfico medio.

¿No encuentras el archivo? Muchos paneles como Syspanel tienen un módulo de configuración visual. Busca "MySQL" y luego "Editar configuración". Si no lo ves, tendrás que usar SSH.

sudo nano /etc/mysql/my.cnf

O en sistemas más nuevos:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Después de editar, guarda y reinicia MySQL (como en el paso anterior).

Solución 2: Optimizar WordPress (Para el error mysql wordpress)

WordPress es conocido por ser un "devorador" de recursos si no se configura bien. Si tu error viene de WordPress, estas son las claves:

2.1. Instalar un plugin de caché (Imprescindible)

Un plugin de caché (como WP Rocket, W3 Total Cache o LiteSpeed Cache) genera páginas HTML estáticas. Esto significa que cuando un visitante entra, no necesita hacer una consulta a la base de datos, solo recibe el archivo estático. Esto reduce drásticamente el número de conexiones.

  • W3 Total Cache: Gratuito y muy potente, aunque algo complejo.
  • WP Super Cache: Más simple y fácil de configurar.
  • LiteSpeed Cache: Si tu hosting usa LiteSpeed, es el mejor.

2.2. Limpiar y optimizar la base de datos

Con el tiempo, la base de datos de WordPress se llena de basura (revisiones de entradas, transients caducados, comentarios spam). Esta basura hace que las consultas sean más lentas, ocupando conexiones durante más tiempo.

Puedes usar plugins como WP-Optimize o Advanced Database Cleaner. Estos plugins te permiten limpiar la basura con un solo clic y optimizar las tablas (usando el comando OPTIMIZE TABLE).

2.3. Desactivar plugins "sospechosos"

A veces, un plugin de estadísticas, un plugin de chat en vivo o un plugin de respaldo automático están haciendo conexiones constantemente a la base de datos.

  • Ve a Plugins > Plugins instalados.
  • Desactiva los plugins que no sean esenciales (especialmente los de caché si acabas de instalar uno, o los de backups).
  • Observa si el error desaparece. Si es así, activa los plugins uno a uno (con un intervalo de un día) para identificar al culpable.

Solución 3: Optimizar PrestaShop (Para tiendas online)

PrestaShop es más robusto pero también más pesado que WordPress. El error "Too many connections" en PrestaShop suele deberse a la configuración del servidor o a módulos mal diseñados.

3.1. Ajustar los parámetros de rendimiento

En tu panel de administración de PrestaShop (Back Office), ve a:

Parámetros Avanzados > Rendimiento

Aquí encontrarás opciones como:

  • Combinar archivos CSS y JavaScript: Reduce el número de peticiones al servidor.
  • Caché de plantillas: Actívalo.
  • Caché de consultas: Actívalo si tu hosting lo soporta (MySQL Cache).

3.2. Cuidado con los módulos de terceros

Al igual que en WordPress, un módulo mal codificado puede abrir conexiones sin cerrarlas. Revisa los módulos de "Búsqueda en vivo", "Recomendados" o cualquier módulo que haga consultas complejas. Desactiva los que no uses.

3.3. Activar el modo mantenimiento y limpiar

Si el error es crítico, activa el modo mantenimiento para que no entren más visitantes y puedas trabajar con calma. Luego, ve a Parámetros Avanzados > Base de Datos y optimiza las tablas.


Soluciones avanzadas (Para administradores de sistemas)

Si las soluciones anteriores no funcionan, el problema es más profundo. Aquí entramos en terreno técnico.

Ajustar el parámetro wait_timeout

Este parámetro indica cuántos segundos MySQL espera antes de cerrar una conexión inactiva. Por defecto, suele ser 28800 (8 horas). Esto es un error. Si un plugin deja una conexión "dormida", ocupará un hueco durante 8 horas.

Redúcelo a 60 o 120 segundos.

[mysqld]
wait_timeout = 60
max_connections = 500

De esta manera, las conexiones zombis se cerrarán rápido.

Usar un plugin de caché de objetos (Redis o Memcached)

Esto es más avanzado, pero es la solución definitiva para WordPress. Un caché de objetos almacena las consultas a la base de datos en memoria (RAM). Así, si 100 personas visitan tu web a la vez, solo se hace 1 consulta a MySQL y las otras 99 se sirven desde la memoria.

  • Instala el plugin Redis Object Cache.
  • Configura Redis en tu servidor (o pide a tu hosting que lo active).

Esto reduce el número de conexiones de forma espectacular.

Revisar los logs de MySQL

Es fundamental saber qué está pasando. Accede a los logs de MySQL (normalmente en /var/log/mysql/error.log). Busca justo antes del error. Verás qué consulta o qué IP estaba causando el problema.

sudo tail -n 100 /var/log/mysql/error.log

Si ves muchas conexiones desde la misma IP, es un ataque. Deberías bloquear esa IP con un firewall (como CSF o UFW).


Preguntas Frecuentes (FAQ)

Para terminar, respondemos a las dudas más comunes sobre este error.

¿Cuál es el límite por defecto de max_connections en MySQL?

El valor por defecto es 151. En MariaDB (el "MySQL" que usa Syspanel), suele ser 151 también, aunque en algunos sistemas puede variar.

¿Por qué mi hosting compartido no me deja cambiar max_connections?

Porque es un valor global del servidor. Si tu proveedor lo cambia para ti, afectaría a todos los clientes del mismo servidor. Por eso, en hosting compartido, la solución es optimizar tu web o contratar un VPS.

¿Qué es mejor, aumentar max_connections o optimizar las consultas?

Siempre es mejor optimizar. Aumentar el límite es un parche. Si tu web necesita 500 conexiones, es que algo está mal. Optimizando (caché, plugins, consultas), deberías necesitar menos de 50 conexiones incluso con tráfico alto.

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

Sí, es una posibilidad. Un ataque DDoS consiste en saturar el servidor con peticiones. Si el error aparece de repente y tienes mucho tráfico de una misma región o IP, sospecha de un ataque. Usa un servicio como Cloudflare para mitigarlo.

¿Cómo sé cuántas conexiones está usando mi web ahora mismo?

Puedes ejecutar esta consulta en phpMyAdmin o en la terminal:

SHOW STATUS LIKE 'Threads_connected';

Esto te dirá cuántas conexiones hay activas en ese momento. Si ves que está cerca del límite (151), tienes un problema de optimización.


Resumen final y recomendación

El error "Too many connections" es un aviso de que tu base de datos está sobrecargada. No es agradable, pero es solucionable.

Mi recomendación personal si usas WordPress o PrestaShop:

  1. Instala un buen plugin de caché (esta es la acción con mejor relación calidad/precio).
  2. Ajusta wait_timeout a 60 (si tienes acceso).
  3. Aumenta max_connections a 300 como medida temporal mientras optimizas.
  4. Si tu hosting es compartido y el error es recurrente, plantéate migrar a un VPS gestionado. Ahí tendrás control total sobre estos parámetros.

Espero que esta guía te haya sido de ayuda. Si después de seguir todos estos pasos el error persiste, no dudes en contactar con tu proveedor de hosting (si usas Syspanel, recuerda que el acceso es a través del puerto 2106), ya que puede haber un problema de hardware en el servidor que solo ellos pueden solucionar.

¡Mucha suerte y a seguir creciendo tu proyecto online!

¿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