Cómo resolver el error 'Error establishing a database connection' en WordPress (cPanel y Plesk)
¡Hola! Si estás leyendo esto, es muy probable que hayas intentado entrar a tu sitio web y te hayas encontrado con el temido mensaje "Error establishing a database connection" (Error al establecer la conexión con la base de datos). No te preocupes, no eres la única persona a la que le pasa, y lo más importante: tiene solución y en la mayoría de los casos puedes arreglarlo tú mismo sin necesidad de ser un experto.
En esta guía completa, vamos a desglosar paso a paso qué significa este error, por qué ocurre y, lo más crucial, cómo solucionarlo tanto si tu hosting usa cPanel como si usa Plesk. Vamos a ello.
¿Qué significa exactamente este error?
Para entenderlo fácil, imagina que tu web (WordPress) es una tienda y la base de datos (donde se guardan tus artículos, fotos y configuraciones) es el almacén trasero. Para mostrar la tienda al público, WordPress necesita abrir la puerta del almacén. El mensaje error establishing database connection significa que la puerta está cerrada con llave, la cerradura ha cambiado o directamente el almacén (servidor de base de datos) está en llamas.
Este es uno de los errores más comunes en WordPress y, afortunadamente, uno de los más fáciles de diagnosticar porque casi siempre se reduce a un problema de configuración o a un fallo temporal del servidor.
Primeros pasos: Diagnóstico rápido (El "¿Se ha roto todo?")
Antes de meternos en archivos de configuración, vamos a hacer una comprobación rápida para descartar lo más evidente.
1. Revisa si es un problema general del servidor
A veces el problema no es tuyo, sino del servidor donde está alojada tu web. Una forma rápida de comprobarlo es intentar acceder a la URL de tu web sin el www o directamente a la dirección IP de tu hosting. Si el error persiste en todas, puede que el servidor de bases de datos (MySQL o MariaDB) se haya caído.
[TIP] Prueba a entrar en el panel de control de tu hosting (cPanel o Plesk). Si tú puedes entrar, el servidor principal está vivo. Luego, busca la sección de "Estado del servidor" o "Recursos". Si ves que MySQL está detenido o en estado crítico, contacta con tu proveedor de hosting, porque es un problema que solo ellos pueden reiniciar.
2. El clásico "apagar y encender"
Si tienes acceso a la opción de "Reiniciar" o "Restart" desde tu panel de control (a veces está en la sección de "Administrador de procesos" o "Servicios"), hazlo. Un reinicio del servicio de base de datos a veces soluciona bloqueos temporales. Si no tienes esta opción, no insistas; pasa al siguiente paso.
Solucionar el error en cPanel (La guía paso a paso)
cPanel es uno de los paneles de control más utilizados en el mundo del hosting compartido. La solución aquí se centra en verificar el archivo wp-config.php y los datos de acceso.
3. Verifica tus credenciales de la base de datos (El motivo más común)
El 90% de las veces, este error se debe a que las credenciales (usuario, contraseña o nombre de la base de datos) en tu archivo de configuración son incorrectas. Esto puede pasar tras una migración, un cambio de contraseña o un error al editar el archivo.
Para comprobarlo, sigue estos pasos:
- Accede a tu cPanel.
- Busca la sección "Bases de datos MySQL" (o "Base de datos MySQL").
- Anota el nombre de la base de datos (suele ser
usuario_nombrebd). - Anota el nombre de usuario de la BD (suele ser
usuario_nombreusuario). - Asegúrate de tener a mano la contraseña de ese usuario. Si no la sabes, cámbiala desde la misma sección (botón "Cambiar contraseña"). Importante: Anota la nueva contraseña.
Ahora necesitas editar el archivo wp-config.php. Para ello:
- Ve a "Administrador de archivos" en cPanel.
- Busca la carpeta
public_html(o la carpeta raíz donde está instalada tu web). - Localiza el archivo llamado
wp-config.php. - Haz clic derecho sobre él y selecciona "Editar" (o "Code Editor").
- Busca las líneas que dicen
DB_NAME,DB_USER,DB_PASSWORDyDB_HOST.
Deben verse así (con tus datos reales):
define('DB_NAME', 'tu_usuario_miweb');
define('DB_USER', 'tu_usuario_miusuario');
define('DB_PASSWORD', 'tu_contraseña_secreta');
define('DB_HOST', 'localhost');
Aquí está el truco:
- DB_NAME y DB_USER deben coincidir exactamente con lo que ves en cPanel.
- DB_PASSWORD debe ser la contraseña actual de ese usuario.
- DB_HOST: Lo más común es que sea
localhost, pero a veces el hosting usa un servidor externo (ej.mysql.tudominio.comolocalhost:3306). Si no estás seguro, déjalo comolocalhost.
Una vez editados, guarda los cambios (botón "Guardar cambios" o Ctrl+S) y recarga tu web.
[WARNING] Si cambiaste la contraseña en el paso 5, asegúrate de que la has puesto en el archivo wp-config.php exactamente igual, con las mismas mayúsculas y minúsculas. Un simple espacio extra al final puede romper la conexión.
4. Comprueba el prefijo de las tablas
A veces, si has importado una copia de seguridad de otra web, el prefijo de las tablas (ej. wp_) puede no coincidir con el que espera WordPress. Esto es menos común, pero si los pasos anteriores no funcionan, revisa en tu base de datos (usando phpMyAdmin en cPanel) cómo se llaman las tablas. Si se llaman miweb_posts y en tu wp-config.php pone $table_prefix = 'wp_';, tendrás que cambiarlo a $table_prefix = 'miweb_';.
5. Repara las tablas de la base de datos
En cPanel, dentro de "Bases de datos MySQL", busca la opción "Reparar base de datos" o usa phpMyAdmin. Si usas phpMyAdmin:
- Selecciona tu base de datos a la izquierda.
- Abajo del todo, verás la opción "Marcar todas" (si tienes muchas tablas).
- En el desplegable "Con selección", elige "Reparar tabla".
Esto intenta corregir tablas corruptas que a veces causan este fallo de conexión.
Solucionar el error en Plesk (La guía alternativa)
Si tu hosting usa Plesk, el proceso es muy similar, pero la interfaz cambia un poco.
6. Accede a tus bases de datos y verifica usuarios
- Entra en Plesk.
- Ve a la sección "Sitios web y dominios".
- Busca tu dominio y haz clic en "Bases de datos" (icono de cilindro).
- Verás el nombre de tu base de datos. Haz clic en ella para ver los usuarios asociados.
- Si no recuerdas la contraseña, puedes cambiarla desde aquí (botón "Cambiar contraseña").
- Ahora, igual que en cPanel, necesitas editar el
wp-config.php. En Plesk, puedes usar el "Administrador de archivos" desde el panel de tu dominio (sección "Archivos" o "Administrador de archivos").
Navega hasta la raíz de tu dominio (normalmente httpdocs o public_html) y busca wp-config.php. Edítalo y verifica los mismos datos (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST).
[INFO] En Plesk, el host de la base de datos suele ser localhost. Sin embargo, si tienes un servidor de base de datos separado, puede aparecer como una IP o un nombre de host similar a db.midominio.com. Revisa la configuración de tu base de datos en Plesk, a veces te indica el host exacto en la parte superior de la página de "Bases de datos".
7. Activa o desactiva el firewall (Plesk)
A veces, el firewall de Plesk puede estar bloqueando la conexión interna entre PHP y MySQL. Esto es raro, pero puede pasar si has configurado reglas de seguridad estrictas.
- Ve a "Herramientas y ajustes" en Plesk.
- Busca "Firewall".
- Revisa si hay alguna regla que bloquee el puerto 3306 (el puerto por defecto de MySQL) para conexiones locales (localhost). Si lo ves bloqueado, cámbialo a "Permitir" o añade una regla para permitir el tráfico local.
Soluciones avanzadas (Cuando nada de lo anterior funciona)
Si ya has verificado tus credenciales y el servidor está bien, el problema puede ser más profundo.
8. El archivo .htaccess corrupto
Un archivo .htaccess corrupto puede causar conflictos extraños. Para descartarlo:
- Entra al Administrador de archivos de tu panel.
- Busca el archivo
.htaccessen la raíz de tu web. - Renómbralo a
.htaccess_old(no lo borres, por si acaso). - Recarga tu web. WordPress creará un nuevo
.htaccessautomáticamente.
Si tu web funciona, el problema era ese. Luego puedes ir a Ajustes > Enlaces permanentes y pulsar "Guardar" para regenerar las reglas.
9. Límite de memoria de PHP (Menos común pero posible)
Si el error aparece solo en el panel de administración (wp-admin) pero no en la web pública, puede ser un problema de memoria PHP. Puedes intentar aumentar el límite editando el archivo wp-config.php. Añade esta línea justo antes de la línea que dice /* That's all, stop editing! */:
define('WP_MEMORY_LIMIT', '256M');
Guarda y prueba de nuevo.
Preguntas Frecuentes (FAQ)
¿Por qué me sigue saliendo el error si he cambiado la contraseña?
Asegúrate de que la contraseña no tenga caracteres especiales que puedan estar mal codificados. Prueba a usar una contraseña simple solo para la prueba (ej. prueba123) y luego cámbiala a una segura una vez que funcione.
¿Puede ser un ataque de hackers?
Sí, es posible. Si un atacante obtiene acceso, puede cambiar tus contraseñas. Si después de restablecer tus credenciales el error persiste, revisa si hay usuarios extraños en tu base de datos o archivos recientemente modificados en tu servidor.
¿Y si mi hosting usa "Syspanel" en lugar de cPanel o Plesk?
Si tu proveedor usa Syspanel (antes conocido como HestiaCP), el proceso es bastante similar. Accede a tu panel a través del puerto 2106 (ej. https://tudominio.com:2106). Dentro, busca la sección de "Bases de datos" o "SQL". Ahí podrás ver los usuarios y contraseñas. La edición del archivo wp-config.php se hace igual, a través del "Administrador de archivos" que encontrarás en el propio panel. El puerto de acceso es 2106, no lo olvides.
He probado todo y sigue sin funcionar. ¿Qué hago?
Es el momento de contactar con tu proveedor de hosting. Diles que has verificado el wp-config.php y que el error sigue. Ellos pueden revisar los logs del servidor de bases de datos en profundidad, algo que tú no puedes hacer. A veces, el problema es un fallo de hardware o una configuración de red interna que solo ellos pueden solucionar.
Recuerda que la paciencia es clave. Sigue los pasos en orden, sin saltarte ninguno, y en la mayoría de los casos, tu web volverá a estar en línea en cuestión de minutos. ¡Mucha suerte!
