Wie kann ich Datenbankverbindungsfehler in WordPress-basierten Anwendungen beheben, die in Lightsail gehostet werden?

Lesedauer: 7 Minute
0

Wenn ich meine WordPress-basierte Anwendung mit Amazon Lightsail verbinde, erhalte ich einen oder beide der folgenden Fehler: „Fehler beim Aufbau einer Datenbankverbindung.“ „Eine oder mehrere Datenbanktabellen sind nicht verfügbar. Die Datenbank muss möglicherweise repariert werden.“ Ich möchte dieses Problem lösen.

Kurzbeschreibung

Diese Fehlermeldungen können aus den folgenden Gründen auftreten:

  • Beschädigte Datenbanktabellen
  • Blockierte Remote-Datenbankverbindung
  • Probleme mit dem Datenbankdienst
  • Ungenügender Speicherplatz auf Ihrem Volume
  • Falsche Anmeldeinformationen in Ihrer WordPress-Konfigurationsdatei

Lösung

Beschädigte Datenbanktabellen

Gehen Sie wie folgt vor, um auf beschädigte Datenbanktabellen zu prüfen:

  1. Gehen Sie zu beispiel.de/wp-admin und suchen Sie nach dem folgenden Fehler: Eine oder mehrere Datenbanktabellen sind nicht verfügbar. Die Datenbank muss möglicherweise repariert werden.
    Hinweis: Ersetzen Sie beispiel.de durch den Namen Ihrer Website.

  2. Verwenden Sie einen Texteditor wie den vi-Editor, um auf die Datei wp-config.php zuzugreifen:

    $ sudo vi wp-config.php
  3. Fügen Sie unmittelbar vor der Zeile That's all, stop editing! Happy blogging Folgendes hinzu:

    define('WP_ALLOW_REPAIR' ,true);
  4. Gehen Sie zu beispiel.de/wp-admin/maint/repair.php und führen Sie Datenbank reparieren aus.
    Hinweis: Ersetzen Sie beispiel.de durch den Namen Ihrer Website.

  5. Kehren Sie zur Datei wp-config-php zurück und entfernen Sie die Codezeile, die Sie in Schritt 3 hinzugefügt haben.

Blockierte Remote-Datenbankverbindung

Wenn der Datenbankserver keine Remote-Verbindungen von der Instance zulässt, die die Website hostet, können Sie keine Verbindung zur Datenbank herstellen. Es ist bewährte Praxis, die Website-Datenbank in einer von Lightsail verwalteten Datenbank zu speichern, um eine hohe Verfügbarkeit und Sicherheit zu gewährleisten.

Gehen Sie wie folgt vor, um Ihre Datenbankverbindung zu überprüfen:

  1. Überprüfen Sie die Konfigurationsdatei wp-config.php auf den Wert für DB_HOST:
    define('DB_HOST', '192.168.22.9');
    Hinweis: Wenn der Wert nicht localhost oder 127.0.0.1 ist, befindet sich die Datenbank auf einem Remote-Server. Kopieren Sie den Wert hinter DB_HOST, um ihn im folgenden Schritt zu verwenden.
  2. Verwenden Sie Port 3306, um eine Telnet-Verbindung vom Server zum Remote-Server herzustellen:
    telnet remote server IP 3306
    Hinweis: Ersetzen Sie remote server IP durch den Wert für DB_HOST, den Sie in Schritt 1 erhalten haben.
  3. Wenn Sie keine Verbindung herstellen können, erlaubt die Datenbank-Konfiguration des Remote-Servers keine Remote-Verbindungen. Auch eine Firewall auf dem Remote-Server kann Ihre Verbindung blockieren. Wenden Sie sich an den Besitzer der externen Datenbank oder das Support-Team, um Verbindungen von Ihrer Lightsail-Instance aus einzurichten.

Probleme mit dem Datenbankdienst

Um zu überprüfen, ob Ihr Datenbankdienst ausgefallen ist, stellen Sie zunächst fest, ob Ihre Lightsail-WordPress-Instance MySQL oder MariaDB als Servertyp verwendet. Prüfen Sie außerdem, ob die Instance native Linux-Systeme oder einen Server verwendet, bei dem es sich um eine eigenständige Installation handelt. Führen Sie die folgenden Befehle aus, um den Servertyp und die Servermethode zu identifizieren:

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

Hinweis: Wenn Sie in der Ausgabe Approach A sehen, verwendet Ihr Server native Linux-Systeme. Wenn Sie Approach B sehen, handelt es sich bei dem Server um eine eigenständige Installation.

MySQL-Datenbankserver

Gehen Sie wie folgt vor, um nach Dienstproblemen mit einer MySQL-Datenbank zu suchen:

  1. Führen Sie den folgenden Befehl aus, um den Status des Datenbankservers zu überprüfen:

    sudo /opt/bitnami/ctlscript.sh status mysql
  2. Wenn die Datenbank angehalten wurde, führen Sie den folgenden Befehl aus:

    sudo /opt/bitnami/ctlscript.sh start mysql
  3. Wenn Sie den Datenbankdienst immer noch nicht starten können oder während des Startvorgangs Fehler auftreten, überprüfen Sie die Datenbankprotokolle, um die Ursache zu ermitteln. Wenn Ihr Server native Linux-Systeme verwendet, überprüfen Sie den folgenden Speicherort: /opt/bitnami/mysql/logs/mysqld.log. Wenn Ihr Server eine eigenständige Installation ist, überprüfen Sie den folgenden Speicherort: /opt/bitnami/mysql/data/mysqld.log. Niedriger Festplattenspeicher oder wenig verfügbarer Arbeitsspeicher wirken sich auf die Datenbankleistung und Konnektivität aus. Um diese Ressourcen zu überprüfen, führen Sie die Befehle df und free aus.

