Blog Error Establishin Database Connection

Cómo solucionar “Error Establishing Database Connection” en WordPress

Si has llegado hasta aquí, es probable que tu instalación de WordPress se encuentre mostrando el siguiente mensaje: “Error establishing database connection” o bien, al entrar a tu sitio, contemples una página completamente en blanco. En términos de programación, esto significa que tu app de wordpress no está pudiendo conectarse a la base de datos. Por ende, tu sitio aparece caído, aunque posiblemente ya te has dado cuenta de eso.

En la mayoría de los casos, este error aparece por alguna de las siguientes razones:

  1. las credenciales que has ingresado para acceder a tu database no son correctas
  2. se produjo un error instalando o migrando los datos del sitio
  3. las tablas que componen tu base de datos se han corrompido.

En cualquier caso, te aliviará saber que un error de conexión a tu base de datos de wordpress es uno de los problemas más fáciles de resolver en WordPress, al menos casi siempre.

Para conocer más sobre este error, cómo se produce y cómo arreglarlo, te recomiendo empezar por la parte superior de la lista de soluciones, e ir implementando las mismas en orden correlativo hasta que tu sitio aparezca de nuevo en línea.

¿Qué es este error y cómo se produce?

Tu sitio puede ser visto como compuesto de dos partes principales: sus archivos estáticos (imágenes, por ejemplo), y su base de datos. La base de datos, codificada en lenguaje MySQL, almacena mucha de la información total que se muestra en tu sitio. Por ejemplo: nombres de usuario, claves, posteos, categorías, etiquetas y otros contenidos.

Los archivos PHP que componen WP están programados para solicitar esta información a la base de datos, y ésta se la devuelve junto con las ubicaciones de los archivos estáticos. Ambos sets de información se involucran cuando un buscador le pide al servidor de hosting (Duplika, por ejemplo) que envíe los datos para que tu sitio pueda ser mostrado en pantalla.

Si por alguna razón se produce un conflicto en la base de datos, los archivos PHP solicitan información para poder mostrar el contenido del sitio, pero la base de datos no responde, presentando, en cambio, el siguiente error:

“Error establishing a database connection.”

Los archivos PHP de tu sitio, entonces, son incapaces de conectar a la base de datos, y las razones pueden ser tan variadas que la parte más complicada de resolverlo es descubrir exactamente qué lo causó.

El error de conexión a la base de datos MySQL por parte de Wordpress puede deberse a:

  • Un error al instalar WordPress, o migrarlo.
  • La base de datos puede haber sido borrada por accidente.
  • Las credenciales con que se pretende acceder son equivocadas.
  • Hay un conflicto con los prefijos de tu base de datos.
  • Los permisos de tus archivos pueden estar asignados de forma incorrecta.
  • La URL de tu sitio puede ser incorrecta.
  • Pueden existir plugins o temas añadidos que estén causando un conflicto.
  • Los archivos o la base de datos pueden estar corruptas.
  • Puede haber un mal funcionamiento de su server, o encontrarse sobrecargado.

Algunas veces, el error puede producirse luego de hacer algunos cambios a tu sitio que podrían parecer suficientemente inocentes, hasta que “rompen” algo. Por esto, es importante mencionar que probar cambios antes de publicarlos puede ayudar a evitar este tipo de situaciones en el futuro.

Soluciones posibles al error de conexión con la base de datos

Si tu sitio aparece como una página en blanco, o presenta el mensaje de “error de conexión con la base de datos”, prueba las siguientes soluciones en el orden en que aparecen. La idea es ir atacando el problema desde las situaciones más comunes, para ir alcanzando (si no resuelven el problema) soluciones más complejas.

1. Desactiva tus Plugins

Algunas veces, un plugin puede hacer un cambio en la base de datos que acaba dañando el normal funcionamiento de un sitio. Ejemplos de esto son aquellos plugins de seguridad que modifican los prefijos de la base de datos, o bien los permisos de los archivos. Si tus otros plugins no se llevan bien con este cambio, el resultado es un mal funcionamiento general, y tu sitio se caerá.

Además, algunos planes de hostings tienen una lista estricta de plugins, donde no se permite instalar y activar ciertos componentes para asegurar la seguridad del server que alquilas. Si lo haces de todas maneras, es probable que tu sitio caiga.

Esto es el motivo por el cual desactivar tus plugins puede resultar en una manera efectiva de solucionar el error de conexión. Si bien no tienes acceso a tu backend para lograrlo, esto puede llevarse a cabo accediendo a tus archivos.

