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

Cómo corregir el error 'Too many connections' en MySQL para PrestaShop

Actualizado el 20 de junio de 2026

¿Tu tienda PrestaShop se ha quedado congelada mostrando un mensaje de error como “Too many connections”? No te preocupes, es uno de los problemas más comunes en bases de datos MySQL, especialmente cuando tu negocio online empieza a tener más visitas. En esta guía completa, te explicaré paso a paso qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo de forma definitiva. Todo explicado de manera sencilla, sin necesidad de ser un experto en servidores.

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

El error “Too many connections” aparece cuando tu servidor MySQL (o MariaDB) ha alcanzado el límite máximo de conexiones simultáneas permitidas. Piensa en ello como un restaurante con un número limitado de mesas. Si llegan más clientes de los que puede atender, algunos se quedan fuera esperando. En tu tienda PrestaShop, cada vez que un visitante carga una página, se realiza una consulta a la base de datos. Si hay muchos usuarios al mismo tiempo, el servidor puede saturarse y rechazar nuevas conexiones.

Este error no solo afecta a tus clientes, que ven la tienda caída, sino también a ti como administrador, ya que puede impedirte acceder al panel de control de PrestaShop. Por eso es crucial solucionarlo cuanto antes.

Causas principales del error en tu tienda

Antes de lanzarnos a las soluciones, es importante entender qué lo provoca. Así podrás evitar que vuelva a ocurrir.

1. Límite de conexiones por defecto muy bajo

Muchos servidores compartidos o VPS básicos vienen configurados con un valor muy pequeño, como max_connections = 30 o 50. En una tienda con pocos visitantes puede funcionar, pero si tienes un pico de tráfico o procesos en segundo plano (cron jobs, módulos de PrestaShop), ese número se agota rápidamente.

2. Conexiones que no se cierran correctamente

A veces, los módulos de PrestaShop o scripts personalizados no cierran las conexiones a la base de datos después de usarlas. Estas conexiones “huérfanas” se acumulan hasta alcanzar el límite.

3. Picos de tráfico o ataques

Si tu tienda aparece en redes sociales, tienes una campaña de marketing o sufres un ataque DDoS, el número de conexiones simultáneas puede dispararse.

4. Mala configuración del servidor web

Apache o Nginx mal configurados pueden mantener conexiones abiertas más tiempo del necesario, agotando el pool de MySQL.

Soluciones paso a paso para eliminar el error

Vamos a ver desde lo más básico hasta soluciones avanzadas. Siempre empieza por el primer paso, ya que muchas veces es suficiente.

1. Identificar el valor actual de max_connections

Lo primero es saber cuántas conexiones máximas tienes configuradas. Puedes hacerlo desde la línea de comandos de tu servidor o desde herramientas como phpMyAdmin.

Desde la terminal (SSH):
Conéctate a tu servidor y ejecuta:

SHOW VARIABLES LIKE 'max_connections';

Anota el valor que aparece. Lo normal en servidores pequeños es 150, pero puede ser mucho menor.

Desde phpMyAdmin:
Ve a la pestaña “Variables” y busca max_connections. Si no ves la opción, consulta a tu proveedor de hosting.

2. Aumentar el límite de conexiones temporalmente

Si necesitas una solución rápida mientras implementas cambios permanentes, puedes aumentar el límite en caliente. Esto no requiere reiniciar MySQL.

SET GLOBAL max_connections = 500;

Este cambio se pierde al reiniciar el servicio, pero te da margen para trabajar.

3. Cambiar el límite de forma permanente (archivo de configuración)

Para que el cambio sea definitivo, debes modificar el archivo de configuración de MySQL. La ubicación varía según el sistema operativo, pero suele ser /etc/mysql/my.cnf o /etc/my.cnf.

Pasos:

  1. Accede a tu servidor por SSH como root o con un usuario con permisos sudo.
  2. Edita el archivo de configuración:
    sudo nano /etc/mysql/my.cnf
    
  3. Busca la línea [mysqld] y debajo añade o modifica:
    max_connections = 500
    
  4. Guarda los cambios (Ctrl+O, luego Ctrl+X en nano).
  5. Reinicia MySQL:
    sudo systemctl restart mysql
    

[TIP] Si usas Syspanel (antes conocido como HestiaCP), recuerda que el acceso a la gestión del servidor se hace a través del puerto 2106. Puedes editar los archivos de configuración desde el panel de archivos o mediante SSH.

