¿Cómo puedo solucionar los errores de conexión a la base de datos en las aplicaciones basadas en WordPress alojadas en Lightsail?

Actualización más reciente: 28-09-2021

Recibo uno o ambos de los siguientes errores cuando me conecto a la aplicación basada en WordPress:

  • “Se produjo un error al establecer la conexión con la base de datos”.
  • “Una o más tablas de la base de datos no están disponibles. Es posible que sea necesario reparar la base de datos”.

¿Cómo puedo resolver estos errores?

Descripción corta

El error “Se produjo un error al establecer la conexión con la base de datos” se puede producir por los siguientes motivos:

  • Hay tablas de la base de datos que están dañadas.
  • La conexión remota a la base de datos está desactivada.
  • El servicio de la base de datos no está disponible.
  • No hay suficiente espacio en el volumen.
  • Hay credenciales de inicio de sesión incorrectas en el archivo de configuración de WordPress.

Resolución

Tablas de la base de datos que están dañadas

Abra la página wp-admin del sitio web (por ejemplo, example.com/wp-admin) en el navegador y busque el error “Una o más tablas de la base de datos no están disponibles. Es posible que sea necesario reparar la base de datos”. Si ve este error, significa que obtiene el error “Se produjo un error al establecer la conexión con la base de datos” debido a que las tablas de la base de datos están dañadas. Para reparar las tablas dañadas, haga lo siguiente:

1.    Obtenga acceso al archivo wp-config.php mediante un editor de texto, como el editor vi.

$ sudo vi wp-config.php

2.    Agregue la siguiente línea en el archivo wp-config.php. Asegúrese de agregar la línea inmediatamente antes de la línea “¡Eso es todo, deje de editar! Felicidades con el blog”.

define('WP_ALLOW_REPAIR' ,true);

3.    Después de agregar la configuración anterior al archivo, acceda a la siguiente URL y luego ejecute Reparar base de datos:

/wp-admin/maint/repair.php (por ejemplo, example.com/wp-admin/maint/repair.php)

4.    Después de ejecutar la reparación de la base de datos, elimine la línea de código que agregó al archivo wp-config.php. Si no elimina esta línea, cualquiera puede ejecutar la reparación en la base de datos.

Conexión remota a la base de datos desactivada

A veces las bases de datos residen en un servidor de bases de datos remoto. Si el servidor de la base de datos no permite conexiones remotas desde la instancia que aloja el sitio web, no se podrá conectar a la base de datos. Para solucionar este problema, haga lo siguiente:

1.    Verifique el valor de DB_HOST en el archivo de configuración wp-config.php. Si el alojamiento no es localhost o 127.0.0.1, entonces la base de datos reside en un servidor remoto, como se muestra en el siguiente ejemplo:

define('DB_HOST', '192.168.22.9');

2.    Intente comunicarse a través de telnet desde el servidor al servidor remoto en el puerto 3306. Si no se puede conectar, entonces las conexiones remotas no están permitidas en la configuración de la base de datos en el servidor remoto. También es posible que haya un firewall en el servidor remoto que bloquee la conexión. Póngase en contacto con el propietario de la base de datos externa o con el servicio de soporte para obtener ayuda para permitir las conexiones desde la instancia de Lightsail.

Es una práctica recomendada almacenar la base de datos del sitio web en una base de datos administrada por Lightsail para obtener alta disponibilidad y seguridad.

El servicio de la base de datos no está disponible

Nota: Es posible que las siguientes rutas de archivos y comandos cambien en función de si la instancia de WordPress de Lightsail utiliza MySQL o MariaDB. Además, las rutas de los archivos y los comandos varían en función de si la instancia utiliza paquetes nativos del sistema Linux (Enfoque A), o si se trata de una instalación autónoma (Enfoque B). Para identificar el tipo de servidor de base de datos y el enfoque a seguir, ejecute los siguientes comandos:

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A" || echo "Approach B"
test -d /opt/bitnami/mariadb && echo "MariaDB" || echo "MySQL"

1.    Si verificó que las tablas no están dañadas y que no hay problemas de conexión remota a la base de datos, y aun así WordPress no se puede conectar a la base de datos, es posible que el servidor de la base de datos no esté disponible. Esto puede ocurrir debido a problemas de configuración de la base de datos, mucho tráfico en un servidor, poco espacio en el disco, poca memoria disponible, etc. Verifique el estado del servicio de la base de datos con el siguiente comando:

Servidor de base de datos MySQL

sudo /opt/bitnami/ctlscript.sh status mysql

Servidor de base de datos MariaDB

sudo /opt/bitnami/ctlscript.sh status mariadb

2.    Si el comando anterior muestra que la base de datos está en el estado Detenido, intente iniciar el servicio de la base de datos con el siguiente comando:

Servidor de base de datos MySQL

sudo /opt/bitnami/ctlscript.sh start mysql

Servidor de base de datos MariaDB

sudo /opt/bitnami/ctlscript.sh start mariadb

