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 à une base de données. » « Une ou plusieurs tables de base de données sont indisponibles. La base de données devra probablement être réparée.» Je souhaiterais résoudre ce problème.

Brève description

Vous recevez ces messages d'erreur pour les raisons suivantes :

  • Tables de base de données endommagées
  • Connexion à une base de données distante bloquée
  • Problèmes liés au service de base de données
  • Espace disponible sur votre volume insuffisant
  • Informations d'identification de connexion incorrectes dans le fichier de configuration WordPress

Résolution

Tables de base de données endommagées

Vous pouvez vérifier si les tables de la base de données sont endommagées en procédant comme suit :

  1. Ouvrez la page example.com/wp-admin et recherchez l'erreur suivante: une ou plusieurs tables de base de données sont indisponibles. La base de données devra probablement être réparée.
    **Remarque :**remplacez example.com par le nom de votre site internet.

  2. Utilisez un éditeur de texte, tel que l'éditeur vi, pour accéder au fichier ** wp-config.php**:

    $ sudo vi wp-config.php
  3. juste avant la ligne ** Vous-y êtes, arrêtez d'éditer ! Amusez-vous en bloguant**, ajoutez la ligne suivante :

    define('WP_ALLOW_REPAIR' ,true);
  4. Ouvrez la page example.com/wp-admin/maint/repair.php, puis exécutez Réparation de la base de données.
    **Remarque :**remplacez example.com par le nom de votre site internet.

  5. Revenez au ** fichier ** wp-config-php et supprimez la ligne de code que vous avez ajoutée à l'étape 3.

Connexion à une base de données distante bloquée

Si le serveur de base de données n'autorise pas les connexions à distance depuis l'instance hôte du site web, vous ne pouvez pas vous connecter à cette base de données. Pour garantir une haute disponibilité et une bonne sécurité de la base de données du site web, il est recommandé de la stocker au sein d'une base de données gérée par Lightsail.

Les étapes suivantes permettent de vérifier la connexion à la base de données :

  1. Vérifiez la valeur DB_HOST dans le fichier de configuration wp-config.php.
    define('DB_HOST', '192.168.22.9');
    **Remarque :**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.Copiez la valeur DB_HOST pour utiliser à la prochaine étape.
  2. Procédez par telnet depuis le serveur vers le serveur distant sur le port 3306.
    telnet remote server IP 3306
    Remarque :remplacez l'IP du serveur distant par la valeur DB_HOST que vous avez obtenue à l'étape 1.
  3. Si la connexion est impossible, cela signifie que la configuration de la base de données du serveur distant n'autorise pas les connexions à distance. Par ailleurs, un pare-feu sur le serveur distant pourrait bloquer votre connexion. Contactez le propriétaire de la base de données externe ou l'équipe d'assistance pour établir des connexions à partir de votre instance Lightsail.

Problèmes liés au service de base de données

Pour vérifier si votre service de base de données est en panne, identifiez le type de serveur utilisé par votre instance WordPress Lightsail, à savoir MySQL ou MariaDB. Assurez-vous également que l'instance utilise des packages système Linux natifs ou s'il s'agit d'une installation autonome. Pour identifier le type de serveur de base de données et l'approche à suivre, exécutez les commandes suivantes :

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

**Remarque :**Si la sortie indique Approche A, cela signifie que votre serveur utilise des systèmes Linux natifs. Si elle indique Approche B, il s'agit d'une installation autonome.

**Serveur de base de données MySQL **

Procédez comme suit pour vérifier les problèmes de service d'une base de données MySQL :

  1. Pour vérifier l'état du serveur de base de données, exécutez la commande suivante :

    sudo /opt/bitnami/ctlscript.sh status mysql
  2. Exécutez la commande suivante si la base de données est arrêtée :

    sudo /opt/bitnami/ctlscript.sh start mysql
  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 principale. Si votre serveur utilise des systèmes Linux natifs, vérifiez l'emplacement du fichier suivant : /opt/bitnami/mysql/logs/mysqld.log. Vérifiez l'emplacement du fichier ci-après si votre serveur est une installation autonome : /opt/bitnami/mysql/data/mysqld.log. Un faible espace disque ou une mémoire disponible insuffisante affectent les performances et la connectivité de la base de données. Exécutez les commandes df et free pour vérifier ces ressources.

Serveur de base de données MariaDB