¿Cómo desactivar un plugin si no tengo acceso a mi sitio?

Luego de loguearte a tu cPanel, dirígete a Archivos> Administrador de archivos.

Allí, busca el directorio en el cual se encuentra tu sitio. Navega a /wp-content/plugins/ y renombra temporalmente cada carpeta de plugin listada.

Clickea en el primer nombre de la lista, luego selecciona el botón de Cambiar el nombre en la barra de opciones de la parte superior de la página.

Mantén el nombre original intacto, así no olvidas de qué plugin se trataba, pero agrégale algo al final, como “-desactivado” para recordar por qué lo has renombrado.

Continúa renombrando los otros plugins de la lista de la misma manera. Si tu sitio vuelve a estar en línea, significa que uno de sus plugins era el responsable.

Ahora que tu sitio volvió a estar online, renombra las carpetas de plugins a sus nombres originales una a la vez, revisando en cada renombre si tu sitio sigue disponible o ha vuelto a caerse. Cuando esto suceda, el culpable será el último plugin que hayas devuelto a su nombre original.

En este punto, puedes examinar con más profundidad el plugin para encontrar cuál fue exactamente la causa del error, y si puede reemplazarse con un plugin similar.

Es importante notar que si uno de tus plugins realizó un gran cambio en tu base de datos que ocasionó la caída del sitio, desactivar el plugin indicado no solucionará el problema. En este caso, necesitarás continuar con la lista de soluciones siguientes para probar otro remedio.

2. Revisa tus credenciales

Verificar la URL de tu sitio

Si renombrar los plugins no solucionó el problema, revisa los detalles de acceso que has escrito en tu archivo wp-config.php y compáralos con la información en tu base de datos. Afortunadamente no tendrás necesidad de acceder al backend de tu sitio para realizar este paso.

En cPanel, puedes encontrar el archivo wp-config.php yendo a Archivos > Administrador de archivos y navegando al directorio donde tu sitio se halla alojado. Clickea en el archivo wp-config.php de la lista, luego presiona Edit en la parte superior de la página.

Hay algunas cosas que necesitarás buscar en el texto de edición (y tomar nota de ellas), así puedes comparar lo que encuentres allí con la información que debería ser idéntica en tu base de datos.

Primero, da un vistazo al archivo wp-config.php y fíjate si puedes encontrar algo similar al ejemplo siguiente:

define('WP_HOME','http://your-site.com');
define('WP_SITEURL','http://your-site.com');

Puede que no veas estas dos líneas, pero no te preocupes; si no existen en el texto del archivo que has abierto, puedes agregarlas tú mismo. Pero si existen con antelación, necesitas tomar nota de ellas y asegurarte de que la información sea correcta. De no serlo (por ejemplo, el nombre de tu sitio –o su URL– no aparece correctamente), debes aplicar unas correcciones que te explico a continuación.

Para corregir las URLs, sustituye http://your-site.com en el ejemplo anterior por la URL correcta de tu sitio. Además, asegúrate de que ambas líneas se encuentran perfectamente estructuradas tal cual las escribimos aquí arriba (sin contar el nombre de tu sitio y URL). Chequea que no posean un error de tipeo, o que falte una tilde. Otra cosa: si posees un certificado SSL habilitado en tu dominio, deberías reemplazar: http:// por https://.

También necesitas verificar que la URL que has encontrado posea la ruta www. incluída, siempre y cuando corresponda con la configuración de la ruta de tu sitio. Si tu base de datos incluye una URL sin el triple W, o viceversa, esto debe ser cambiado para que coincida con el nombre correcto de la ruta de tu base de datos. No es lo mismo http://www.misitio.com que http://misitio.com, y cada dominio posee su propia configuración de URL (además de que, como mencionamos antes, si posees un certificado de seguridad, el http deberá cambiar a https.

Si estas líneas no aparecen en el texto que estás viendo, deberás agregarlas manualmente. Algunas veces, la base de datos puede no estar disponible porque una URL incorrecta fue ingresada en la página de Ajuste Generales del dashboard de administrador, dentro de las instalaciones básicas de WordPress, o antes de que el Multisitio haya sido habilitado.

Si agregas estas líneas y el error persiste, puede retirarlas y continuar tratando de solucionarlo con las siguientes opciones.

