Wie kann ich Fehler bei der Datenbankverbindung von WordPress-basierten Anwendungen, die in Lightsail gehostet werden, beheben?

Lesedauer: 7 Minute
0

Ich erhalte einen oder beide der folgenden Fehler, wenn ich eine Verbindung zu meiner WordPress-basierten Anwendung herstelle:

„Fehler beim Herstellen einer Datenbankverbindung. „Eine oder mehrere Datenbanktabellen sind nicht verfügbar. Die Datenbank muss möglicherweise repariert werden.“

Wie kann ich diese Fehler beheben?

Kurzbeschreibung

Der Fehler „Fehler beim Herstellen einer Datenbankverbindung“ kann aus folgenden Gründen auftreten:

  • Es gibt beschädigte Datenbanktabellen.
  • Die Remote-Datenbankverbindung ist deaktiviert.
  • Der Datenbankdienst ist ausgefallen.
  • Es ist nicht genügend Speicherplatz vorhanden.
  • Ihre WordPress-Konfigurationsdatei enthält falsche Anmeldeinformationen.

Auflösung

Beschädigte Datenbanktabellen

Öffnen Sie die wp-admin-Seite Ihrer Website (z. B. example.com/wp-admin) im Browser und suchen Sie nach dem Fehler „Eine oder mehrere Datenbanktabellen sind nicht verfügbar. Die Datenbank muss möglicherweise repariert werden.“. Wenn dieser Fehler angezeigt wird, wird aufgrund beschädigter Datenbanktabellen die Fehlermeldung „Fehler beim Herstellen der Datenbankverbindung“ angezeigt. Gehen Sie wie folgt vor, um beschädigte Tabellen zu reparieren:

1.    Greifen Sie mit einem Texteditor wie dem vi-Editor auf die Datei wp-config.php zu.

$ sudo vi wp-config.php

2.    Fügen Sie die folgende Zeile in Ihre Datei wp-config.php ein. Stellen Sie sicher, dass Sie die Zeile unmittelbar vor der Zeile „Das ist alles, hören Sie auf zu bearbeiten! einfügen. Viel Spaß beim Bloggen“.

define('WP_ALLOW_REPAIR' ,true);

3.    Nachdem Sie die vorhergehende Einstellung zur Datei hinzugefügt haben, greifen Sie auf die folgende URL zu und führen Sie dann Datenbank reparieren aus:

/wp-admin/maint/repair.php (z. B. example.com/wp-admin/maint/repair.php)

4.    Entfernen Sie nach dem Ausführen der Datenbankreparatur die Codezeile, die Sie Ihrer Datei wp-config.php hinzugefügt haben. Wenn Sie diese Zeile nicht entfernen, kann jeder die Reparatur in Ihrer Datenbank ausführen.

Remote-Datenbankverbindung deaktiviert

Manchmal befinden sich Datenbanken auf einem Remote-Datenbankserver. Wenn der Datenbankserver keine Remote-Verbindungen von der Instance zulässt, welche die Website hostet, können Sie keine Verbindung zur Datenbank herstellen. Gehen Sie wie folgt vor, um dies zu beheben:

1.    Prüfen Sie die Konfigurationsdatei wp-config.php auf den Wert DB_HOST. Wenn der Host nicht localhost oder 127.0.0.1 ist, befindet sich die Datenbank auf einem Remote-Server, wie im folgenden Beispiel gezeigt:

define('DB_HOST', '192.168.22.9');

2.    Versuchen Sie, vom Server zum Remote-Server auf Port 3306 zuzugreifen. Wenn Sie keine Verbindung herstellen können, sind Remoteverbindungen in der Datenbankkonfiguration auf dem Remote-Server nicht zulässig. Oder es gibt eine Firewall auf dem Remote-Server, welche die Verbindung blockiert. Wenden Sie sich an den externen Datenbankbesitzer oder den Support, um Unterstützung beim Zulassen von Verbindungen von Ihrer Lightsail-Instance zu erhalten.

Es ist eine bewährte Methode, die Website-Datenbank für hohe Verfügbarkeit und Sicherheit in einer von Lightsail verwalteten Datenbank zu speichern.

Der Datenbankdienst ist ausgefallen

Hinweis: Die folgenden Dateipfade und Befehle können sich ändern, je nachdem, ob Ihre Lightsail-WordPress-Instance MySQL oder MariaDB verwendet. Außerdem variieren die Dateipfade und Befehle je nachdem, ob die Instance native Linux-Systempakete verwendet (Ansatz A) oder ob es sich um eine eigenständige Installation handelt (Ansatz B). Führen Sie die folgenden Befehle aus, um den Datenbankservertyp und den zu befolgenden Ansatz zu ermitteln:

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

1.    Wenn Sie überprüft haben, dass keine Tabellenbeschädigung und keine Probleme mit der Verbindung mit der Remote-Datenbank vorliegen und WordPress immer noch keine Verbindung zur Datenbank herstellen kann, ist Ihr Datenbankserver möglicherweise nicht verfügbar. Dies kann aufgrund von Problemen mit der Datenbankkonfiguration, starkem Datenverkehr auf einem Server, geringem Festplattenspeicher, geringem verfügbaren Speicher usw. auftreten. Überprüfen Sie den Status des Datenbankdienstes mit dem folgenden Befehl:

MySQL-Datenbankserver

sudo /opt/bitnami/ctlscript.sh status mysql

MariaDB-Datenbankserver

