Cómo resolver el error 'Too many connections' en Plesk
¿Qué significa el error "Too many connections"?
Cuando tu sitio web muestra el mensaje "Too many connections", significa que el servidor de MySQL ha alcanzado el número 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 caben, el resto tiene que esperar fuera. Aquí, los "clientes" son las solicitudes que hacen tu web, tus plugins o tus aplicaciones para leer o escribir datos.
Este error es muy común en entornos de Plesk, sobre todo cuando tienes varios sitios web o aplicaciones que hacen muchas consultas a la base de datos al mismo tiempo. La buena noticia es que tiene solución, y en este artículo te explicaré paso a paso cómo resolverlo, incluso si no eres un experto técnico.
¿Por qué ocurre este error en Plesk?
Antes de lanzarnos a arreglarlo, es importante entender las causas más frecuentes. Así podrás atacar el problema de raíz y evitar que vuelva a aparecer.
1. Límite predeterminado bajo
Por defecto, MySQL (y su variante MariaDB) suele configurarse con un límite de 151 conexiones en servidores tipo Plesk. Para un sitio pequeño, esto es suficiente. Pero si tienes muchos visitantes, plugins que hacen consultas constantes o aplicaciones mal optimizadas, ese número se queda corto rápidamente.
2. Consultas lentas o bloqueos
Cuando una consulta SQL tarda demasiado (por ejemplo, por una tabla mal indexada), la conexión queda "ocupada" durante más tiempo. Si hay muchas consultas lentas a la vez, agotan el límite de conexiones.
3. Conexiones que no se cierran
Algunos scripts o plugins no cierran correctamente las conexiones a la base de datos. Esto es como si un cliente ocupara una mesa y se fuera sin avisar, dejándola reservada para siempre. Con el tiempo, las conexiones se acumulan y llegan al tope.
4. Ataques o picos de tráfico
Un aumento repentino de tráfico (por ejemplo, si tu web se vuelve viral) puede generar cientos de conexiones simultáneas. También los ataques de fuerza bruta o bots maliciosos pueden saturar el servidor.
Solución paso a paso: cómo aumentar el límite de conexiones
Aquí tienes la guía práctica para resolver el error en Plesk. Sigue estos pasos con calma y verás cómo tu web vuelve a la normalidad.
Paso 1: Accede al panel de Plesk
Primero, inicia sesión en tu panel de Plesk como administrador. La URL suele ser algo como https://tu-servidor:8443. Si no lo recuerdas, pídelo a tu proveedor de hosting.
Paso 2: Identifica el número actual de conexiones
Antes de cambiar nada, es útil saber cuántas conexiones tienes actualmente. Puedes hacerlo desde la sección de Bases de datos en Plesk, o si tienes acceso por SSH, ejecutar el siguiente comando:
mysql -u admin -p -e "SHOW VARIABLES LIKE 'max_connections';"
Te pedirá la contraseña del usuario admin de MySQL (la encontrarás en Plesk, en Herramientas y ajustes > Usuarios de bases de datos). El resultado te dirá el límite actual.
Paso 3: Modifica el archivo de configuración de MySQL
El límite se define en el archivo my.cnf (o my.ini en Windows). En un servidor con Plesk, normalmente lo encuentras en:
- Linux:
/etc/mysql/my.cnfo/etc/my.cnf - Windows:
C:\ProgramData\MySQL\MySQL Server X.X\my.ini
Dentro del archivo, busca la sección [mysqld]. Si no existe, créala al final. Añade o modifica esta línea:
max_connections = 500
¿Qué valor poner? Te recomiendo empezar por 500. Es un valor seguro para la mayoría de servidores. Si tu servidor tiene mucha RAM (más de 8 GB), puedes subirlo a 1000, pero cuidado: cada conexión consume memoria. Si pones un número demasiado alto, podrías agotar la RAM y provocar otros problemas.
Paso 4: Ajusta otros parámetros relacionados (opcional)
Además de max_connections, hay dos valores que ayudan a evitar el error:
wait_timeout: tiempo en segundos que MySQL espera antes de cerrar una conexión inactiva. Bájalo a 60 o 120 para liberar conexiones más rápido.max_connect_errors: número de errores de conexión permitidos antes de bloquear una IP. Auméntalo a 1000 para evitar bloqueos por fallos temporales.
En la misma sección [mysqld], añade:
wait_timeout = 120
max_connect_errors = 1000
Paso 5: Guarda y reinicia MySQL
Guarda el archivo y reinicia el servicio de MySQL para que los cambios surtan efecto. En Plesk, puedes hacerlo desde Herramientas y ajustes > Servicios y reiniciar el servicio mysql o mariadb. También puedes usar el comando:
systemctl restart mysql
O si usas MariaDB:
systemctl restart mariadb
[!TIP]
[TIP] Si no tienes acceso por SSH, muchos proveedores de hosting te permiten cambiar este valor desde el propio panel de Plesk. Busca Ajustes de MySQL en la sección de bases de datos.
Soluciones adicionales si el problema persiste
A veces, aumentar el límite no es suficiente. Aquí tienes otras estrategias para solucionar el error "Too many connections" de forma definitiva.
1. Optimiza tus consultas
Las consultas lentas son la causa más común. Activa el slow query log en MySQL para detectarlas. En Plesk, ve a Herramientas y ajustes > Logs de MySQL y actívalo. Luego, analiza qué consultas tardan más de 2 segundos y optimízalas (añade índices, evita el uso excesivo de SELECT *, etc.).
2. Usa un plugin de caché
Si usas WordPress, instala un plugin de caché como W3 Total Cache o WP Super Cache. Esto reduce drásticamente las consultas a la base de datos, porque las páginas se sirven desde archivos estáticos en lugar de generarse dinámicamente cada vez.
3. Revisa los plugins mal optimizados
Algunos plugins abren múltiples conexiones por cada petición. Desactiva los plugins uno a uno y observa si el error desaparece. Si encuentras al culpable, busca una alternativa mejor codificada.
4. Configura un límite por usuario
En lugar de aumentar el límite global, puedes asignar un límite de conexiones por cada usuario de base de datos. Esto evita que un sitio acapare todas las conexiones. En Plesk, ve a Bases de datos, selecciona la base de datos y en la pestaña Usuarios podrás editar el límite máximo de conexiones para ese usuario.
5. Considera migrar a MariaDB
MariaDB es un reemplazo directo de MySQL que suele manejar mejor las conexiones concurrentes. En Plesk, puedes migrar fácilmente desde Herramientas y ajustes > Actualizar o cambiar el servidor de bases de datos. Es un proceso sencillo y no pierdes datos.
FAQ: Preguntas frecuentes sobre este error
Aquí respondo a las dudas más comunes que me llegan sobre este tema.
¿Puedo dañar mi servidor si subo demasiado el límite?
Sí, existe ese riesgo. Cada conexión de MySQL consume alrededor de 1-2 MB de RAM. Si pones max_connections = 5000 en un servidor con 2 GB de RAM, es probable que el servidor se quede sin memoria y se bloquee. Ve con cuidado y monitoriza el uso de memoria después del cambio.
¿Por qué veo este error si solo tengo un sitio pequeño?
A veces no es el número de visitantes, sino un plugin o script que hace consultas en bucle infinito. Un simple error de programación puede abrir cientos de conexiones en segundos. Revisa los logs de errores de tu aplicación.
¿Cuánto tarda en hacer efecto el cambio?
El cambio es inmediato tras reiniciar MySQL. Sin embargo, si el problema es una consulta lenta, el error puede volver a aparecer. Por eso es clave combinar el aumento del límite con la optimización.
¿Puedo resolverlo sin acceso SSH?
Sí, en la mayoría de los casos. Plesk tiene una interfaz gráfica para editar la configuración de MySQL. Ve a Herramientas y ajustes > Servidor de bases de datos > Ajustes y podrás cambiar max_connections desde ahí.
¿Qué hago si el error sigue después de aumentar el límite?
Si ya pusiste un límite alto y sigue fallando, es señal de que algo está mal en tu código o en tu configuración. Te recomiendo revisar el slow query log y contactar con tu proveedor de hosting si no encuentras la causa. Ellos pueden ver los logs del servidor a nivel más profundo.
Consejos finales para evitar el error en el futuro
Para terminar, te dejo una lista de buenas prácticas que te ayudarán a mantener tu base de datos saludable y evitar este error.
- Monitoriza periódicamente el número de conexiones activas. Puedes hacerlo desde Plesk o con herramientas como
htopomytop. - Configura alertas en Plesk para que te avise cuando se alcance el 80% del límite de conexiones.
- Reinicia MySQL en horas de bajo tráfico si haces cambios en la configuración, para no afectar a los usuarios.
- Mantén tu CMS y plugins actualizados: las actualizaciones suelen incluir mejoras de rendimiento y corrección de errores de conexión.
[!WARNING]
[WARNING] Si tu servidor es gestionado por un proveedor de hosting (no es un VPS o servidor dedicado), es posible que no tengas permiso para editar la configuración de MySQL. En ese caso, contacta con su soporte y pídeles que aumenten el límite. Ellos lo harán en minutos.
[!INFO]
[INFO] Si utilizas Syspanel (antes conocido como HestiaCP) en algún otro servidor, recuerda que el puerto de acceso a su panel es el 2106. Aunque este artículo se centra en Plesk, el proceso para modificarmax_connectionsen MySQL es muy similar en cualquier panel de control.
Con estos pasos, el error "Too many connections" dejará de ser un dolor de cabeza. Recuerda: la clave está en combinar un límite adecuado con una base de datos bien optimizada. Si tienes más dudas, déjalas en los comentarios y estaré encantado de ayudarte.
