Comment puis-je résoudre les erreurs de connexion à la base de données sur les applications WordPress hébergées dans Lightsail ?

Lecture de 9 minute(s)
0

Je reçois l'une ou les deux erreurs suivantes lors de la connexion à mon application basée sur WordPress :

« Erreur d'établissement d'une connexion à la base de données. » « Une ou plusieurs tables de la base de données sont indisponibles. La base de données devra probablement être réparée. »

Comment puis-je résoudre ces erreurs ?

Brève description

L'erreur « Erreur lors de l'établissement d'une connexion à la base de données » peut se produire pour les raisons suivantes :

  • Des tables de base de données sont endommagées.
  • La connexion à la base de données distante est désactivée.
  • Le service de base de données est en panne.
  • L'espace disponible sur votre volume est insuffisant.
  • Les informations d'identification de connexion sont incorrectes dans votre fichier de configuration WordPress.

Résolution

Tables de base de données endommagées

Ouvrez la page wp-admin de votre site web (par exemple, exemple.com/wp-admin) dans le navigateur et recherchez l'erreur « Une ou plusieurs tables de base de données sont indisponibles. La base de données devra probablement être réparée. » Si cette erreur s'affiche, le message « Erreur lors de l'établissement de la connexion à la base de données » s'affiche en raison de la présence de tables de base de données corrompues. Pour réparer les tables endommagées, procédez comme suit :

1.    Accédez au fichier wp-config.php à l'aide d'un éditeur de texte, tel que l'éditeur vi.

$ sudo vi wp-config.php

2.    Ajoutez la ligne suivante dans votre fichier wp-config.php. Assurez-vous d'ajouter la ligne immédiatement avant la ligne « Vous-y êtes, arrêtez d'éditer ! Bloguez en toute sérénité ».

define('WP_ALLOW_REPAIR' ,true);

3.    Après avoir ajouté le paramètre précédent au fichier, accédez à l'URL suivante, puis exécutez Réparation de la base de données :

/wp-admin/maint/repair.php (par exemple, example.com/wp-admin/maint/repair.php)

4.    Après avoir exécuté la réparation de la base de données, supprimez la ligne de code que vous avez ajoutée à votre fichier wp-config.php. Si vous ne supprimez pas cette ligne, alors le premier venu peut exécuter la réparation de votre base de données.

Connexion à la base de données distante désactivée

Parfois, les bases de données résident sur un serveur de base de données distant. Si le serveur de base de données n'autorise pas les connexions à distance depuis l'instance hébergeant le site web, vous ne pouvez pas vous connecter à la base de données. Pour résoudre ce problème, procédez comme suit :

1.    Vérifiez la valeur DB_HOST dans le fichier de configuration wp-config.php. Si l'hôte n'est pas localhost ou 127.0.0.1, c'est que la base de données réside dans un serveur distant, comme illustré dans l'exemple suivant :

define('DB_HOST', '192.168.22.9');

2.    Essayez de procéder par telnet depuis le serveur vers le serveur distant sur le port 3306. Si vous ne parvenez pas à vous connecter, les connexions à distance ne sont pas autorisées dans la configuration de la base de données sur le serveur distant. Par ailleurs, un pare-feu sur le serveur distant bloque la connexion. Contactez le propriétaire de la base de données externe ou le support technique pour obtenir de l'aide pour autoriser les connexions depuis votre instance Lightsail.

Il est recommandé de stocker la base de données du site web dans une base de données gérée par Lightsail à des fins de haute disponibilité et de sécurité.

Le service de base de données est en panne

Remarque : les chemins d'accès aux fichiers et commandes suivants peuvent changer selon que votre instance WordPress Lightsail utilise MySQL ou MariaDB. De plus, les chemins d'accès aux fichiers et les commandes varient selon que l'instance utilise des packages système Linux natifs (approche A) ou s'il s'agit d'une installation autonome (approche B). Pour identifier le type de serveur de base de données et l'approche à suivre, exécutez les commandes suivantes :

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

1.    Si vous avez vérifié qu'il n'y a pas de corruption de table ni de problème de connexion à la base de données distante, et que WordPress ne peut toujours pas se connecter à la base de données, votre serveur de base de données est probablement en panne. Cette situation résulte probablement des problèmes de configuration de base de données,de trafic important sur un serveur, d'espace disque insuffisant, de mémoire disponible insuffisante, etc. Vérifiez l'état du service de base de données à l'aide de la commande suivante :

Serveur de base de données MySQL

sudo /opt/bitnami/ctlscript.sh status mysql

Serveur de base de données MariaDB

sudo /opt/bitnami/ctlscript.sh status mariadb

2.    Si la commande précédente indique que la base de données est à l'état arrêté, essayez de démarrer le service de base de données à l'aide de la commande suivante :