MariaDB-Datenbankserver

Gehen Sie wie folgt vor, um nach Dienstproblemen mit einer MariaDB-Datenbank zu suchen:

  1. Führen Sie den folgenden Befehl aus, um den Status des Datenbankservers zu überprüfen:

    sudo /opt/bitnami/ctlscript.sh status mariadb
  2. Wenn die Datenbank angehalten wurde, führen Sie den folgenden Befehl aus:

    sudo /opt/bitnami/ctlscript.sh start mariadb
  3. Wenn Sie den Datenbankdienst immer noch nicht starten können oder während des Startvorgangs Fehler auftreten, überprüfen Sie die Datenbankprotokolle, um die Ursache zu ermitteln. Wenn Ihr Server native Linux-Systeme verwendet, überprüfen Sie den folgenden Speicherort: /opt/bitnami/mariadb/logs/mysqld.log. Wenn Ihr Server eine eigenständige Installation ist, überprüfen Sie den folgenden Speicherort: /opt/bitnami/mariadb/data/mysqld.log. Niedriger Festplattenspeicher oder wenig verfügbarer Arbeitsspeicher wirken sich auf die Datenbankleistung und Konnektivität aus. Um diese Ressourcen zu überprüfen, führen Sie die Befehle df und free aus.

Ungenügender Speicherplatz auf Ihrem Volume

Wenn der freie Speicherplatz auf Ihrem Volume 100 % beträgt oder knapp darunter liegt, fällt der Datenbankdienst möglicherweise aus.

Gehen Sie wie folgt vor, um Ihr Server-Volume zu überprüfen:

  1. Führen Sie den folgenden Befehl aus, um die Menge an freiem Speicherplatz anzuzeigen:

    $ sudo df -h

    Beispielausgabe:

    
    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. Wenn Sie nicht genug Speicherplatz zur Verfügung haben, erhöhen Sie Ihre Instance-Größe oder löschen Sie nicht benötigte Dateien vom Server.

  3. Starten Sie den Datenbankdienst neu.

Falsche Anmeldeinformationen in Ihrer WordPress-Konfigurationsdatei

Überprüfen Ihrer Anmeldeinformationen

Führen Sie die folgenden Schritte aus:

  1. Gehen Sie zur Datei wp-config.php. Kopieren Sie die Details in DB_NAME, DB_HOST, DB_USER und DB_PASSWORD in eine Textdatei, um sie im folgenden Schritt zu verwenden.
  2. Um von einem Terminal aus auf die Datenbank zuzugreifen, führen Sie den folgenden Befehl aus:
    sudo mysql 'DB_NAME' -h 'DB_HOST' -u 'DB_USER' -pEnter password: ********
    Hinweis: Ersetzen Sie DB_NAME, DB_HOST und DB_USER durch die Werte, die Sie in Schritt 1 kopiert haben.
  3. Geben Sie das Passwort mit dem Wert DB_PASSWORD ein und drücken Sie die EINGABETASTE.
    Hinweis: Wenn Sie die Fehlermeldung Zugriff verweigert erhalten, sind die Anmeldeinformationen falsch. Um dieses Problem zu beheben, setzen Sie das Passwort des Datenbankbenutzers zurück.
  4. Wenn Ihr DB-Host remote ist, aktualisieren Sie die Verbindungszeichenfolge in der Datei wp-config.php. Wenn sich die Datenbank auf demselben Server befindet, vergewissern Sie sich, dass Folgendes zutrifft: DB_NAME ist bitnami-wordpress und DB_USER ist bn_wordpress.

Zurücksetzen des Passworts des Datenbankbenutzers

Führen Sie die folgenden Schritte aus:

  1. Führen Sie den folgenden Befehl aus, um auf /home/bitnami/bitnami_credentials zuzugreifen:

    sudo cat /home/bitnami/bitnami_credentials

    Hinweis: Kopieren Sie das Passwort für die Root-Datenbank in eine Textdatei, um es im folgenden Schritt zu verwenden.

  2. Um sich bei Ihrer MySQL- oder MariaDB-Shell anzumelden, führen Sie den folgenden Befehl aus:

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

    Hinweis: Ersetzen Sie mysql durch Ihren Server und ******** durch das Root-Datenbankpasswort, das Sie in Schritt 1 kopiert haben. Wenn Sie sich mit dem Passwort nicht anmelden können, folgen Sie den Anweisungen auf der Bitnami-Website, um das Passwort für MySQL oder MariaDB zurückzusetzen.

  3. Führen Sie die folgende Abfrage aus, um zu überprüfen, ob die Datenbank bitnami_wordpress existiert:

    show databases;
  4. Führen Sie die folgende Abfrage aus, um zu überprüfen, ob der Datenbankbenutzer bn-wordpress existiert:

    SELECT user FROM mysql.user;
  5. Wenn Sie eine MySQL-Datenbank verwenden, führen Sie den folgenden Befehl aus, um das Datenbankpasswort des Benutzers bn-wordpress zurückzusetzen:

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

    Wenn Sie eine MariaDB-Datenbank verwenden, führen Sie den folgenden Befehl aus, um das Datenbankpasswort des Benutzers bn-wordpress zurückzusetzen:

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

    Hinweis: Ersetzen Sie PASSWORD durch das Passwort aus der Datei wp-config.php in Schritt 3 von Überprüfen Ihrer Anmeldeinformationen.

Wenn keine der vorherigen Lösungen das Problem behebt, starten Sie eine neue Lightsail-Instance von einem Snapshot aus.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 5 Monaten