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

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

Actualizado el 17 de junio de 2026

¿Tu tienda PrestaShop se ha quedado congelada, muestra un mensaje de error extraño como "Too many connections" y no sabes qué hacer? No te preocupes, es un problema más común de lo que parece y, sobre todo, tiene solución. Este error significa que tu base de datos MySQL ha alcanzado el límite de conexiones simultáneas permitidas. En este artículo, te explicaré paso a paso cómo solucionarlo, incluso si no eres un experto técnico. Te guiaré desde el diagnóstico hasta la solución permanente, con un lenguaje claro y sencillo.


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

Imagina que tu base de datos es una tienda física con un número limitado de puertas de entrada. Cuando demasiadas personas (procesos o scripts) intentan entrar al mismo tiempo, las puertas se bloquean y nadie más puede pasar. Eso es exactamente lo que ocurre con MySQL: el servidor tiene un límite de conexiones activas (por defecto, suele ser 151). Cuando tu PrestaShop intenta abrir más conexiones de las permitidas, aparece el error.

Las causas más habituales son:

  • Picos de tráfico: Muchos visitantes simultáneos en tu tienda.
  • Módulos mal optimizados: Algunos módulos de PrestaShop no cierran las conexiones a la base de datos correctamente.
  • Consultas lentas: Scripts o procesos que tardan mucho y mantienen ocupadas las conexiones.
  • Cron jobs o procesos en segundo plano: Tareas automáticas que se acumulan.
  • Configuración del servidor: El límite de conexiones es demasiado bajo para tu tienda.

[INFO] Este error no significa que tu base de datos esté rota, solo que está sobrecargada. Con los pasos adecuados, la recuperarás.


Diagnóstico: ¿Cómo confirmar que tienes este error?

Antes de lanzarte a solucionarlo, debes asegurarte de que el error es realmente "Too many connections". Puedes hacerlo de dos formas:

### Desde el panel de control de tu hosting (cPanel, Syspanel, etc.)

Si usas Syspanel (antes HestiaCP), accede a través del puerto 2106: https://tudominio.com:2106. Busca la sección de base de datos o "phpMyAdmin". Si no puedes entrar, significa que el error ya bloqueó el acceso.

### Desde la línea de comandos (SSH) – Si tienes acceso

Conéctate a tu servidor por SSH y ejecuta:

mysql -u root -p -e "SHOW VARIABLES LIKE 'max_connections';"

Te mostrará el límite actual. Luego, para ver cuántas conexiones hay activas:

mysql -u root -p -e "SHOW STATUS LIKE 'Threads_connected';"

Si Threads_connected es igual o muy cercano a max_connections, confirmas el problema.


Solución temporal: Recuperar el acceso a tu PrestaShop

Cuando el error aparece, lo primero es liberar conexiones para que puedas volver a entrar al panel de administración de tu tienda o a phpMyAdmin.

### Paso 1: Matar procesos inactivos desde MySQL

Si tienes acceso a la línea de comandos (SSH), ejecuta:

mysql -u root -p -e "SHOW FULL PROCESSLIST;"

Verás una lista de procesos. Los que llevan mucho tiempo en estado "Sleep" son los principales culpables. Para matarlos, usa el comando KILL seguido del ID del proceso. Por ejemplo:

mysql -u root -p -e "KILL 12345;"

[TIP] Si hay muchos procesos, puedes matar todos los que estén en "Sleep" con un script rápido. Pero si no te sientes cómodo, ve paso a paso.

### Paso 2: Aumentar temporalmente el límite de conexiones

Mientras solucionas la causa raíz, puedes aumentar el límite para que el error no se repita en minutos. Desde SSH:

mysql -u root -p -e "SET GLOBAL max_connections = 500;"

Esto cambiará el límite en caliente, pero se perderá al reiniciar MySQL (por eso es temporal).

### Paso 3: Reiniciar el servicio MySQL (si todo falla)

Si no puedes conectar ni por SSH, reinicia MySQL desde el panel de control de tu hosting o desde la terminal:

sudo systemctl restart mysql

O en Syspanel, ve a "Servicios" y reinicia MySQL.

[WARNING] Reiniciar MySQL cerrará todas las conexiones activas, incluyendo las de tus visitantes. Es una solución de emergencia, no permanente.


Solución permanente: Ajustar la configuración de MySQL

Una vez que hayas recuperado el acceso, es hora de evitar que el error vuelva a ocurrir. Esto implica modificar el archivo de configuración de MySQL (my.cnf o my.ini).

### Localizar el archivo de configuración

Dependiendo de tu sistema operativo y panel, puede estar en:

  • /etc/mysql/my.cnf
  • /etc/my.cnf
  • /etc/mysql/mariadb.conf.d/50-server.cnf (si usas MariaDB, común en Syspanel)