Serveur de base de données MySQL

sudo /opt/bitnami/ctlscript.sh start mysql

Serveur de base de données MariaDB

sudo /opt/bitnami/ctlscript.sh start mariadb

3.    Si vous ne parvenez toujours pas à démarrer le service de base de données et que des erreurs s'affichent au cours du processus de démarrage, consultez les journaux du service de base de données pour identifier la cause première et résoudre le problème. Le fichier journal du service de base de données principal se trouve à l'un des emplacements suivants de votre instance WordPress Lightsail :

Serveur de base de données MySQL suivant l'approche A : /opt/bitnami/mysql/logs/mysqld.log

Serveur de base de données MySQL suivant l'approche B : /opt/bitnami/mysql/data/mysqld.log

Serveur de base de données MariaDB suivant l'approche A : /opt/bitnami/mariadb/logs/mysqld.log

Serveur de base de données MariaDB suivant l'approche B : /opt/bitnami/mariadb/data/mysqld.log

Les performances et la connectivité de la base de données peuvent être affectées par l'insuffisance d'un espace disque et/ou de la faiblesse de la mémoire disponible. Vérifiez ces ressources à l'aide des commandes df et free.

Espace insuffisant sur votre volume

Si l'espace disque disponible sur votre volume est de 100 % ou juste inférieur à 100 %, le service de base de données risque de tomber en panne.

1.    Exécutez la commande suivante :

$ sudo df -h

La commande précédente indique le volume d'espace disque disponible, comme illustré dans l'exemple suivant :

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 sortie de la commande indique que vous ne disposez pas d'un espace disponible suffisant, vous pouvez redimensionner votre instance à une taille supérieure. Vous pouvez également supprimer les fichiers inutiles du serveur pour créer de l'espace libre.

3.    Après avoir augmenté l'espace disque disponible, redémarrez le service de base de données.

Informations d'identification de connexion incorrects dans vos paramètres WordPress

WordPress a besoin d'une chaîne de connexion spécifique à la base de données, qui comprend un nom d'utilisateur, un mot de passe et un hôte pour accéder à la base de données. Si l'un de ces éléments est modifié, WordPress ne peut pas accéder à la base de données.

1.    Pour vérifier que vous utilisez la bonne chaîne de connexion, obtenez les détails de la chaîne de connexion DB_NAME, DB_HOST, DB_USER et DB_PASSWORD (DB_NAME, DB_HOST, DB_USER et DB_PASSWORD) dans le fichier wp-config.php.

2.    Accédez à la base de données depuis un terminal à l'aide de la chaîne de connexion. Assurez-vous de remplacer DB_NAME, DB_HOST ET DB_USER par les valeurs obtenues à l'étape 1.

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

Remarque : le mot de passe n'est pas affiché lorsque vous le saisissez. De cette manière, il ne sera pas visible par les autres utilisateurs.

3.    Appuyez sur la clé ENTRÉE après avoir saisi le mot de passe.

Si vous obtenez une erreur Accès refusé lors de l'utilisation de la commande précédente, cela signifie généralement que les informations d'identification sont incorrectes.

Si vous utilisez un hôte de base de données distant, ajoutez la bonne chaîne de connexion dans le fichier wp-config.php. Si la base de données se trouve sur le même serveur, assurez-vous que DB_NAME est bitnami_wordpress et DB_USER est bn_wordpress.

Pour réinitialiser le mot de passe utilisateur de base de données, procédez comme suit :

1.    Utilisez la commande suivante pour accéder à /home/bitnami/bitnami_credentials. Notez le mot de passe de la base de données racine.

sudo cat /home/bitnami/bitnami_credentials

2.    Connectez-vous au shell MySQL/MariaDB en utilisant la commande suivante, puis saisissez le mot de passe obtenu à partir de la commande précédente. Si vous ne parvenez pas à vous connecter au shell à l'aide du mot de passe racine de la base de données, réinitialisez le mot de passe (MySQL ou MariaDB)

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

3.    Dans le shell MySQL ou MariaDB, exécutez la requête suivante pour vous assurer que la base de données bitnami_wordpress existe :

show databases;

4.    Exécutez la requête suivante pour vous assurer que l'utilisateur de base de données bn_wordpress existe :

SELECT user FROM mysql.user;

5.    Réinitialisez le mot de passe de l'utilisateur de la base de données «bn_wordpress » en utilisant la requête suivante.

Remarque : remplacez PASSWORD par le mot de passe que vous avez obtenu dans le fichier wp-config.php.

Base de données MySQL

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

Base de données MariaDB

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

Remarque : si aucune des résolutions précédentes ne fonctionne, vous pouvez restaurer votre instance à l'aide d'un instantané de sauvegarde.


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 ans