Error al establecer una conexión con la base de datos

Si has llegado hasta aquí es porque tu página web ha dejado de funcionar. Ante ti tienes una pantalla complemente en blanco y una simple frase en negro. En ella pone «Error al establecer una conexión con la base de datos«.

O quizás lo tienes en inglés y se puede leer «Error establishing a database connection».

En cualquier caso, la cuestión es que estás algo asustado. ¡No puedes hacer nada en tu web! Te has quedado sin acceso al panel de control y sin poder añadir nuevo contenido. Sin embargo, lo peor de todo es que tus visitas observan el mismo problema que tú ????.

Pero no te preocupes: tiene fácil arreglo.

En esta entrada de blog te explico para empezar porqué se produce este error de «error al establecer una conexión con la base de datos».

Así entenderás la situación en la que te encuentras, lo cual te ayudará a prevenir el error en el futuro.

Y por supuesto te muestro paso a paso cómo solventar el problema. Así que sigue leyendo que en cuestión de pocos minutos ya tendrás tu web en marcha otra vez ????.

error al establecer una conexión con la base de datos

Más información sobre este error

Aún recuerdo la primera vez que vi en pantalla «Error al establecer una conexión con la base de datos». Me quedé con la cara a cuadros pensando: ¡Pero si hace 3 segundos aquí tenía mi página web! Me acojoné y es posible que llorase un poco (no lo tengo claro).

En cualquier caso, lo cierto es que hasta que lo solucionas pasas un mal rato. Sobretodo si la web es ya visible para cualquiera. Es entonces cuando piensas: seguro que justamente ahora tengo un cliente potencial viéndola. Si es el caso, sin duda la impresión que se estará llevando es malísima.

Pero bueno, como he comentado, este error tiene fácil arreglo. De hecho, es uno de los errores más habituales en WordPress. Así que don’t worry, que para eso estamos ????.

Seguramente tengas ante ti algo parecido a esto:

Mensaje en pantalla "Error estableciendo una conexión con la base de datos".

Además, si intentas acceder a tu panel de control (www.tudominio.com/wp-admin/), te sale lo siguiente:

La versión de "Error establishing a database connection" desde el panel de control.

Esta última imagen, por cierto, ya te da algún indicio de lo que debes hacer para solucionar el error. Pero yo voy a ir más allá, explicándote paso a paso lo que debes hacer.

¿Qué significa este error?

Si ya sabes un poco qué es WordPress, sabrás que para funcionar utiliza lo siguiente:

  • Archivos PHP: en ellos figuran las directrices. Básicamente determinan qué debe hacer cada elemento de tu web.
  • Una base de datos MySQL: aquí se almacena toda la información generada por tu web. Por ejemplo, usuarios, páginas o entradas de blog.

Como su nombre indica, este error te está diciendo que ambos elementos no pueden comunicarse. Te recuerdo lo que ves: «Error al establecer una conexión con la base de datos». Es decir, tienes al menos un archivo PHP de tu web que no consigue localizar la información que necesita.

¿La causa? No puede conectar con la base de datos. ¿La consecuencia? No tiene ninguna información que mostrar y la página te sale en blanco con el mensaje de error.

Posibles causas

Existen diferentes motivos que explican el porqué ocurre este error. La causa más habitual es que hayas olvidado decirle a WordPress que has cambiado algún parámetro de la base de datos. Esta situación puede producirse porque:

  • Acabas de migrar tu web a otro hosting o dominio.
  • Has cambiado la contraseña de tu base de datos. O mejor dicho, del usuario que controla tu base de datos.
  • No has sabido cómo instalar WordPress correctamente.

Es posible que leyendo estas posibles causas hayas visto la tuya. A mi me ha pasado a menudo. Como ya me sé la lección, cuando en ocasiones veo la pantalla en blanco, me digo a mi mismo: «Mierda Pablo, ¡te has olvidado X!».

Bueno, pues ahora que ya entiendes mejor qué sucede, voy a explicarte cómo solucionar el error. Estupendo, ¿verdad? ????

El archivo wp-config.php

