¿Cómo puedo solucionar los errores de conexión de la base de datos en aplicaciones basadas en WordPress alojadas en Lightsail?
Cuando conecto mi aplicación basada en WordPress a Amazon Lightsail, recibo uno o ambos de los siguientes errores: «Error establishing a database connection». «One or more database tables are unavailable. The database may need to be repaired». Quiero solucionar este problema.
Breve descripción
Recibe estos mensajes de error 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á bloqueada
- El servicio de la base de datos tiene problemas
- 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
Hay tablas de la base de datos que están dañadas
Para comprobar si hay tablas de bases de datos dañadas, siga estos pasos:
-
Vaya a example.com/wp-admin y busque el siguiente error: One or more database tables are unavailable. The database may need to be repaired.
Nota: Sustituya example.com por el nombre de su sitio web. -
Utilice un editor de texto (por ejemplo, vi) para acceder al archivo wp-config.php:
$ sudo vi wp-config.php
-
Inmediatamente antes de la línea ¡Eso es todo, deje de editar! Disfrute del blog, añada la siguiente línea:
define('WP_ALLOW_REPAIR' ,true);
-
Vaya a example.com/wp-admin/maint/repair.php y, a continuación, ejecute Repair Database.
Nota: Sustituya example.com por el nombre de su sitio web. -
Vuelva al archivo wp-config-php y elimine la línea de código que añadió en el paso 3.
La conexión remota a la base de datos está bloqueada
Si el servidor de la base de datos no permite las conexiones remotas desde la instancia que aloja el sitio web, no podrá conectarse a la base de datos. Se recomienda almacenar la base de datos del sitio web en una base de datos administrada de Lightsail para garantizar una alta disponibilidad y seguridad.
Para comprobar la conexión a la base de datos, siga estos pasos:
- Compruebe el valor de DB_HOST en el archivo de configuración wp-config.php:
Nota: Si el valor es diferente de localhost o 127.0.0.1, la base de datos reside en un servidor remoto. Copie el valor de DB_HOST para usarlo en el siguiente paso.define('DB_HOST', '192.168.22.9');
- Utilice el puerto 3306 para comunicarse a través de telnet desde el servidor al servidor remoto:
Nota: Sustituya remote server IP por el valor de DB_HOST que recibió en el paso 1.telnet remote server IP 3306
- Si no puede conectarse, la configuración de la base de datos del servidor remoto no permite las conexiones remotas. Un firewall en el servidor remoto también puede bloquear la conexión. Póngase en contacto con el propietario de la base de datos externa o con el equipo de soporte para configurar las conexiones desde su instancia de Lightsail.
El servicio de la base de datos tiene problemas
Para comprobar si su servicio de base de datos está inactivo, determine si su instancia de WordPress de Lightsail usa MySQL o MariaDB como tipo de servidor. Además, compruebe si la instancia utiliza sistemas Linux nativos o un servidor que sea una instalación autónoma. Para identificar el tipo de servidor y el enfoque, ejecute los siguientes comandos:
test -d /opt/bitnami/mariadb && echo "MariaDB" || echo "MySQL"
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A" || echo "Approach B"
Nota: Si se muestra Approach A en el resultado, significa que su servidor utiliza sistemas Linux nativos. Si se muestra Approach B, el servidor es una instalación autónoma.
Servidor de base de datos MySQL
Para comprobar si hay problemas de servicio con una base de datos MySQL, siga estos pasos:
-
Para comprobar el estado del servidor de base de datos, ejecute el siguiente comando:
sudo /opt/bitnami/ctlscript.sh status mysql
-
Si la base de datos está detenida, ejecute el siguiente comando:
sudo /opt/bitnami/ctlscript.sh start mysql
-
Si sigue sin poder iniciar el servicio de base de datos o detecta errores durante el proceso de inicio, compruebe los registros de la base de datos para identificar la causa raíz. Si el servidor utiliza sistemas Linux nativos, compruebe la siguiente ubicación del archivo: /opt/bitnami/mysql/logs/mysqld.log. Si el servidor es una instalación autónoma, compruebe la siguiente ubicación del archivo: /opt/bitnami/mysql/data/mysqld.log. La falta de espacio en disco o la poca memoria disponible afectan al rendimiento y la conectividad de la base de datos. Para comprobar estos recursos, ejecute los comandos df y free.
Servidor de base de datos MariaDB
Para comprobar si hay problemas de servicio con una base de datos MariaDB, siga estos pasos:
-
Para comprobar el estado del servidor de base de datos, ejecute el siguiente comando:
sudo /opt/bitnami/ctlscript.sh status mariadb
-
Si la base de datos está detenida, ejecute el siguiente comando:
sudo /opt/bitnami/ctlscript.sh start mariadb
-
Si sigue sin poder iniciar el servicio de base de datos o detecta errores durante el proceso de inicio, compruebe los registros de la base de datos para identificar la causa raíz. Si el servidor utiliza sistemas Linux nativos, compruebe la siguiente ubicación del archivo: /opt/bitnami/mariadb/logs/mysqld.log. Si el servidor es una instalación autónoma, compruebe la siguiente ubicación del archivo: /opt/bitnami/mariadb/data/mysqld.log. La falta de espacio en disco o la poca memoria disponible afectan al rendimiento y la conectividad de la base de datos. Para comprobar estos recursos, ejecute los comandos df y free.
No hay suficiente espacio en el volumen
Si el espacio libre en disco del volumen es del 100 % o justo por debajo del 100 %, es posible que el servicio de base de datos deje de funcionar.
Para comprobar el volumen del servidor, siga estos pasos:
-
Para ver la cantidad de espacio libre en disco, ejecute el siguiente comando:
$ sudo df -h
Resultado del ejemplo:
Filesystem Size Used Avail Use% Mounted ondevtmpfs 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
-
Si no tiene suficiente espacio disponible, aumente el tamaño de la instancia o elimine los archivos innecesarios del servidor.
-
Reinicie el servicio de base de datos.
Hay credenciales de inicio de sesión incorrectas en el archivo de configuración de WordPress
Compruebe sus credenciales
Siga estos pasos:
- Vaya al archivo wp-config.php. Copie los detalles de DB_NAME, DB_HOST, DB_USER y DB_PASSWORD en un archivo de texto para usarlos en el siguiente paso.
- Para acceder a la base de datos desde un terminal, ejecute el siguiente comando:
Nota: Sustituya DB_NAME, DB_HOST y DB_USER por los valores que copió en el paso 1.sudo mysql 'DB_NAME' -h 'DB_HOST' -u 'DB_USER' -pEnter password: ********
- Introduzca la contraseña con el valor DB_PASSWORD y, a continuación, presione INTRO.
Nota: Si recibe un error de Acceso denegado, las credenciales son incorrectas. Para resolver este problema, restablezca la contraseña del usuario de la base de datos. - Si el host de la base de datos es remoto, actualice la cadena de conexión en el archivo wp-config.php. Si la base de datos está en el mismo servidor, asegúrese de que DB_NAME es bitnami-wordpress y DB_USER es bn_wordpress.
Restablecer la contraseña de usuario de la base de datos
Siga estos pasos:
-
Para acceder a /home/bitnami/bitnami_credentials, ejecute el siguiente comando:
sudo cat /home/bitnami/bitnami_credentials
Nota: Copie la contraseña de la base de datos raíz en un archivo de texto para utilizarla en el siguiente paso.
-
Para iniciar sesión en su shell de MySQL o MariaDB, ejecute el siguiente comando:
sudo mysql -u root -pEnter password: ********
Nota: Sustituya mysql por su servidor y ******** por la contraseña de la base de datos raíz que copió en el paso 1. Si no puede iniciar sesión con la contraseña, siga las instrucciones del sitio web de Bitnami para restablecer la contraseña de MySQL o MariaDB.
-
Para comprobar que la base de datos bitnami_wordpress existe, ejecute la siguiente consulta:
show databases;
-
Para comprobar que el usuario de la base de datos bn-wordpress existe, ejecute la siguiente consulta:
SELECT user FROM mysql.user;
-
Si utiliza una base de datos MySQL, ejecute el siguiente comando para restablecer la contraseña del usuario de la base de datos bn-wordpress:
alter user 'bn_wordpress'@'localhost' identified by 'PASSWORD';alter user 'bn_wordpress'@'127.0.0.1' identified by 'PASSWORD';
Si utiliza una base de datos MariaDB, ejecute el siguiente comando para restablecer la contraseña del usuario de la base de datos bn-wordpress:
alter user 'bn_wordpress'@'%' identified by 'PASSWORD';
Nota: Sustituya PASSWORD por la contraseña del archivo wp-config.php que obtuvo en el paso 3, Compruebe sus credenciales.
Si ninguna de las soluciones anteriores resuelve el problema, inicie una nueva instancia de Lightsail a partir de una instantánea.
Contenido relevante
- OFICIAL DE AWSActualizada hace 9 meses
- OFICIAL DE AWSActualizada hace 9 meses
- OFICIAL DE AWSActualizada hace 5 años