Wenn Sie eine Weile im Internet surfen, haben Sie diesen Fehler zumindest ein paar Mal gesehen. “Error Establishing a Database Connection” ist einer dieser Fehler, die aus vielen Gründen verursacht werden können. Als WordPress-Anfänger könnte dies besonders frustrierend sein, wenn es von selbst passiert ist, ohne dass man etwas ändert. Wir sind gestern auf unserer eigenen Website auf dieses Problem gestoßen. Es dauerte etwas mehr als 20 Minuten, bis das Problem erkannt und behoben war. Während wir die Forschung betrieben, um mögliche Ursachen zu finden, stellten wir fest, dass es keinen guten Artikel gab, der alles abdeckte. In diesem Artikel zeigen wir Ihnen, wie Sie den Fehler beim Aufbau einer Datenbankverbindung in WordPress beheben können, indem Sie eine Liste von Lösungen an einem Ort erstellen.
Hinweis: Bevor Sie Datenbankänderungen vornehmen, stellen Sie sicher, dass Sie über genügend Backups verfügen.

Woher kommt der Fehler?

Kurz gesagt, Sie erhalten diesen Fehler, weil WordPress keine Datenbankverbindung herstellen kann. Nun kann der Grund, warum WordPress keine Datenbankverbindung herstellen kann, variieren. Es kann sein, dass Ihre Anmeldedaten für die Datenbank falsch sind oder geändert wurden. Es kann sein, dass Ihr Datenbankserver nicht reagiert. Es kann sein, dass Ihre Datenbank beschädigt wurde. Nach unserer Erfahrung passiert dieser Fehler meistens aufgrund einer Art Serverfehler, aber es könnten auch andere Faktoren auftreten. Lassen Sie uns einen Blick darauf werfen, wie man dieses Problem löst.

Tritt das Problem auch bei /wp-admin/ auf?

Das erste, was Sie tun sollten, ist sicherzustellen, dass Sie den gleichen Fehler sowohl auf dem Frontend der Website als auch auf dem Backend der Website (wp-admin) erhalten. Wenn die Fehlermeldung auf beiden Seiten “Fehler beim Aufbau einer Datenbankverbindung” gleich ist, fahren Sie mit dem nächsten Schritt fort. Wenn Sie einen anderen Fehler auf dem wp-admin erhalten, z.B. so etwas wie “Eine oder mehrere Datenbanktabellen sind nicht verfügbar. Die Datenbank muss möglicherweise repariert werden”, dann müssen Sie Ihre Datenbank reparieren.
Sie können dies tun, indem Sie die folgende Zeile in Ihrer Datei wp-config.php hinzufügen. Füge es kurz vor’Das ist alles, hör auf zu bearbeiten! Frohes Bloggen’ Zeile wp-config.php.

1
define('WP_ALLOW_REPAIR', true);

Sobald Sie das getan haben, können Sie die Einstellungen auf dieser Seite einsehen: http://www.yoursite.com/wp-admin/maint/repair.php
Datenbank in WordPress reparieren
Beachten Sie, dass der Benutzer nicht angemeldet sein muss, um auf diese Funktionalität zuzugreifen, wenn diese Definition aktiviert ist. Dies liegt daran, dass seine Hauptaufgabe ist es, eine beschädigte Datenbank zu reparieren, Benutzer können sich oft nicht anmelden, wenn die Datenbank beschädigt ist. Sobald Sie also mit der Reparatur und Optimierung Ihrer Datenbank fertig sind, sollten Sie diese aus Ihrer wp-config.php entfernen.
Wenn diese Reparatur das Problem nicht behoben hat, oder Sie Probleme haben, die Reparatur auszuführen, lesen Sie diesen Artikel weiter, da Sie vielleicht eine andere Lösung finden.

Überprüfen der WP-Config-Datei

WP-Config.php ist wahrscheinlich die wichtigste Datei in Ihrer gesamten WordPress Installation. Hier geben Sie die Details für WordPress an, um Ihre Datenbank zu verbinden. Wenn Sie Ihr Root-Passwort oder das Datenbankbenutzerpasswort geändert haben, müssen Sie auch diese Datei ändern. Das erste, was du immer überprüfen solltest, ist, ob alles in deiner wp-config.php-Datei gleich ist.

1
2
3
4
define('DB_NAME', 'database-name');
define('DB_USER', 'database-username');
define('DB_PASSWORD', 'database-password');
define('DB_HOST', 'localhost');

Denken Sie daran, dass Ihr DB_Host-Wert nicht immer localhost ist. Je nach Host ist es unterschiedlich. Für beliebte Hosts wie HostGator, BlueHost, SiteGround ist es localhost. Weitere Host-Werte finden Sie hier.
Einige Leute schlugen vor, dass sie ihr Problem behoben hätten, indem sie localhost durch die IP ersetzt hätten. Es ist üblich, diese Art von Problem zu sehen, wenn WordPress auf einer lokalen Serverumgebung ausgeführt wird. Beispielsweise kann es bei MAMP vorkommen, dass der Wert DB_Host beim Wechsel zur IP funktioniert.

1
define('DB_HOST', '127.0.0.1:8889');

Die IP’s variieren bei Online-Webhosting-Diensten.
Wenn alles in dieser Datei korrekt ist (stellen Sie sicher, dass Sie auf Tippfehler achten), dann ist es fair zu sagen, dass auf der Serverseite etwas nicht stimmt.
Überprüfen Sie Ihren Webhost (MySQL Server).