Te recomiendo ahora un acercamiento similar, esta vez con el archivo functions.php que se encuentra en la carpeta /wp-includes/ .

Fíjate si puedes encontrar líneas similares al siguiente ejemplo:

update_option( 'siteurl', 'http://your-site.com' );
update_option( 'home', 'http://your-site.com' );

Reemplaza http://your-site.com por tu URL real (y si tienes instalado un certificado SSL, no olvides cambiar https:// por http:// .

También, comprueba si www. está incluido en las URL, ya que si la triple W no lo está, pero sí aparece presente en este archivo (o viceversa), entonces tu sitio se encuentra caído por culpa de ello. Realiza el cambio para incluir o quitar www. según sea necesario. Si esto no funcionó, continúa con las siguientes pruebas.

Revisa los detalles de su base de datos

Vuelve a abrir el archivo wp-config.php y busca este bloque de texto (que normalmente verás al comienzo del documento):

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

/** MySQL hostname */
define('DB_HOST', 'localhost');

Es probable que tu nombre de host fuese el mismo (es decir localhost) aunque también puede que en tu caso sea otro. Por esto, es importante que te pongas en contacto con tu proveedor de hosting y verifiques si esta línea es correcta o si localhost debe ser reemplazado por un nombre diferente.

Si realizas un cambio en tu nombre de host, guarda el archivo wp-config.php y comprueba si tu sitio se ha reactivado. Si tu administrador de hosting comprueba que tu nombre de host es correcto, o el cambio que realizas no arregla el problema, haz una nota de todas las otras credenciales del ejemplo anterior y desplázate hacia abajo en el documento.

Busca ahora una línea similar a la siguiente para encontrar el prefijo de la base de datos que tu wordpress está solicitando:

$table_prefix = 'wp_';

Puedes tener algo diferente en tu archivo en lugar de wp,pero cualquiera que sea este valor, es el que debería representar al nombre de tu base de datos también. Toma nota de esto.

Como paso siguiente, regresa a la página de cPanel y haz clic en el botón de Bases de datos MySQL dentro de la sección Bases de datos.

Desplázate hasta la sección Bases de datos actuales y encuentra la base de datos de tu sitio en la lista.

Compara el nombre de la base de datos y el nombre de usuario que aparece aquí con la misma información que aparece en tu archivo wp-config.php. Si los detalles no coinciden, cambia estos detalles en tu archivo para que sean iguales. No olvides guardar los cambios.

Debes cambiar las credenciales de inicio de sesión anteriormente mencionadas en las líneas define('DB_NAME', 'database_name_here'); ydefine('DB_USER', 'username_here') .  Ademas, cambia la parte de  database_name_here del nombre real de la base de datos que buscaste y username_ here al nombre de usuario correcto que has encontrado.

También puedes intentar actualizar la contraseña asociada con el nombre de usuario de tu base de datos. En la página Bases de datos MySQL, ve a la sección Usuarios actuales y haz clic en el botón Cambiar contraseña.

Crea un archivo de prueba en la raíz de su sitio y guarde el código siguiente en él para asegurarte de que no hay espacio para errores humanos:

<?php
$link = mysql_connect('your_hostname', 'database_username', 'database_password');
if (!$link) {
die('No se pudo conectar: ' . mysql_error());
}
echo 'Conexión exitosa!';
mysql_close($link);
?>

Puedes nombrar a este archivo como desees, pero te recomiendo algo descriptivo, como testdatabase.php o testdb.php. ¡Sólo asegúrate de que termina en .php o esta prueba no funcionará!

Una vez hecho esto, accede a este archivo desde tu navegador. Utilizando el ejemplo anterior, carga la dirección http://tusitio.com/testdb.php y, si los detalles de inicio de sesión funcionan, verás un mensaje de “conexión exitosa” en la página.

Si la conexión con tu base de datos lamentablemente no fue exitosa, entonces sabrás que tu nombre de usuario o tu contraseña no están coincidiendo y necesitan ser cambiados en su archivo wp-config.php. Puedes revisar los pasos anteriores para realizar los cambios.

También puedes intentar crear un nuevo nombre de usuario y una contraseña si todo falla. En cPanel, dirígete a Bases de datos> Bases de datos MySQL y desplázate hasta la sección Añadir nuevo usuario.

Ingresa un nuevo nombre de usuario y contraseña, y haz clic en el botón Crear usuario. Ahora puedes agregar este nuevo usuario a tu base de datos.