Lo verás más adelante pero te lo avanzo ya.

La solución a «Error al establecer una conexión con la base de datos» pasa sí o sí por wp-config.php.

Por eso creo que puede interesarte conocerlo mejor antes de «jugar» con él.

Qué información contiene

La información más importante dentro de tu wp-config.php es la relativa a tu base de datos. Concretamente, tienes lo siguiente:

  • Nombre de la base de datos.
  • Nombre del usuario MySQL que accede a la base de datos.
  • Contraseña del usuario MySQL.
  • Localización de la base de datos.
En wp-config.php tienes la información acerca de la base de datos.

Pero esto no es todo lo que nos interesa de wp-config.php.

Este archivo contiene otro dato que es interesante para resolver el error de conexión a la base de datos que tienes. Se trata del prefijo de las tablas MySQL de WordPress.

En wp-config.php también se especifica el prefijo de las tablas MySQL.

¿De qué estoy hablando?

El prefijo es lo que sale en el nombre de toda tabla de la base de datos de un mismo WordPress. Fíjate en la imagen anterior. Como prefijo tenemos «wp_» y es el que viene por defecto cuando instalas WordPress.

Sin embargo, y como medida de seguridad, en la instalación de WordPress yo siempre recomiendo que cambies el prefijo por otro. Uno con letras y números que no signifiquen nada. Por ejemplo, «lkgf491_» sería un prefijo único y por lo tanto más seguro.

Si aún no te queda claro esto del prefijo, a continuación tienes una imagen de la base de datos de un WordPress que no tiene el prefijo por defecto. Verás como todas las tablas empiezan por el mismo prefijo.

Ejemplo de base de datos de un WordPress con todas las tablas empezando con el mismo prefijo.

Dónde encontrarlo

wp-config.php es un archivo PHP que puedes localizar en el directorio en el que tienes instalado tu WordPress. Concretamente, en la carpeta raíz o base.

El archivo wp-config.php se encuentra en el directorio raíz de tu WordPress.

Tienes dos formas de llegar hasta este archivo: por FTP o por WebFTP. Si desconoces cómo hacerlo, en esta entrada de blog te explico cómo acceder a WordPress vía FTP. Es rápido de aprender y necesario. El motivo es sencillo: debes poder hacerlo para solucionar el error que te ha traído hasta aquí.

Solucionando «Error al establecer una conexión con la base de datos»

Para solucionar lo que te está pasando, básicamente debes comprobar que la información que figura en wp-config.php es correcta. A continuación te muestro cómo comprobar cada dato.

Pero antes déjame decirte que yo voy a utilizar mi panel de control y éste puede ser diferente al tuyo. El mío se llama cPanel y es seguramente el más utilizado. Si tu proveedor de hosting lo utiliza, perfecto, pues podrás seguir al milímetro las explicaciones. En cambio, si el tuyo es diferente, lo que viene a continuación te guiará para que encuentres las opciones concretas en tu caso.

El nombre de la base de datos

#1: Dirígete a la opción «MySQL Bases de datos».

Encontrarás esta opción dentro del apartado «Bases de datos».

Ves al apartado de bases de datos de tu cPanel.

#2: Anota el nombre de tu base de datos

Busca la sección en la que se listan tus bases de datos y fíjate en la columna con sus respectivos nombres.

Lo normal es que tú tengas tan sólo una base de datos creada. Así que la búsqueda es fácil pues en la columna «Base de datos» tan sólo tendrás una fila. En cambio, si tienes diferentes bases de datos (y por lo tanto diferentes webs), busca la que se corresponda a la web en la que te aparece el error de conexión.

Apúntate el nombre de la base de datos de la web en la que aparece el error.

#3: Comprueba el nombre de la base de datos que figura en wp-config.php.

Abre el archivo PHP en cuestión y fíjate en el campo relativo al nombre de base de datos.

Verifica el nombre de la base de datos.

¿Coincide con el nombre real?

  • Si sí, el error recae en algún otro campo que vamos a ver a continuación.
  • Si no, pues corrígelo de inmediato y guarda el archivo. Con esto habrás solucionado (en parte) el error. Yo igualmente comprobaría el resto de datos pues puede que haya otro erróneo.