sudo /opt/bitnami/ctlscript.sh status mariadb

2.    Wenn der vorhergehende Befehl anzeigt, dass sich die Datenbank im gestoppten Zustand befindet, starten Sie den Datenbankdienst mit dem folgenden Befehl:

MySQL-Datenbankserver

sudo /opt/bitnami/ctlscript.sh start mysql

MariaDB-Datenbankserver

sudo /opt/bitnami/ctlscript.sh start mariadb

3.    Wenn Sie den Datenbankdienst immer noch nicht starten können und während des Startvorgangs Fehler auftreten, überprüfen Sie die Datenbankdienstprotokolle, um die Grundursache zu ermitteln und das Problem zu beheben. Die Protokolldatei des Hauptdatenbankdienstes befindet sich an einem der folgenden Speicherorte in Ihrer Lightsail WordPress-Instance:

MySQL-Datenbankserver folgt Ansatz A: /opt/bitnami/mysql/logs/mysqld.log

MySQL-Datenbankserver folgt Ansatz B: /opt/bitnami/mysql/data/mysqld.log

MariaDB-Datenbankserver folgt Ansatz A: /opt/bitnami/mariadb/logs/mysqld.log

MariaDB-Datenbankserver folgt Approach B: /opt/bitnami/mariadb/data/mysqld.log

Die Datenbankleistung und Konnektivität können durch geringen Festplattenspeicher und/oder geringen verfügbaren Speicher beeinträchtigt werden. Überprüfen Sie diese Ressourcen mit den Befehlen df und free.

Unzureichender Speicherplatz

Wenn der freie Speicherplatz 100% oder knapp unter 100% liegt, fällt der Datenbankdienst möglicherweise aus.

1.    Führen Sie den folgenden Befehl aus:

$ sudo df -h

Der vorangehende Befehl listet die Menge an freiem Speicherplatz auf, wie im folgenden Beispiel gezeigt:

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.    Wenn die Befehlsausgabe zeigt, dass nicht genügend Speicherplatz verfügbar ist, können Sie die Größe Ihrer Instance auf eine größere Größe ändern. Oder Sie können unnötige Dateien vom Server löschen, um freien Speicherplatz zu schaffen.

3.    Nachdem Sie den freien Speicherplatz erhöht haben, starten Sie den Datenbankdienst neu.

Falsche Anmeldedaten in deinen WordPress-Einstellungen

WordPress benötigt einen bestimmten Connection-String, die einen Benutzernamen, ein Passwort und einen Host enthält, um auf die Datenbank zuzugreifen. Wenn sich eines dieser Elemente geändert hat, kann WordPress nicht auf die Datenbank zugreifen.

1.    Um zu überprüfen, ob Sie die richtige Connection-String verwenden, rufen Sie die Details der Connection-String DB_NAME, DB_HOST, DB_USER und DB_PASSWORD in der Datei wp-config.php ab.

2.    Greifen Sie mithilfe der Connection-String von einem Terminal auf die Datenbank zu. Stellen Sie sicher, dass Sie DB_NAME, DB_HOST UND DB_USER durch die Werte ersetzen, die Sie in Schritt 1 erhalten haben.

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

Hinweis: Das Passwort wird bei der Eingabe nicht angezeigt, sodass es für andere Benutzer nicht sichtbar ist.

3.    Drücken Sie nach Eingabe des Passworts die EINGABETASTE.

Wenn bei Verwendung des vorherigen Befehls ein Fehler „Zugriff verweigert“ angezeigt wird, bedeutet dies normalerweise, dass die Anmeldeinformationen falsch sind.

Wenn Sie einen Remote-DB-Host verwenden, fügen Sie der Datei wp-config.php die richtige Verbindungszeichenfolge hinzu. Wenn sich die Datenbank auf demselben Server befindet, stellen Sie sicher, dass DB_NAME bitnami_WordPress ist und DB_USER bn_WordPress ist.

Gehen Sie wie folgt vor, um das Datenbankbenutzerkennwort zurückzusetzen:

1.    Verwenden Sie den folgenden Befehl, um auf /home/bitnami/bitnami_credentials zuzugreifen. Notieren Sie sich das Passwort der Root-Datenbank.

sudo cat /home/bitnami/bitnami_credentials

2.    Melden Sie sich mit dem folgenden Befehl bei MySQL/MariaDB Shell an und geben Sie dann das Passwort ein, das Sie vom vorherigen Befehl erhalten haben. Wenn Sie sich nicht mit dem Datenbank-Root-Passwort bei der Shell anmelden können, setzen Sie das Passwort zurück (MySQL oder MariaDB)

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

3.    Führen Sie in der MySQL- oder MariaDB-Shell die folgende Abfrage aus, um sicherzustellen, dass die Datenbank bitnami_wordpress existiert:

show databases;

4.    Führen Sie die folgende Abfrage aus, um sicherzustellen, dass der Datenbankbenutzer bn_wordpress existiert:

SELECT user FROM mysql.user;

5.    Setzen Sie das Passwort des Datenbankbenutzers "bn_wordpress" mithilfe der folgenden Abfrage zurück.

Hinweis: Ersetzen Sie PASSWORD durch das Passwort, das Sie aus der Datei wp-config.php erhalten haben.

MySQL-Datenbank

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

MariaDB-Datenbank

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

Hinweis: Wenn keine der vorhergehenden Auflösungen funktioniert, können Sie Ihre Instance mithilfe eines Backup-Snapshots wiederherstellen.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren