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

Solucionar error 'Too many connections' en base de datos MySQL desde Syspanel

Actualizado el 8 de mayo de 2026

¡Hola! Soy tu técnico de soporte amigable. 😊

Si estás leyendo esto, seguramente te has topado con el temido mensaje "Too many connections" al intentar acceder a tu base de datos MySQL desde Syspanel. No te preocupes, es un error común y más fácil de solucionar de lo que parece.

En este artículo, te guiaré paso a paso para que entiendas por qué ocurre y cómo resolverlo. Recuerda que Syspanel es la herramienta de administración de tu servidor (accesible por el puerto 2106), y desde ella gestionamos todo lo relacionado con tu hosting.

Vamos a ello.


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

El error "Too many connections" aparece cuando el número de conexiones simultáneas a tu base de datos MySQL supera el límite máximo permitido. Piensa en ello como una autopista: si hay demasiados coches (conexiones) intentando entrar al mismo tiempo, se produce un atasco y el sistema rechaza nuevas conexiones.

Cada vez que tu web, una aplicación o un plugin intenta conectarse a la base de datos, establece una conexión. Si tienes muchas solicitudes al mismo tiempo o alguna conexión se queda "colgada", se agotan los recursos.

Causas comunes

  • Picos de tráfico repentinos en tu sitio web.
  • Plugins o aplicaciones mal optimizadas que no cierran conexiones correctamente.
  • Conexiones persistentes que nunca se liberan.
  • Configuración por defecto baja del límite de conexiones en MySQL.
  • Errores en scripts que abren múltiples conexiones sin control.

Primeros auxilios: ¿cómo acceder a MySQL desde Syspanel?

Antes de solucionar el error, necesitas poder conectarte a la base de datos. Si el error te impide incluso acceder, hay una forma de "entrar por la puerta de atrás" usando Syspanel.

Paso 1: Accede a Syspanel

  1. Abre tu navegador y escribe la dirección de tu servidor con el puerto 2106.
    • Ejemplo: https://tudominio.com:2106 o https://tu-ip:2106
  2. Inicia sesión con tu usuario y contraseña de administrador.

Paso 2: Usa la terminal integrada

Dentro de Syspanel, busca la opción "Terminal" o "Consola". Normalmente está en el menú lateral o en la sección de "Herramientas avanzadas".

Una vez en la terminal, puedes conectarte a MySQL directamente desde la línea de comandos. Esto evita que el límite de conexiones te bloquee porque usas una conexión local del sistema.

Paso 3: Conéctate a MySQL

Escribe el siguiente comando (reemplaza usuario y basededatos con tus datos):

mysql -u usuario -p basededatos

Te pedirá la contraseña. Si todo va bien, estarás dentro de MySQL.


Solución definitiva: aumentar el límite de conexiones

Una vez dentro de MySQL, lo primero es verificar el límite actual y luego aumentarlo.

Verificar el límite actual

Ejecuta este comando en la consola de MySQL:

SHOW VARIABLES LIKE 'max_connections';

Verás algo como:

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 150   |
+-----------------+-------+

El valor 150 es el típico por defecto. Si tu web recibe mucho tráfico, necesitarás subirlo.

Aumentar el límite temporalmente (sin reiniciar)

Para solucionar el error de inmediato, puedes cambiar el valor en caliente:

SET GLOBAL max_connections = 500;

[TIP] Usa un número razonable. 500 es seguro para la mayoría de servidores compartidos. Si tienes un VPS, puedes subirlo más, pero consulta con tu proveedor.

Hacer el cambio permanente

El cambio anterior se pierde al reiniciar MySQL. Para que sea permanente, tienes que editar el archivo de configuración.

  1. Desde la terminal de Syspanel, abre el archivo de configuración de MySQL:

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

    O si usas MariaDB:

    sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
    
  2. Busca la línea que dice max_connections y cámbiala:

    max_connections = 500
    

    Si no existe, agrégala en la sección [mysqld].

  3. Guarda los cambios (Ctrl+O, luego Ctrl+X en nano) y reinicia MySQL:

    sudo systemctl restart mysql
    