El usuario MySQL

El usuario MySQL es el que accede a tu base de datos para realizar cambios en ella. Para ello necesita un nombre de usuario, una contraseña y tener los permisos suficientes para actuar. Así que si tu web tiene un error estableciendo una conexión con la base de datos, puede que tenga relación con éstos.

Su nombre

#1: Dirígete de nuevo a la opción «MySQL Bases de datos» de tu cPanel.

#2: Localiza el nombre de tu usuario MySQL

Para ello debes mirar el apartado relativo a usuarios MySQL y sus nombres. En cPanel lo encontrarás en la parte inferior de la pantalla.

Anota el nombre del usuario MySQL de la web en la que aparece el error.

Si es tu primera web, tendrás un sólo usuario MySQL. En cualquier caso, anota el nombre del usuario MySQL de la web que tienes afectada por el error.

#3: Comprueba el nombre del usuario MySQL que figura en wp-config.php.

Accede al archivo por FTP o WebFTP y verifica que el nombre del usuario MySQL que aparece en él coincide con el que has anotado.

Verifica en wp-config.php el nombre del usuario MySQL

¿Es el mismo nombre?

  • Si el usuario MySQL es el mismo, entonces el error está en otro campo.
  • Si no lo es, corrígelo y guarda el archivo. Puedes intentar ver si con esto tu web ya no muestra «error al establecer una conexión con la base de datos». ¿El error persiste? Sigue con este blogpost para comprobar el resto de campos de wp-config.php.

Su contraseña

#1: Vuelve al apartado de usuarios MySQL.

#2: Establece una nueva contraseña para el usuario MySQL.

Desde aquí puedes establecer la contraseña del usuario MySQL.

Debes hacer clic en la opción «Establecer contraseña» del usuario MySQL que te interesa. La razón tras ello es que no puedes consultar la contraseña actual. Sólo cambiarla por una nueva.

¿Te da palo? Bueno, a mi me parece una buena medida de seguridad. Además, el único lugar en el que debes poner la contraseña del usuario MySQL es en el archivo wp-config.php. Es decir, que tampoco hablamos de mucho trabajo, ¿eh? ????

Cuando hagas clic en «Establecer contraseña» verás lo siguiente:

Establece una nueva contraseña segura para el usuario MySQL.

Desde aquí puedes escribir el nuevo password que quieres asignarle al usuario MySQL. Siempre aconsejo que la contraseña sea lo más complicada posible. Por eso yo de ti utilizaría la que me diera el «Generador de contraseñas».

En cualquier caso, anota la nueva contraseña y dale a «Cambiar contraseña».

#3: Comprueba la contraseña del usuario MySQL que figura en wp-config.php.

Pon la nueva contraseña del usuario MySQL en wp-config.php.

Asegúrate de que pones la misma contraseña que has anotado previamente. Al completo. Dale a guardar el archivo PHP y verifica si ha desaparecido el mensaje «Error al establecer una conexión con la base de datos».

¿Sí? ¡Estupendo!

¿Aún no? Tranquilo, sigue leyendo que ya queda poco ????

Sus permisos

Imagina que tú eres un usuario MySQL. La situación es como cuando entras en un piso de alquiler. Seguramente quieras saber qué puedes hacer y que no. ¿Puedes pintar paredes? ¿Hacer agujeros en la pared? ¿Tener una mascota?

Pues un usuario MySQL necesita que le des permisos para poder operar en la base de datos. Es decir, que tú puedes tener wp-config.php bien rellenado que tu web no funcionará (aún). Y seguramente sea por una cuestión de permisos.

A continuación te muestro cómo asignar de nuevo el usuario MySQL a la base de datos para asegurarnos que tiene todos los privilegios. Si no utilizas cPanel, es posible que no veas ninguna opción parecida. En este caso, contacta con tu proveedor y pregúntaselo.

Añade de nuevo el usuario MySQL a la database.

Selecciona el usuario MySQL y la base de datos que te interesan, y dale a «Añadir».