En Syspanel, puedes acceder al archivo desde la terminal o usando el administrador de archivos en el puerto 2106.

### Editar el límite de conexiones

Abre el archivo con un editor (nano, vim, etc.):

sudo nano /etc/mysql/my.cnf

Busca la línea max_connections (si no existe, créala bajo la sección [mysqld]). Ajusta el valor. Por ejemplo:

[mysqld]
max_connections = 500

[TIP] No pongas un número excesivo (ej. 5000) porque podría saturar la memoria del servidor. Un valor entre 200 y 500 suele ser suficiente para la mayoría de tiendas PrestaShop.

### Guardar y reiniciar MySQL

Guarda el archivo (Ctrl+O, luego Ctrl+X en nano) y reinicia el servicio:

sudo systemctl restart mysql

Verifica que el cambio se aplicó:

mysql -u root -p -e "SHOW VARIABLES LIKE 'max_connections';"

Optimización para PrestaShop: Reducir el número de conexiones

Aumentar el límite es un parche. Lo ideal es que tu PrestaShop use menos conexiones. Aquí tienes acciones concretas:

### 1. Revisa los módulos instalados

Los módulos mal programados son la causa número uno. Desactiva módulos uno por uno y observa si el número de conexiones baja. Presta especial atención a:

  • Módulos de caché.
  • Módulos de búsqueda.
  • Módulos de sincronización con ERP/CRM.

### 2. Habilita la persistencia de conexiones en PrestaShop

En el archivo /config/settings.inc.php de tu PrestaShop, busca la línea:

define('_DB_SERVER_', 'localhost');

Justo debajo, añade (si no existe):

define('_DB_PERSISTENT_', true);

Esto hará que las conexiones se reutilicen, reduciendo el número total.

[WARNING] Esta opción puede no ser compatible con todos los entornos. Si ves errores extraños, revierte el cambio.

### 3. Configura el "wait_timeout" de MySQL

Las conexiones inactivas se cierran después de un tiempo. Reduce este tiempo para liberar recursos. En el archivo my.cnf, añade:

wait_timeout = 60
interactive_timeout = 60

Esto cerrará conexiones que lleven más de 60 segundos sin actividad.

### 4. Usa un plugin de caché

Los plugins como "Cache & Performance" o "Page Cache" reducen drásticamente las consultas a la base de datos. En PrestaShop, activa la caché interna (CCC) y considera usar Varnish o Redis si tu hosting lo permite.


Preguntas frecuentes (FAQ)

### ¿Por qué aparece el error "Too many connections" solo en horas punta?

Es normal si tu tienda recibe muchos visitantes. Pero si ocurre con poco tráfico, revisa módulos o procesos en segundo plano (cron jobs). Un pico de tráfico puede saturar el límite si está muy bajo.

### ¿Puedo solucionarlo sin acceso a SSH?

Sí, si tu hosting tiene Syspanel (puerto 2106), puedes reiniciar MySQL desde el panel de servicios. También puedes contactar al soporte técnico de tu hosting para que aumenten el límite temporalmente.

### ¿Qué hago si el error vuelve después de aumentar el límite?

Entonces el problema no es el límite, sino que algo está generando demasiadas conexiones. Sigue los pasos de optimización: desactiva módulos, revisa cron jobs y considera actualizar tu plan de hosting a uno con más recursos.

### ¿Es seguro modificar el archivo my.cnf?

Sí, siempre que hagas una copia de seguridad antes. Si cometes un error, MySQL no arrancará. En ese caso, restaura la copia o elimina los cambios. En Syspanel, puedes acceder al archivo desde el administrador de archivos.

### ¿Afecta este error al SEO de mi PrestaShop?

Sí, porque mientras tu tienda está caída, los motores de búsqueda no pueden indexarla. Además, los visitantes se van y la tasa de rebote aumenta. Solucionarlo rápido es clave para tu posicionamiento.


Resumen final

El error "Too many connections" en MySQL para PrestaShop es frustrante pero solucionable. Recuerda el orden de actuación:

  1. Diagnostica el problema (confirma el error y el límite actual).
  2. Aplica una solución temporal (mata procesos o reinicia MySQL).
  3. Ajusta la configuración permanente (aumenta max_connections y optimiza tiempos).
  4. Optimiza tu PrestaShop (revisa módulos, activa persistencia y usa caché).

Si sigues estos pasos, tu tienda volverá a funcionar sin problemas. Y si en algún momento te sientes abrumado, no dudes en pedir ayuda a tu proveedor de hosting o a un técnico especializado.

[TIP] Lleva un registro de las conexiones con herramientas como MySQLTuner o phpMyAdmin. Así anticiparás problemas antes de que ocurran.

Espero que este artículo te haya sido de gran ayuda. ¡Tu PrestaShop merece estar siempre online y sin errores!

¿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