Su web ya solo muestra una línea: «Error al establecer una conexión con la base de datos». WordPress no ha podido abrir la base de datos donde están sus páginas, sus ajustes y sus cuentas. Sus contenidos suelen estar intactos: esta guía explica cómo averiguar cuál de las cuatro causas posibles está en juego, y cómo corregirla.
wp-config.php. Sus contenidos suelen estar intactos.DB_NAME, DB_USER, DB_PASSWORD y DB_HOST de wp-config.php con los del panel del proveedor.En cada página que muestra, WordPress abre una conexión con su base de datos MySQL o MariaDB usando cuatro datos escritos en wp-config.php, en la raíz del sitio:
define( 'DB_NAME', 'nombre_de_la_base' );
define( 'DB_USER', 'usuario' );
define( 'DB_PASSWORD', 'contraseña' );
define( 'DB_HOST', 'localhost' );
«Error al establecer una conexión con la base de datos» significa que esa conexión ha fallado. Cuatro causas lo producen: unas credenciales que ya no coinciden, un servidor de base de datos detenido o inalcanzable, un servidor saturado o una base de datos dañada. Las secciones siguientes las recorren de la más sencilla de comprobar a la más rara.
Si la causa es el servidor, abra un ticket con el proveedor indicando la hora de inicio de la avería y el mensaje exacto. Mientras tanto no hay nada que modificar en el sitio.
Es la causa más frecuente después de una migración del sitio, de un cambio de contraseña de la base de datos en el panel del proveedor o de una restauración. Compare los cuatro valores de wp-config.php con el apartado de bases de datos de su proveedor:
DB_NAME y DB_USER: muchos proveedores les añaden como prefijo el nombre de la cuenta (cuenta_wordpress). El prefijo forma parte del nombre.DB_PASSWORD: en caso de duda, defina una contraseña nueva para el usuario en el panel y cópiela en el archivo.DB_HOST: localhost en muchos proveedores, pero no en todos. Algunos dan un nombre de servidor o una dirección, a veces seguida de un puerto (:3306). El valor exacto figura en el panel.Una contraseña que contiene un apóstrofo (') corta la cadena PHP que la rodea en wp-config.php. Póngale delante una barra invertida (\'), o elija una contraseña sin apóstrofo.
WordPress muestra un mensaje genérico. MySQL, en cambio, dice exactamente qué falla. Dos formas de consultarlo con los valores de wp-config.php:
mysql -h localhost -u usuario -p nombre_de_la_base
Con WP-CLI, wp db check lee directamente wp-config.php y comprueba las tablas con esas credenciales.
Deje este archivo en la raíz del sitio con un nombre difícil de adivinar, ábralo en el navegador y elimínelo inmediatamente: contiene la contraseña de la base de datos.
<?php
mysqli_report(MYSQLI_REPORT_OFF);
$enlace = @mysqli_connect('localhost', 'usuario', 'contraseña', 'nombre_de_la_base');
echo $enlace ? 'Conexión correcta' : 'Error: ' . mysqli_connect_error();
La primera línea importa: desde PHP 8.1, una conexión que falla lanza una excepción por defecto, y la página se quedaría en blanco en lugar de mostrar el mensaje de MySQL.
| MySQL responde | La causa | La solución |
|---|---|---|
Access denied for user 'usuario'@'localhost' (using password: YES) | La combinación de usuario y contraseña se rechaza, o el usuario no tiene permiso para conectarse desde ese host. | Definir de nuevo la contraseña en el panel y copiarla en DB_PASSWORD; comprobar DB_USER. |
Access denied for user 'usuario'@'localhost' to database 'nombre_de_la_base' | El usuario se conecta, pero no tiene permisos sobre esa base de datos. | Asociar el usuario a la base de datos en el panel del proveedor, con todos los privilegios. |
Unknown database 'nombre_de_la_base' | La conexión funciona, pero ninguna base de datos lleva ese nombre. | Corregir DB_NAME, prefijo incluido; comprobar que la base de datos sigue existiendo. |
Too many connections | El servidor ha alcanzado su número máximo de conexiones simultáneas. | Ver la sección sobre el error que aparece y desaparece. |
Connection refused o No such file or directory (código 2002 desde PHP), Can't connect to MySQL server (en línea de comandos) | Ningún servidor responde en esa dirección: servidor detenido, o DB_HOST erróneo. | Comprobar DB_HOST en el panel; si es correcto, avisar al proveedor. |
Conexión correcta | Las credenciales son correctas. | Buscar en la propia base de datos: sección siguiente. |
Cuando las credenciales son correctas pero hay tablas dañadas, el sitio público muestra el mismo mensaje de error de conexión, y la administración un mensaje más preciso: «Una o más tablas de la base de datos no están disponibles. La base de datos podría necesitar ser reparada». WordPress incluye una herramienta para ello. Añada esta línea en wp-config.php:
define( 'WP_ALLOW_REPAIR', true );
Abra después https://www.su-sitio.com/wp-admin/maint/repair.php y pulse «Reparar base de datos». Retire la línea en cuanto termine la reparación: mientras esté presente, cualquiera puede acceder a esa página, sin iniciar sesión.
Antes de cualquier reparación, exporte la base de datos (wp db export, o la pestaña Exportar de phpMyAdmin). Si la reparación falla, el proveedor puede restaurar la base de datos desde sus copias de seguridad.
Un error que aparece a ciertas horas y desaparece por sí solo indica un servidor saturado más que un ajuste erróneo. Las causas más habituales:
wp-login.php o xmlrpc.php, visibles en los registros de acceso del proveedor.Las soluciones: bloquear los intentos de acceso abusivos, instalar una caché de páginas, desactivar xmlrpc.php si ninguna aplicación lo usa, y pedir al proveedor los registros del periodo con errores.
Con Serenity by Simafri, creamos su sitio web profesional, lo alojamos, lo protegemos y lo mantenemos actualizado. Usted nos escribe, nosotros nos ocupamos de todo. Nombre de dominio y correo profesional incluidos.
En general, no. El mensaje indica que WordPress no ha podido conectarse a la base de datos, no que la base de datos haya desaparecido. Si phpMyAdmin sigue mostrando las tablas del sitio, sus páginas, entradas y ajustes están en su lugar.
Porque el nuevo hosting usa otras credenciales de base de datos: nombre de la base de datos, usuario, contraseña y, a veces, dirección del servidor. Copie los valores del nuevo panel en DB_NAME, DB_USER, DB_PASSWORD y DB_HOST, en wp-config.php.
Reinstalar WordPress no cambia ni las credenciales de wp-config.php ni el estado del servidor de base de datos, que son las causas de este mensaje. Pruebe primero las credenciales, después el estado del servidor y, por último, la integridad de las tablas.
De una saturación más que de un ajuste: demasiadas conexiones simultáneas, un pico de tráfico o robots. Los registros de acceso y el consumo de recursos en el panel del proveedor muestran lo que ocurría en el momento del error.
Simafri
Hablemos de su proyecto
Díganos en pocas palabras lo que necesita: le respondemos rápidamente.
¡Gracias! Su solicitud ha sido enviada. Le responderemos en breve.
¿Prefiere el correo? Escríbanos a support@simafri.com.