3.    Si todavía no puede iniciar el servicio de la base de datos y aparecen errores durante el proceso de inicio, verifique los registros del servicio de la base de datos para identificar la causa raíz y solucionar el problema. El archivo de registro del servicio de la base de datos principal se encuentra en una de las siguientes ubicaciones en la instancia de WordPress de Lightsail:

Servidor de la base de datos MySQL que sigue el enfoque A: /opt/bitnami/mysql/logs/mysqld.log

Servidor de la base de datos MySQL que sigue el enfoque B: /opt/bitnami/mysql/data/mysqld.log

Servidor de la base de datos MariaDB que sigue el enfoque A: /opt/bitnami/mariadb/logs/mysqld.log

Servidor de la base de datos MariaDB que sigue el enfoque B: /opt/bitnami/mariadb/data/mysqld.log

El rendimiento y la conectividad de la base de datos se pueden ver afectados por el poco espacio en disco o la poca memoria disponible. Verifique estos recursos con los comandosdf y free.

Espacio insuficiente en el volumen

Si el espacio libre en el disco del volumen es del 100 % o justo por debajo del 100 %, entonces el servicio de la base de datos se podría interrumpir.

1.    Ejecute el siguiente comando:

$ sudo df -h

El comando anterior muestra la cantidad de espacio libre en el disco, como se ilustra en el siguiente ejemplo:

Filesystem      Size    Used     Avail      Use%    Mounted on
devtmpfs        1.9G     0       1.9G        0%     /dev
tmpfs           1.9G     0       1.9G        0%     /dev/shm
tmpfs           1.9G    400K     1.9G        1%     /run
tmpfs           1.9G     0       1.9G        0%     /sys/fs/cgroup
/dev/nvme0n1p1  8.0G    8.0G      0G        100%    /
tmpfs           389M     0       389M        0%     /run/user/1000

2.    Si la salida del comando muestra que no tiene suficiente espacio disponible, puede cambiar el tamaño de la instancia a uno mayor. También puede eliminar los archivos innecesarios del servidor para crear espacio libre.

3.    Después de aumentar el espacio libre en disco, reinicie el servicio de la base de datos.

Credenciales de inicio de sesión incorrectas en la configuración de WordPress

WordPress necesita una cadena de conexión de base de datos específica, que incluye un nombre de usuario, una contraseña y un alojamiento para acceder a la base de datos. Si alguno de esos elementos ha cambiado, entonces WordPress no puede acceder a la base de datos.

1.    Para verificar que utiliza la cadena de conexión correcta, obtenga los detalles de la cadena de conexión DB_NAME, DB_HOST, DB_USER y DB_PASSWORD en el archivo wp-config.php.

2.    Acceda a la base de datos desde un terminal mediante la cadena de conexión. Asegúrese de reemplazar DB_NAME, DB_HOST Y DB_USER por los valores que obtuvo en el paso uno.

sudo mysql 'DB_NAME' -h 'DB_HOST' -u 'DB_USER' -p
Enter password: ********

Nota: La contraseña no se muestra mientras se introduce, de modo que no sea visible para otros usuarios.

3.    Pulse la tecla INTRO después de introducir la contraseña.

Si recibe un error de Acceso denegado al utilizar el comando anterior, suele significar que las credenciales son incorrectas.

Si utiliza un alojamiento de base de datos remoto, agregue la cadena de conexión correcta en el archivo wp-config.php. Si la base de datos está en el mismo servidor, entonces asegúrese de que DB_NAME es bitnami_wordpress y DB_USER es bn_wordpress.

Para restablecer la contraseña del usuario de la base de datos, haga lo siguiente:

1.    Utilice el siguiente comando para obtener acceso /home/bitnami/bitnami_credentials. Anote la contraseña de la base de datos raíz.

sudo cat /home/bitnami/bitnami_credentials

2.    Inicie sesión en el shell de MySQL/MariaDB con el siguiente comando, luego introduzca la contraseña que obtuvo del comando anterior. Si no puede iniciar sesión en el shell con la contraseña de la base de datos raíz, entonces restablezca la contraseña (MySQL o MariaDB)

sudo mysql -u root -p
Enter password: ********

3.    Dentro del shell de MySQL o MariaDB, ejecute la siguiente consulta para asegurarse de que la base de datos bitnami_wordpress existe:

show databases;

4.    Ejecute la siguiente consulta para asegurarse de que el usuario de la base de datos bn_wordpress existe:

SELECT user FROM mysql.user;

5.    Restablezca la contraseña del usuario de la base de datos “bn_wordpress” mediante la siguiente consulta.

Nota: Reemplace CONTRASEÑA con la contraseña que obtuvo del archivo wp-config.php.

Base de datos MySQL

alter user 'bn_wordpress'@'localhost' identified by 'PASSWORD‘;
alter user 'bn_wordpress'@'127.0.0.1' identified by 'PASSWORD‘;

Base de datos MariaDB

alter user 'bn_wordpress'@'%' identified by 'PASSWORD‘;

Nota: Si ninguna de las soluciones anteriores funciona, puede restaurar la instancia mediante una instantánea de copia de seguridad.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?