Asegúrate que el usuario MySQL tiene todos los privilegios.

En este paso, tan sólo debes hacer clic en «Todos los privilegios» y luego en el botón «Hacer cambios».

Si con esto el mensaje «Error al establecer una conexión con la base de datos» no desaparece, ya sabes. Toca seguir leyendo ⬇️

El hostname MySQL

El hostname es el lugar en el que se encuentra la base de datos. Por defecto se trata de «localhost». Es el lugar más comúnmente utilizado por los diferentes proveedores de hosting.

De todas formas, mira si por algún lado del panel de control del hosting tienes indicaciones al respecto. Si no las hay, algo habitual, consúltalo con tu proveedor.

Asegúrate que el hostname indicado en wp-config.php es el correcto.

El prefijo de las tablas

Si has verificado todo lo anteriormente comentado, y aún te marca error estableciendo una conexión con la base de datos, sólo queda verificar un campo más. Ánimos, ¡que te queda nada! ✊

¿Recuerdas lo que comentaba del prefijo de las tablas? ¿No? Pues sube al punto en el que te explico qué es el archivo wp-config.php y vuelve a leerlo.

Comprueba que el prefijo en wp-config.pho es el correcto.

No importa si tu prefijo es el que hay por defecto «wp_» o uno personalizado para mayor seguridad. Verifica en wp-config que el prefijo que aparece se corresponde.

Tu turno: ¿Conseguiste solucionar «Error establishing a database connection»? ¿Dónde estaba el problema en tu caso? ¿Te ha sido útil este blogpost? 

Si has seguido los pasos mostrados, seguro que has podido solucionar el error y ya no verás el puñetero mensaje «Error al establecer una conexión con la base de datos». ¡Felicidades!

Apúntate a nuestra news

Serás el primero en conocer cada nueva entrada de blog que escribimos para que saques más partido a tu web. En ocasiones, también te hablaremos de nuestra formación.

Información básica sobre protección de datos: Responsable: Artilet Digital, S.L. (SrMomo). Finalidad: Gestionar y enviar información de boletines y promociones a través de correo electrónico. Legitimación: Consentimiento del interesado. Destinatarios: No se cederán a terceros salvo obligación legal. Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso, rectificación, supresión, oposición y demás derechos legalmente establecidos a través del siguiente e-mail: infoARROBAsrmomo.com. Información adicional: Puedes consultar la información adicional y detallada sobre protección de datos en los enlaces en el pié de página.