Häufig werden Sie diesen Fehler bemerken, wenn Sie eine Datenbankverbindung herstellen, wenn Ihre Website von viel Traffic überflutet wird. Grundsätzlich kann Ihr Hostserver die Last einfach nicht bewältigen (besonders wenn Sie sich auf Shared Hosting befinden). Ihre Website wird wirklich langsam und für einige Benutzer sogar den Fehler ausgeben. Das Beste, was Sie tun sollten, ist, sich mit Ihrem Hosting-Provider telefonisch oder im Livechat zu unterhalten und ihn zu fragen, ob Ihr MySQL-Server reagiert.
Für diejenigen Benutzer, die testen möchten, ob der MySQL-Server selbst läuft, können Sie ein paar Dinge tun. Testen Sie andere Websites auf demselben Server, um zu sehen, ob sie das Problem haben. Wenn sie auch den gleichen Fehler erhalten, dann stimmt auf jeden Fall etwas nicht mit Ihrem MySQL-Server. Wenn Sie keine andere Website auf demselben Hosting-Account haben, gehen Sie einfach zu Ihrem cPanel und versuchen Sie, auf phpMyAdmin zuzugreifen und die Datenbank zu verbinden. Wenn Sie eine Verbindung herstellen können, müssen wir überprüfen, ob Ihr Datenbankbenutzer über eine ausreichende Berechtigung verfügt. Erstellen Sie eine neue Datei namens testconnection.php und fügen Sie den folgenden Code ein:

1
2
3
4
5
6
7
8
<?php
$link = mysqli_connect('localhost', 'username', 'password');
if (!$link) {
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully';
mysqli_close($link);
?>


Achten Sie darauf, dass Sie den Benutzernamen und das Passwort ersetzen. Wenn das Skript erfolgreich verbunden wurde, dann bedeutet das, dass Ihr Benutzer über eine ausreichende Berechtigung verfügt und noch etwas anderes nicht stimmt. Gehen Sie zurück zu Ihrer wp-config-Datei, um sicherzustellen, dass dort alles korrekt ist (erneuter Scan nach Tippfehlern).
Wenn du dich nicht mit der Datenbank verbinden kannst, indem du zu phpMyAdmin gehst, dann weißt du, dass es etwas mit deinem Server ist. Das bedeutet nicht unbedingt, dass Ihr MySQL-Server ausgefallen ist. Es kann bedeuten, dass Ihr Benutzer keine ausreichende Berechtigung hat.
In unserem Fall lief unser MySQL-Server. Alle anderen Seiten auf den Servern funktionierten einwandfrei mit Ausnahme von WPBeginner. Als wir versuchten, zu unserem phpMyAdmin zu gelangen, bekamen wir den Fehler:
#1045 – Zugriff für Benutzer foo’@’%’ verweigert (mit Passwort: JA)
Wir haben mit HostGator telefoniert und ihr Support hat das Problem schnell gefunden. Irgendwie wurden die Berechtigungen unserer Benutzer zurückgesetzt. Nicht sicher, wie das passiert ist, aber anscheinend war das der Grund. Sie gingen wieder rein und stellten die Berechtigungen wieder her, und wir konnten die Website wieder live schalten.
Wenn du also den Fehler access den Zugang verweigert bekommst, entweder bei der Verbindung zu deinem phpMyAdmin oder über die Ergebnisse von testconnection.php, dann solltest du deinen Host sofort kontaktieren, damit er es behebt.

Weitere Lösungsansätze

Es ist wichtig zu beachten, dass diese möglicherweise nicht für Sie funktionieren. Die Nutzung erfolgt auf eigene Gefahr und stellt sicher, dass Sie über ausreichende Backups verfügen, wenn etwas schief geht.
Deepak Mittal sagte, dass sein Kunde den Fehler bekam, dass die Datenbank repariert werden muss. Auch nach der Reparatur der Datenbank ist der Fehler nicht behoben. Er versuchte verschiedene Dinge und am Ende war das Problem die Seiten-URL. Anscheinend wurde das geändert, was dazu führte, dass der Fehler fortbestand. Er führte die SQL-Abfrage durch, indem er zu phpMyAdmin ging:

1
UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'

Achten Sie darauf, IHR_SITE_URL durch das aktuelle URL-Beispiel zu ersetzen: https://www.wpbeginner.com. Die wp_options werden sich unterscheiden, wenn Sie das Standard-Präfix der WordPress-Datenbank geändert haben.
Dies schien das Problem für ihn und wenige andere, die auch zu seinem Beitrag Stellung nahmen, zu lösen.
Sachinum schlug vor, dass er die Datenbank mit testconnection.php verbinden konnte, also änderte er den Benutzer wp-config.php auf den root-Benutzer. WordPress begann einwandfrei zu funktionieren. Dann hat er die Einstellungen wieder auf den Datenbankbenutzer zurückgesetzt, und es hat weiter funktioniert. Er konnte nicht herausfinden, was los war, kam aber zu dem Schluss, dass es ein Tippfehler war.
Cutewonders schlug vor, den Inhalt von active_plugins in der Tabelle wp_options zu entfernen und den Inhalt von recently_edited zu bearbeiten. Im Grunde genommen schien das das Problem zu lösen. Bitte ihre vollständige Antwort hier.
Wir lesen auf zahlreichen Quellen, dass Benutzer einfach eine neue Kopie von WordPress hochgeladen haben und der Fehler behoben wurde.
Das ist ein wirklich frustrierender Fehler. Was hast du versucht, das bei dir funktioniert hat? Wir würden uns freuen, diese Ressource zu erweitern, damit andere nicht so viel Zeit mit der Suche nach einer Lösung verschwenden müssen.