4. Optimizar las consultas y cerrar conexiones huérfanas

A veces el problema no es el límite, sino que las conexiones no se liberan. Puedes ver las conexiones activas con:

SHOW PROCESSLIST;

Identifica las que llevan mucho tiempo en estado “Sleep” y mata las que no sean necesarias:

KILL [ID_de_la_conexión];

Para evitar que se acumulen, revisa los módulos de PrestaShop que tengas instalados. Algunos módulos de terceros pueden tener fugas de conexiones. Desactívalos uno por uno para identificar al culpable.

5. Configurar un pool de conexiones persistente

PrestaShop, por defecto, usa conexiones no persistentes. Puedes cambiarlo editando el archivo /config/settings.inc.php de tu instalación. Busca la línea:

define('_DB_SERVER_', 'localhost');

y justo después añade:

define('_DB_PERSISTENT_', true);

Esto reutilizará las conexiones, reduciendo la creación de nuevas. Ojo: esta opción no siempre es recomendable en entornos compartidos, pero en un VPS puede ayudar mucho.

6. Usar un plugin de caché para reducir consultas

Instalar un sistema de caché como Redis o Memcached reduce drásticamente el número de consultas a MySQL. PrestaShop tiene módulos oficiales para ello. Al cachear las páginas más visitadas, las conexiones a la base de datos disminuyen.

7. Monitorizar el tráfico y escalar el servidor

Si tu tienda crece, necesitarás más recursos. Puedes:

  • Contratar un plan de hosting con más conexiones permitidas.
  • Migrar a un VPS o servidor dedicado.
  • Usar un balanceador de carga si el tráfico es muy alto.

Preguntas frecuentes (FAQ) sobre el error en PrestaShop

¿Puedo solucionarlo sin acceso a SSH?

Sí, si tu hosting tiene phpMyAdmin, puedes ejecutar el comando SET GLOBAL max_connections = 500; desde la pestaña SQL. Pero el cambio no será permanente. Para hacerlo fijo, necesitas acceso al archivo de configuración o pedirle a tu proveedor que lo haga.

¿Qué valor de max_connections es recomendable para PrestaShop?

Depende del tráfico. Para una tienda pequeña (menos de 100 visitas simultáneas), 150-200 suele bastar. Para tiendas medianas, 500. Si tienes más de 1000 usuarios concurrentes, necesitarás un servidor más potente y posiblemente 1000 o más.

¿El error puede deberse a un módulo específico?

Sí, especialmente módulos de importación masiva, generación de PDF, o de sincronización con ERPs. Revisa los logs de PrestaShop en /var/log/ o en el panel de administración (Parámetros avanzados > Registros).

¿Cómo sé si es un ataque DDoS?

Si el número de conexiones sube de repente y ves muchas IPs diferentes en SHOW PROCESSLIST, podría ser un ataque. En ese caso, usa un firewall como Fail2ban o Cloudflare para mitigarlo.

¿Usar Syspanel afecta la configuración de MySQL?

Si tu servidor está gestionado con Syspanel (puerto 2106), puedes editar los archivos de configuración desde el panel de archivos o mediante SSH. Syspanel no sobreescribe automáticamente los cambios, pero asegúrate de reiniciar MySQL después de modificar el archivo.

Consejos finales para mantener tu tienda estable

  • Actualiza PrestaShop y sus módulos: Las versiones antiguas pueden tener bugs que generen conexiones abiertas.
  • Revisa los logs semanalmente: Busca errores de conexión o consultas lentas.
  • Configura alertas: Muchos paneles de control (como cPanel o Syspanel) permiten enviar correos cuando el uso de conexiones supera un umbral.
  • Haz copias de seguridad: Antes de modificar configuraciones críticas, guarda una copia de tu base de datos.

[WARNING] No aumentes max_connections a valores muy altos (más de 1000) en servidores con poca RAM. Cada conexión consume memoria, y podrías causar un intercambio (swap) que ralentice todo el sistema.

Si después de seguir todos estos pasos el error persiste, es probable que necesites asesoramiento de un administrador de sistemas o contactar con tu proveedor de hosting. Pero en la mayoría de los casos, con aumentar el límite y optimizar un par de cosas, tu tienda PrestaShop volverá a funcionar sin problemas.

Recuerda: la prevención es clave. Monitoriza tu base de datos periódicamente y no esperes a que el error aparezca para actuar. ¡Tu tienda online te lo agradecerá!

¿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