9 comentarios en «Error al establecer una conexión con la base de datos»

  1. Hola, no sé como solucionar este problema:

    No se puede establecer el enlace a la base de datos: SQLSTATE [HY000] [1045] Acceso denegado para el usuario ‘frigus’ @ ‘localhost’ (usando contraseña: YES)
    en la línea 136 en el archivo classes / db / DbPDO.php

    131. función pública connect ()
    132. {
    133. prueba {
    134. $ this-> link = $ this-> getPDO ($ this-> server, $ this-> user, $ this-> password, $ this-> database, 5);
    135.} catch (PDOException $ e) {
    136. throw new PrestaShopException (‘No se puede establecer el enlace a la base de datos:’. $ E-> getMessage ());
    137.}
    138.
    139. $ this-> link-> exec (‘ESTABLECER SESIÓN sql_mode = \’ \ »);
    140.
    141. return $ este-> enlace;

    Gracias y saludos!

    Responder
    • Hola Marina! Parece que lo mejor es que lo comentes con tu hosting. El mensaje me indica que es más bien algo de nivel de servidor. Además, no sé porqué leo Prestashop por allí.

  2. Hola, no sé como solucionar este problema:

    No se puede establecer el enlace a la base de datos: SQLSTATE [HY000] [1045] Acceso denegado para el usuario ‘frigus’ @ ‘localhost’ (usando contraseña: YES)
    en la línea 136 en el archivo classes / db / DbPDO.php

    131. función pública connect ()
    132. {
    133. prueba {
    134. $ this-> link = $ this-> getPDO ($ this-> server, $ this-> user, $ this-> password, $ this-> database, 5);
    135.} catch (PDOException $ e) {
    136. throw new PrestaShopException (‘No se puede establecer el enlace a la base de datos:’. $ E-> getMessage ());
    137.}
    138.
    139. $ this-> link-> exec (‘ESTABLECER SESIÓN sql_mode = \’ \ »);
    140.
    141. return $ este-> enlace;

    Gracias y saludos

    Responder
  3. Hola,

    Disculpa la molestia, me sale el mismo error pero en mi caso al momento de ingresar en Base de Datos MySQL, no encuentra mi BD y no la eliminé. Qué puedo hacer en ese caso?

    Saludos.

    Responder
    • Hola Omar! No acabo de entender tu problema. De todas formas, si la base de datos se ha evaporado, entonces contacta con tu hosting para que te ayuden con ello. Es el único consejo que se me ocurre 🙂

  4. Buenos días amigo,

    Tengo un problema similar con una base de datos en Acces, en la cual al tratar de abrir cualquier modulo me arroja el cuadro: «el formulario esta mal escrito o hace referencia a uno que no existe». Ya he intentado de todo y no me funciona. A raíz de esto me ha tocado hacer doble trabajo ya que no puedo usar la base de datos. Te agradecería tu colaboración.

    Saludos.

    Responder
    • Hola Mateo!
      Siento no poder ayudarte, pues una base de datos en Access no tiene nada que ver con una en WordPress. Deseo puedas solucionar tu error.
      Un saludo.

  5. Hola, saludos. Pude solucionar cambiando la contraseña del usuario de la base de datos y agregándola al archivo wp-config.php. Mi problema había surgido tras suspender una cuenta de hosting (soy reseller) durante 2 meses, al activarla nuevamente no establecía conexión con la base de datos. Gracias por el post, súper útil.

    Responder
    • Hola Alejandro!

      Celebro que hayas podido solucionar el problema y de que el artículo te haya resultado útil ????

      Nos vemos!

Deja un comentario

Información básica sobre protección de datos: REPONSABLE: Artilet Digital, S.L. (SrMomo). FINALIDAD: Gestionar la solicitud que realizas en este formulario de contacto. LEGITIMACIÓN: Consentimiento del interesado. DESTINATARIOS: No se cederán a terceros salvo obligación legal. DERECHOS: Puedes ejercitar en cualquier momento tus derechos de acceso, rectificación, supresión, oposición y demás derechos legalmente establecidos a través del siguiente e-mail: infoARROBAsrmomo.com. INFORMACIÓN ADICIONAL: Puedes consultar la información adicional y detallada sobre protección de datos en los enlaces en el pié de página.

Únete a SrMomo

y mejora tu WordPress

Información básica sobre protección de datos: REPONSABLE: Artilet Digital, S.L. (SrMomo). FINALIDAD: Gestionar y enviar información de boletines y promociones a través de correo electrónico. LEGITIMACIÓN: Consentimiento del interesado. DESTINATARIOS: No se cederán a terceros salvo obligación legal. DERECHOS: Puedes ejercitar en cualquier momento tus derechos de acceso, rectificación, supresión, oposición y demás derechos legalmente establecidos a través del siguiente e-mail: infoARROBAsrmomo.com. INFORMACIÓN ADICIONAL: Puedes consultar la información adicional y detallada sobre protección de datos en los enlaces en el pié de página.

Únete a SrMomo

y mejora tu WordPress

Información básica sobre protección de datos: REPONSABLE: Artilet Digital, S.L. (SrMomo). FINALIDAD: Gestionar y enviar información de boletines y promociones a través de correo electrónico. LEGITIMACIÓN: Consentimiento del interesado. DESTINATARIOS: No se cederán a terceros salvo obligación legal. DERECHOS: Puedes ejercitar en cualquier momento tus derechos de acceso, rectificación, supresión, oposición y demás derechos legalmente establecidos a través del siguiente e-mail: infoARROBAsrmomo.com. INFORMACIÓN ADICIONAL: Puedes consultar la información adicional y detallada sobre protección de datos en los enlaces en el pié de página.