La siguiente área de la pagina te permite agregar el nuevo usuario que has creado para tu base de datos. Selecciónalo desde la lista etiquetada como Usuario.

A continuación, selecciona tu base de datos de la lista justo debajo. Presiona Añadir, y tu nuevo nombre de usuario será agregado.

El paso final requerido es actualizar tu archivo wp-config.php para reflejar estos nuevos detalles de inicio de sesión. Podrías lograr esto tal cual fue previamente descrito, pero asegúrate de incluir el prefijo de la base de datos al añadirlo a tu archivo wp-config.php o, caso contrario, no funcionará.

No olvides guardar los cambios. Ahora, puedes visitar tu sitio para combrobar que esté online. Si continúa caído, puedes intentar reparar tu base de datos.

3. Arreglar tu base de datos MySQL

Restaurar los permisos correctos

Cuando todo lo demás falla, puedes tratar de revisar los permisos de tus archivos para asegurarte de que son correctos. Si no están configurados correctamente, pueden causar que la base de datos genere este error de conexión.

Puedes reemplazar todos los archivos centrales con una instalación fresca. Para lograr esto, descarga la última copia de WordPress desde WordPress.org. Descomprime la carpeta y borra las carpetas wp-config-sample.php y /wp-content/ .

Ambas contienen datos cruciales que necesitas para que tu sitio funcione, por lo que no es conveniente reemplazarlas. Por eso, eliminarlas de la nueva copia evita sobreescribirlas accidentalmente.

Utiliza un cliente FTP para transferir las copias frescas del núcleo de WordPress a tu sitio, y no olvides elegir la opción para sobrescribir todos los archivos antiguos con los nuevos. De esta forma, no tendrás que preocuparte por eliminar los archivos antiguos antes de transferir los nuevos.

Reparar tu base de datos

Reparar las tablas de tu base de datos es una alternativa ideal cuando todo lo anterior no dio en el clavo. Por suerte, cPanel tiene una herramienta para verificar errores en las tablas con sólo un par de clics.

En cPanel, ve a Bases de datos> Bases de datos MySQL y desplázate hasta la sección Modificar las bases de datos.

Allí podrás tanto verificarlas como repararlas.

4. Ponte en contacto con tu Administrador de Hosting

Si has probado todo y nada parece funcionar, contacta a tu proveedor de hosting, ya que ellos podrían detectar problemas en tu server que no tengan que ver con las soluciones comunes aquí indicadas..

Hazles saber de las pruebas que has realizado, y envíales el link de esta nota como una forma fácil de explicarles los pasos que vienes siguiendo.

No te preocupes, es un error reparable, y con suerte tu sitio debería estar nuevamente online y el “error establishing database connection” pasar a la historia.

De todas formas, te recomiendo realizar backups regulares de tu sitio, de modo que puedas restaurarlo fácilmente en caso de que algo falle en el futuro.

Personalizar el error de base de datos de WordPress

En caso de que queramos mostrar un error un poco mas descriptivo, en lugar del clásico “Error establishing connection”, podemos aprovechar una funcionalidad simple y que no requiere ningún tipo de plugin.

Simplemente bastará con crear un archivo con el nombre db-error.php dentro del directorio wp-content, con éste contenido de ejemplo (que podemos personalizar a gusto).

<?php

	header('HTTP/1.1 503 Service Temporarily Unavailable');
	header('Status: 503 Service Temporarily Unavailable');
	header('Retry-After: 3600'); // 1 hour = 3600 seconds
	mail("[email protected]", "Database Error", "There is a problem with teh database!", "From: Montgomery Scott");

?>
<!DOCTYPE HTML>
<html dir="ltr" lang="en-US">
	<head>
		<title>Servicio temporalmente no disponible</title>
		<style type="text/css">
			h1, p {
				font-family: Helvetica, sans-serif;
				font-size: 24px;
				color: #333;
				}
			p {
				font-size: 14px;
				}
		</style>
	</head>
	<body>
		<h1>Error en la base de datos</h1>
		<p>Tenemos un problema técnico — Por favor volvé a intentar ingresar en breve</p>
	</body>
</html>

Soporte para WordPress

Te ayudamos a resolver cualquier problema en tu sitio


Duplika

Duplika

Premium Web Hosting

I will be back soon

Duplika
Seleccione el medio de contacto deseado y le responderemos a la brevedad.

Si ya es cliente, puede enviar su consulta desde la mesa de soporte.
chat