[WARNING] Reiniciar MySQL cerrará todas las conexiones activas momentáneamente. Hazlo en un horario de bajo tráfico.


Identificar y cerrar conexiones colgadas

A veces el problema no es el límite, sino que hay conexiones que no se cierran. Vamos a identificarlas.

Listar conexiones activas

Desde MySQL, ejecuta:

SHOW PROCESSLIST;

Verás una tabla con todas las conexiones. Fíjate en la columna Time: si ves conexiones con muchos segundos (más de 100) y en estado Sleep, probablemente están "colgadas".

Matar conexiones problemáticas

Si identificas una conexión que no debería estar ahí, puedes cerrarla con su ID:

KILL ID_del_proceso;

Por ejemplo, si el proceso tiene ID 123:

KILL 123;

Matar todas las conexiones de un usuario

Si un usuario en particular está abusando, puedes cerrar todas sus conexiones:

-- Primero, obtén los IDs
SELECT GROUP_CONCAT(id) FROM information_schema.processlist WHERE user = 'nombre_usuario';

-- Luego, mata esos IDs (reemplaza con los números obtenidos)
KILL id1;
KILL id2;
-- ... etc.

[INFO] También puedes limitar las conexiones por usuario con GRANT USAGE ON *.* TO 'usuario'@'localhost' WITH MAX_USER_CONNECTIONS 10;


Prevenir el error a largo plazo

Además de aumentar el límite, es bueno tomar medidas preventivas.

Optimizar consultas y plugins

  • Revisa los plugins de WordPress (si usas WP). Plugins como "WP Rocket" o "W3 Total Cache" pueden reducir las consultas a la base de datos.
  • Usa un sistema de caché como Redis o Memcached. Syspanel suele tener soporte para ello.
  • Actualiza siempre tus aplicaciones y plugins. Las versiones viejas pueden tener fugas de conexiones.

Configurar timeout de conexiones

Para que las conexiones inactivas se cierren solas, puedes reducir el wait_timeout:

SET GLOBAL wait_timeout = 60;

Esto cierra conexiones que lleven más de 60 segundos sin actividad. En el archivo de configuración, añade:

[mysqld]
wait_timeout = 60
interactive_timeout = 60

Monitorizar el uso

Desde Syspanel, puedes instalar herramientas como phpMyAdmin o Adminer para ver el estado de las conexiones en tiempo real. También puedes usar comandos en la terminal:

mysqladmin status
mysqladmin processlist

Preguntas frecuentes (FAQ)

¿Puedo aumentar el límite a 1000?

Depende de la memoria RAM de tu servidor. Cada conexión consume unos pocos KB. Si tienes 2 GB de RAM, 500-800 conexiones es seguro. Más de eso podría ralentizar el servidor.

¿El error puede dañar mi base de datos?

No, el error solo impide nuevas conexiones. Los datos no se corrompen. Una vez que liberes conexiones o aumentes el límite, todo vuelve a la normalidad.

¿Cómo sé si mi web está siendo atacada?

Si ves cientos de conexiones desde IPs diferentes y con estados Query, podría ser un ataque DDoS. En ese caso, contacta a tu proveedor de hosting.

¿Syspanel tiene alguna herramienta para esto?

Sí, dentro de Syspanel (puerto 2106) puedes ir a "Base de datos" y ver el estado de las conexiones. También puedes reiniciar MySQL desde el panel de servicios.


Resumen rápido de pasos

  1. Accede a Syspanel (puerto 2106).
  2. Usa la terminal para conectarte a MySQL.
  3. Aumenta el límite temporalmente: SET GLOBAL max_connections = 500;
  4. Edita el archivo de configuración para hacerlo permanente.
  5. Mata conexiones colgadas con KILL.
  6. Reduce el wait_timeout para evitar acumulación.
  7. Optimiza tu web y usa caché.

[TIP] Si no te sientes cómodo con la línea de comandos, muchos proveedores de hosting ofrecen soporte para ajustar estos valores. No dudes en pedir ayuda.

Espero que este artículo te haya sido de gran ayuda. Recuerda que estoy aquí para resolver tus dudas. ¡Hasta la próxima! 😊

¿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