Cómo solucionar 'Too many connections' en base de datos de WordPress
¡Hola! Soy el técnico de soporte amigable, y hoy vamos a resolver juntos uno de los errores más comunes (y molestos) que puedes encontrar en tu sitio WordPress: el temido "Too many connections" en la base de datos MySQL.
Este error aparece cuando tu web intenta abrir demasiadas conexiones a la base de datos al mismo tiempo, y el servidor dice "¡Basta!". No te preocupes, no es el fin del mundo. Vamos a ver paso a paso qué significa, por qué ocurre y, lo más importante, cómo solucionarlo.
¿Qué significa el error "Too many connections"?
Imagina que tu base de datos MySQL es una cafetería con un número limitado de mesas. Cada vez que alguien entra (una página web, un plugin, un visitante), ocupa una mesa (una conexión). Si llegan más personas que mesas disponibles, la cafetería dice "lo siento, estamos llenos". Eso es exactamente lo que pasa con tu WordPress: el servidor MySQL tiene un límite máximo de conexiones simultáneas, y cuando se supera, aparece el error.
Este error puede verse como una página en blanco, un mensaje de "Error establishing a database connection" o directamente el texto "Too many connections". Es frustrante, pero tiene solución.
¿Por qué ocurre este error en WordPress?
Hay varias razones comunes. Aquí te las explico de forma sencilla:
- Picos de tráfico altos: Si de repente tienes muchos visitantes, cada uno puede generar varias conexiones a la base de datos. El límite se alcanza rápido.
- Plugins mal optimizados: Algunos plugins (como los de caché, estadísticas o formularios) abren muchas conexiones sin cerrarlas bien, dejando "mesas ocupadas" para siempre.
- Código personalizado o temas pesados: Un tema o fragmento de código que hace consultas constantes a la base de datos puede saturar el sistema.
- Ataques DDoS o bots: Los bots maliciosos pueden generar cientos de conexiones falsas, agotando el límite.
- Configuración del servidor demasiado baja: El límite predeterminado de MySQL suele ser 150 conexiones. Para sitios pequeños está bien, pero si creces, puede quedarse corto.
[INFO] Si tu sitio está en un hosting compartido, el límite suele ser aún más bajo (por ejemplo, 25 o 50 conexiones). Esto es normal, pero hay que gestionarlo bien.
Cómo solucionar el error paso a paso
Vamos a ver las soluciones, desde las más fáciles (que puedes hacer tú mismo) hasta las que requieren ayuda del soporte técnico. Sigue el orden, porque lo más probable es que alguna de las primeras ya te funcione.
1. Aumentar el límite de conexiones en MySQL (si tienes acceso)
Esta es la solución más directa. Si tienes acceso al panel de control de tu servidor (como cPanel, Syspanel o similar), puedes aumentar el número máximo de conexiones.
¿Cómo hacerlo?
- Accede a tu panel de control. Si usas Syspanel (antes conocido como HestiaCP), recuerda que el puerto de acceso es el 2106 (ejemplo:
tudominio.com:2106). - Busca la sección de Bases de Datos o MySQL.
- Localiza la opción "Max Connections" o "Límite de conexiones". Puede estar en la configuración de MySQL o en un editor de archivos.
- Si no ves una opción directa, puedes modificar el archivo de configuración de MySQL (
my.cnfomy.ini). Busca la líneamax_connectionsy cámbiala a un número más alto, por ejemplomax_connections = 500.
[WARNING] Aumentar demasiado este valor puede consumir más memoria del servidor. Si tu hosting es limitado, consulta con el soporte antes de hacer cambios grandes.
¿Y si no tengo acceso?
Si tu plan de hosting no te permite modificar esta configuración (como en hosting compartido), pasa a la siguiente solución.
2. Optimizar los plugins y el tema de WordPress
Muchas veces el problema no es el límite, sino que hay algo que está usando conexiones de forma ineficiente. Vamos a limpiar la casa.
Pasos para optimizar:
- Desactiva todos los plugins: Ve a
Plugins > Plugins instaladosy desactívalos todos. Si el error desaparece, reactívalos uno por uno para encontrar al culpable. - Cambia a un tema por defecto (como Twenty Twenty-Four): Si el error persiste con plugins desactivados, el tema puede ser el problema. Activa un tema básico de WordPress para probar.
- Revisa plugins conocidos por consumir muchas conexiones:
- Plugins de caché mal configurados (como W3 Total Cache).
- Plugins de estadísticas en tiempo real (como Jetpack o MonsterInsights).
- Plugins de formularios con muchas entradas (como Contact Form 7 con muchos envíos).
- Actualiza todo: Asegúrate de que WordPress, plugins y tema estén en su última versión. Las actualizaciones suelen corregir fugas de conexiones.
3. Usar un plugin de caché para reducir consultas
Un buen plugin de caché reduce drásticamente la cantidad de veces que se consulta la base de datos. Cuando un visitante ve tu web, el contenido se guarda en una copia (caché) y no se vuelve a preguntar a MySQL constantemente.
Plugins recomendados:
- WP Super Cache: Sencillo y efectivo.
- W3 Total Cache: Más avanzado, pero requiere configuración cuidadosa.
- LiteSpeed Cache: Ideal si tu servidor usa LiteSpeed.
[TIP] Después de instalar el plugin, activa la caché de páginas y la caché de base de datos (si está disponible). Esto reducirá las conexiones activas.
4. Reducir el número de conexiones persistentes
Las conexiones persistentes son como mesas que nunca se cierran del todo. Algunos plugins o funciones de WordPress las usan por defecto. Puedes desactivarlas.
¿Cómo hacerlo?
- Edita el archivo
wp-config.phpde tu sitio (está en la raíz, junto a la carpetawp-content). - Busca la línea
define('WP_USE_PERSISTENT_CONNECTIONS', true);y cámbiala afalse. Si no existe, agrégala:define('WP_USE_PERSISTENT_CONNECTIONS', false); - Guarda el archivo. Esto hará que cada conexión se cierre después de usarse, liberando espacio.
[INFO] Esta opción no siempre está disponible en todos los servidores. Si no ves cambios, no pasa nada, es una medida extra.
5. Limpiar consultas lentas y transitorios
WordPress guarda datos temporales (transitorios) en la base de datos. Con el tiempo, se acumulan y pueden ralentizar o saturar las conexiones.
Pasos para limpiar:
- Instala un plugin como WP-Optimize o Advanced Database Cleaner.
- Ejecuta la limpieza de:
- Transitorios caducados.
- Revisiones de entradas antiguas.
- Spam y papeleras.
- También puedes hacerlo manualmente desde phpMyAdmin (si te sientes cómodo). Busca la tabla
wp_optionsy elimina las filas conoption_nameque empiecen por_transient_.
6. Consultar el estado de las conexiones activas (para diagnóstico)
Si quieres ver cuántas conexiones hay en tiempo real, puedes hacerlo desde phpMyAdmin o la terminal.
Desde phpMyAdmin:
- Accede a tu base de datos desde el panel de control (cPanel, Syspanel, etc.).
- Ve a la pestaña SQL y ejecuta:
SHOW PROCESSLIST; - Verás una lista de conexiones activas. Las que llevan mucho tiempo en estado "Sleep" o "Query" pueden ser las culpables. Si ves muchas, anota las IPs o los procesos para identificarlos.
Desde la terminal (si tienes acceso SSH):
Ejecuta:
mysql -u usuario -p -e "SHOW PROCESSLIST;"
O para matar conexiones específicas:
KILL ID_de_la_conexion;
[WARNING] No mates conexiones que no reconozcas, podrías interrumpir procesos importantes. Solo hazlo si ves algo sospechoso.
7. Contactar con el soporte de hosting (solución definitiva)
Si has probado todo lo anterior y el error sigue apareciendo, puede que el problema sea del servidor en sí. Algunas acciones solo las puede hacer tu proveedor de hosting:
- Aumentar el límite de conexiones global de MySQL.
- Optimizar el servidor (por ejemplo, cambiando a un plan con más recursos).
- Bloquear IPs maliciosas si es un ataque DDoS.
- Revisar logs del servidor para encontrar el origen exacto.
Cuando contactes con ellos, explícales que has probado los pasos anteriores y que el error persiste. Así te ayudarán más rápido.
Preguntas frecuentes (FAQ)
¿El error "Too many connections" puede dañar mi base de datos?
No, no la daña. Es solo un bloqueo temporal. Cuando se liberan conexiones, el sitio vuelve a funcionar normalmente. Pero si ocurre con frecuencia, puede afectar la experiencia de usuario y el SEO.
¿Cuántas conexiones debería tener mi sitio?
Depende del tráfico. Para un sitio pequeño (menos de 100 visitas diarias), 50 conexiones suele bastar. Para sitios medianos, 150-300. Si tienes picos altos, pide al hosting que lo suba a 500 o más.
¿Puedo evitar este error con un CDN?
Sí, un CDN (como Cloudflare) reduce la carga en tu servidor al servir contenido estático (imágenes, CSS, JS) desde sus servidores. Así, tu base de datos recibe menos peticiones directas.
¿El error aparece si mi sitio está en mantenimiento?
No, el error no tiene relación con el modo mantenimiento. Si lo ves, es porque hay un problema real de conexiones.
¿Qué hago si no entiendo nada de código?
No te preocupes. Empieza por los pasos 2 y 3 (desactivar plugins y usar caché). Si no funciona, contacta con el soporte de tu hosting y diles que tienes el error "Too many connections" en WordPress. Ellos te guiarán.
Resumen rápido
- Aumenta el límite de conexiones en MySQL si puedes.
- Desactiva plugins y cambia el tema para encontrar el culpable.
- Instala un plugin de caché para reducir consultas.
- Desactiva conexiones persistentes en
wp-config.php. - Limpia transitorios y revisiones en la base de datos.
- Revisa conexiones activas con
SHOW PROCESSLIST. - Pide ayuda al hosting si nada funciona.
Recuerda, este error es más común de lo que parece y, con paciencia, se soluciona. Si tienes dudas, vuelve a leer los pasos o contacta conmigo. ¡Tu sitio WordPress volverá a volar en poco tiempo!
[TIP] Anota el límite de conexiones de tu plan de hosting actual. Si ves que lo superas a menudo, considera migrar a un plan superior o a un VPS.
