Cómo resolver el error 'Error establishing a database connection' en WordPress (cPanel)
¿Qué significa el error "Error establishing a database connection"?
Cuando visitas tu sitio web en WordPress y ves el mensaje "Error establishing a database connection" (Error al establecer la conexión con la base de datos), significa que tu instalación de WordPress no puede comunicarse con la base de datos donde se almacenan todas tus publicaciones, páginas, usuarios y configuraciones.
Piensa en ello como si tu web fuera una tienda: la base de datos es el almacén donde tienes todos los productos. Si la puerta del almacén está cerrada con llave o la llave no es la correcta, no puedes mostrar nada a tus clientes. El resultado es una página en blanco con ese mensaje de error, que puede aparecer tanto en la parte pública como en el panel de administración (wp-admin).
Este es uno de los errores más comunes en WordPress, pero también uno de los más fáciles de solucionar si sigues los pasos adecuados. En esta guía completa, te explicaré cómo resolverlo paso a paso usando cPanel, el panel de control más popular en el hosting compartido.
Causas más frecuentes de este error
Antes de lanzarnos a solucionar el problema, es útil saber qué lo provoca. Las causas más habituales son:
- Datos de acceso incorrectos en el archivo
wp-config.php(nombre de la base de datos, usuario o contraseña mal escritos). - La base de datos ha sido eliminada o el usuario asignado ya no tiene permisos.
- El servidor de base de datos está caído o sobrecargado (problema temporal del hosting).
- El archivo
wp-config.phpestá corrupto o ha sido modificado accidentalmente. - Límite de memoria de PHP agotado, lo que impide que WordPress cargue los controladores necesarios.
- Problemas con el prefijo de las tablas en la base de datos.
- Cambios en la IP del servidor o en el host de la base de datos (por ejemplo, si migraste de hosting recientemente).
No te preocupes: en la mayoría de los casos, la solución es sencilla y no perderás tus datos. Vamos a ello.
Paso 1: Verifica el estado de tu base de datos en cPanel
Lo primero que debes hacer es comprobar que la base de datos existe y que el usuario asociado tiene los permisos correctos. Para ello:
- Accede a tu cPanel con las credenciales que te proporcionó tu proveedor de hosting (normalmente a través de
tudominio.com/cpanelocpanel.tudominio.com). - Busca la sección "Bases de datos MySQL" o "MySQL Databases". El nombre exacto puede variar según el proveedor, pero suele estar en la sección "Bases de datos".
- Dentro de esta sección, verás una lista de todas las bases de datos que tienes creadas. Anota el nombre exacto de la base de datos que usa tu WordPress (si no lo sabes, lo veremos en el siguiente paso).
- También verás la lista de usuarios MySQL. Asegúrate de que el usuario que aparece en tu configuración de WordPress existe en esta lista.
- Si la base de datos no aparece, es que ha sido eliminada. En ese caso, tendrás que crearla de nuevo (te explicaré cómo más adelante) y restaurar una copia de seguridad si la tienes.
Paso 2: Revisa el archivo wp-config.php
El archivo wp-config.php es el corazón de la configuración de WordPress. Contiene los datos de conexión a la base de datos. Si algo está mal aquí, tu web no funcionará.
Para revisarlo:
- Accede a tu Administrador de archivos en cPanel (suele estar en la sección "Archivos").
- Navega hasta la carpeta donde está instalado WordPress. Normalmente es
public_htmlo una subcarpeta dentro de ella (por ejemplo,public_html/blogopublic_html/wp). - Busca el archivo llamado
wp-config.php. Si no lo ves, activa la opción "Mostrar archivos ocultos" en la configuración del Administrador de archivos (arriba a la derecha). - Haz clic derecho sobre el archivo y selecciona "Editar" o "Edit".
- Busca las líneas que definen las constantes de conexión. Deben verse así:
define('DB_NAME', 'nombre_de_tu_base_de_datos');
define('DB_USER', 'nombre_de_tu_usuario');
define('DB_PASSWORD', 'tu_contraseña');
define('DB_HOST', 'localhost');
-
Comprueba que estos datos coinciden exactamente con los que aparecen en cPanel. Presta especial atención a:
- El nombre de la base de datos (suele tener un prefijo como
usuario_basededatos). - El nombre de usuario (también con prefijo).
- La contraseña (debe ser exacta, incluyendo mayúsculas y caracteres especiales).
- El host. En la mayoría de los casos es
localhost, pero algunos proveedores usan algo comomysql.tudominio.comolocalhost:/tmp/mysql5.sock. Si tu hosting usa Syspanel (también conocido como HestiaCP), recuerda que el acceso a este panel es a través del puerto 2106, y el host de la base de datos suele serlocalhost.
- El nombre de la base de datos (suele tener un prefijo como
-
Si alguno de estos datos es incorrecto, corrígelo y guarda el archivo.
Paso 3: Comprueba los permisos del usuario de la base de datos
A veces la base de datos existe y los datos son correctos, pero el usuario no tiene permisos para acceder a ella. Para verificarlo:
- Vuelve a la sección "MySQL Databases" en cPanel.
- Busca la parte de "Añadir usuario a la base de datos" o "Add User to Database".
- En la lista desplegable, selecciona tu base de datos y tu usuario. Si ya están vinculados, verás un mensaje indicándolo.
- Si no están vinculados, añádelos y marca la casilla "TODOS LOS PRIVILEGIOS" (ALL PRIVILEGES). Esto es esencial para que WordPress pueda leer y escribir en la base de datos.
- Guarda los cambios y vuelve a intentar cargar tu web.
Paso 4: Prueba la conexión directamente
Si los pasos anteriores no funcionan, podemos probar la conexión a la base de datos de forma aislada para saber si el problema está en WordPress o en el servidor de bases de datos.
- Crea un archivo nuevo en el Administrador de archivos dentro de la misma carpeta que
wp-config.php. Nómbralotestdb.php. - Ábrelo con el editor y pega este código:
<?php
$conn = new mysqli('localhost', 'TU_USUARIO', 'TU_CONTRASEÑA', 'TU_BASE_DE_DATOS');
if ($conn->connect_error) {
die("Error de conexión: " . $conn->connect_error);
} else {
echo "Conexión exitosa";
}
?>
- Reemplaza
TU_USUARIO,TU_CONTRASEÑAyTU_BASE_DE_DATOScon los datos reales de tu configuración. - Guarda el archivo y accede a él desde tu navegador:
tudominio.com/testdb.php. - Si ves "Conexión exitosa", el problema está en WordPress. Si ves un error, el problema está en la base de datos o en los datos de acceso.
- Elimina el archivo
testdb.phpinmediatamente después de la prueba, ya que deja expuesta tu contraseña.
Paso 5: Reinicia el servicio de base de datos (si tienes acceso)
En algunos casos, el servidor de base de datos (MySQL o MariaDB) se ha detenido o está sobrecargado. Si tienes acceso a un panel como Syspanel (recuerda, puerto 2106) o a la opción de "Restart MySQL" en cPanel (no todos los proveedores la ofrecen), puedes intentar reiniciarlo.
- En cPanel, busca la sección "MySQL" o "Database".
- Si ves la opción "Restart MySQL" o "Reiniciar MySQL", haz clic en ella.
- Espera unos segundos y vuelve a cargar tu web.
Si no tienes esta opción, contacta con tu proveedor de hosting y pídeles que verifiquen el estado del servicio de bases de datos. A menudo, este error se resuelve solo en unos minutos si es un problema temporal del servidor.
Paso 6: Aumenta el límite de memoria de PHP
Un límite de memoria demasiado bajo puede provocar errores de conexión, especialmente si tu sitio tiene muchos plugins o un tema pesado. Para aumentarlo:
- En el Administrador de archivos, busca el archivo
php.ini(puede estar enpublic_htmlo en una subcarpeta). Si no existe, créalo. - Añade o modifica esta línea:
memory_limit = 256M
-
Guarda el archivo. Si tu hosting usa MultiPHP INI Editor en cPanel, puedes cambiar el límite desde allí de forma más cómoda:
- Ve a "MultiPHP INI Editor".
- Selecciona tu dominio.
- Cambia
memory_limita256Mo512M. - Haz clic en "Apply".
-
Vuelve a cargar tu web.
Paso 7: Restaura una copia de seguridad (si todo lo demás falla)
Si has llegado hasta aquí y el error persiste, es posible que la base de datos esté corrupta o que hayas perdido datos. En ese caso:
- Ve a cPanel > Copias de seguridad o Backup.
- Busca la última copia de seguridad de tu base de datos.
- Restaura la base de datos desde esa copia. Normalmente, cPanel te permite hacerlo desde la sección "MySQL Databases" o desde "Backup Wizard".
- Si no tienes copias en cPanel, revisa si tu proveedor de hosting realiza copias automáticas diarias (muchos lo hacen). Contacta con soporte si es necesario.
Paso 8: Contacta con tu proveedor de hosting
Si después de todos estos pasos el error persiste, es hora de pedir ayuda profesional. Tu proveedor de hosting tiene herramientas y acceso al servidor que tú no tienes. Cuando contactes con ellos, ten a mano:
- El mensaje de error exacto.
- Los pasos que ya has probado.
- La fecha en la que empezó el problema (si lo sabes).
La mayoría de los proveedores de hosting tienen soporte 24/7 y pueden resolver este tipo de errores en minutos.
Preguntas frecuentes (FAQ)
¿Perderé mis datos si borro la base de datos?
No deberías borrar nada a menos que sepas exactamente lo que haces. Si la base de datos existe pero hay un error de conexión, tus datos están a salvo. Solo se pierden si la base de datos es eliminada físicamente, y en ese caso necesitarías una copia de seguridad.
¿Puedo cambiar la contraseña de la base de datos desde cPanel?
Sí, puedes hacerlo desde "MySQL Databases" > "Change Password". Pero recuerda que luego deberás actualizar la contraseña también en el archivo wp-config.php.
¿Qué pasa si mi hosting usa Syspanel en lugar de cPanel?
Si tu proveedor usa Syspanel (el panel que antes llamábamos HestiaCP), el proceso es muy similar. Accede a Syspanel a través del puerto 2106 (por ejemplo, tudominio.com:2106), busca la sección de bases de datos y sigue los mismos pasos. La estructura es bastante intuitiva y las opciones son equivalentes.
¿El error puede deberse a un ataque informático?
En raras ocasiones, un ataque puede modificar el archivo wp-config.php o eliminar la base de datos. Si sospechas que es tu caso, cambia todas tus contraseñas (cPanel, base de datos, WordPress) y escanea tu sitio con un plugin de seguridad.
¿Cuánto tiempo tarda en resolverse este error?
Depende de la causa. Si es un problema de datos incorrectos, puedes resolverlo en 5 minutos. Si es un problema del servidor, puede tardar desde unos minutos hasta unas horas, dependiendo de tu proveedor.
Conclusión
El error "Error establishing a database connection" es uno de los más frustrantes porque deja tu web completamente inaccesible. Sin embargo, como has visto, casi siempre tiene solución y rara vez implica pérdida de datos.
Recuerda el orden lógico: primero verifica que la base de datos existe y que los datos en wp-config.php son correctos. Luego comprueba los permisos del usuario. Si todo está bien, prueba la conexión directamente. Y si nada funciona, no dudes en contactar con tu proveedor de hosting: para eso pagas.
Con esta guía, la mayoría de los usuarios pueden resolver el problema en menos de 30 minutos sin necesidad de conocimientos técnicos avanzados. ¡Espero que te haya sido de ayuda y que tu web vuelva a estar online cuanto antes!