Pour vérifier l'existence de problèmes de service avec une base de données MariaDB, procédez comme suit :

  1. Pour vérifier l'état du serveur de base de données, exécutez la commande suivante :

    sudo /opt/bitnami/ctlscript.sh status mariadb
  2. Exécutez la commande suivante si la base de données est arrêtée :

    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 principale. Si votre serveur utilise des systèmes Linux natifs, vérifiez l'emplacement du fichier suivant : ** /opt/bitnami/mariadb/journaux/mysqld.journal**. Vérifiez l'emplacement du fichier ci-après si votre serveur est une installation autonome : /opt/bitnami/mysql/data/mysqld.log. Un faible espace disque ou une mémoire disponible insuffisante affectent les performances et la connectivité de la base de données. Exécutez les commandes df et free pour vérifier ces ressources.

Espace disponible sur votre volume insuffisant

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.

Pour vérifier le volume de votre serveur, procédez comme suit :

  1. Pour connaître la quantité d'espace disque disponible, exécutez la commande suivante :

    $ sudo df -h

    Exemple de sortie :

    
    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
  2. Augmentez la taille de votre instance ou supprimez les fichiers inutiles du serveur si l'espace disponible est insuffisant.

  3. Redémarrez le service de base de données.

Informations d'identification de connexion incorrectes dans le fichier de configuration WordPress

Vérifiez vos informations d'identification

Effectuez les opérations suivantes :

  1. Accédez au fichier wp-config.php. Copiez les informations contenues dans DB_NAME, DB_HOST, DB_USER,et DB_PASSWORD dans un fichier texte que vous utiliserez à l'étape suivante.
  2. Pour accéder à la base de données depuis un terminal, exécutez la commande suivante :
    sudo mysql 'DB_NAME' -h 'DB_HOST' -u 'DB_USER' -pEnter password: ********
    **Remarque :Remplacez ** DB\ _NAME, ** DB\ _HOST ** et ** DB_USER ** par les valeurs que vous avez copiées à l'étape 1.
  3. Saisissez le mot de passe dans la valeur DB_PASSWORD, puis appuyez sur ENTRÉE .
    **Remarque :**Si le message d'erreur Accès refusé s'affiche, cela signifie que les informations d'identification sont incorrectes. Réinitialisez le mot de passe de l'utilisateur de la base de données pour résoudre ce problème.
  4. Si votre hôte de base de données est distant, mettez à jour la chaîne de connexion dans le fichier ** wp-config.php**. Lorsque la base de données se trouve sur le même serveur, vérifiez que DB_NAME est bien bitnami-wordpress et que DB_USER est bien bn_wordpress.

**Réinitialiser le mot de passe utilisateur de la base **

Effectuez les opérations suivantes :

  1. Pour accéder à /home/bitnami/bitnami\ _informations d’identification, exécutez la commande suivante :

    sudo cat /home/bitnami/bitnami_credentials

    **Remarque :**copiez le mot de passe de la base de données racine dans un fichier texte à utiliser à l'étape suivante.

  2. Connectez-vous à MySQL ou MariaDB en éxécutant la commande suivante:

    sudo mysql -u root -pEnter password: ********

    **Remarque :**remplacez ** mysql ** par votre serveur et ** \ * \ * \ * \ * \ * \ * \ * \ * \ * ** par le mot de passe racine de la base de données que vous avez copié à l'étape 1. Si vous ne parvenez pas à vous connecter avec le mot de passe, suivez les instructions sur le site Web de Bitnami pour réinitialiser le mot de passe de MySQL ou MariaDB.

  3. Pour vérifier que la base de données ** bitnami\ _wordpress** existe, exécutez la requête suivante:

    show databases;
  4. Pour vérifier que l'utilisateur de la base de données bn-wordpress existe, exécutez la requête suivante:

    SELECT user FROM mysql.user;
  5. Si vous utilisez une base de données ** MySQL**, exécutez la commande suivante pour réinitialiser le mot de passe de la base de données de l'utilisateur bn-wordpress :

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

    Si vous utilisez une base de données ** MariaDB**, exécutez la commande suivante pour réinitialiser le mot de passe de la base de données de l'utilisateur ** bn-wordpress** :

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

    Remarque :remplacez ** MOT DE PASSE ** par le mot de passe figurant dans le fichier ** wp-config.php à l'étape 3 de la section ** Vérifier vos informations d'identification.

Lancez une nouvelle instance Lightsail à partir d'un instantané si aucune des solutions précédentes ne résout le problème.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an