„Fehler beim Aufbau einer Datenbankverbindung“ heißt: WordPress läuft, findet aber seine Datenbank nicht. Und ohne Datenbank gibt es keine Texte, keine Menüs, kein Backend, deshalb steht dieser eine Satz auf jeder Seite. Ihre Inhalte sind in aller Regel unversehrt. Es gibt drei Hauptursachen: falsche Zugangsdaten, ein Datenbankserver, der nicht antwortet, und beschädigte Tabellen. Diese Seite zeigt, wie Sie in wenigen Minuten herausfinden, welche es ist, und was jeweils hilft. Auf englischen Installationen lautet die Meldung „Error establishing a database connection“.
In 2 Minuten prüfen
- Ist der Hoster gestört? Sehen Sie auf meiner Seite zum Hoster-Status und auf der Störungsseite Ihres Hosters nach. Sind dort Datenbankserver gestört, warten Sie und ändern nichts.
- Sind andere Seiten beim selben Hoster betroffen? Wenn ja, liegt es am Server, nicht an Ihrer Installation.
- Rufen Sie
/wp-admin/auf. Erscheint dort eine andere Meldung, nämlich „Eine oder mehrere Datenbanktabellen sind nicht verfügbar. Möglicherweise muss die Datenbank repariert werden.“, dann steht die Verbindung, und nur einzelne Tabellen sind beschädigt. Weiter mit Ursache 3. - Hat sich kürzlich etwas geändert? Umzug, neues Datenbank-Passwort, Tarifwechsel beim Hoster: Dann ist es fast immer Ursache 1.
Was die Meldung bedeutet
WordPress besteht aus zwei Teilen: den Dateien auf dem Webspace und der Datenbank, in der Beiträge, Seiten, Einstellungen und Benutzer liegen. Bei jedem Seitenaufruf liest WordPress aus der Datei wp-config.php vier Angaben und meldet sich damit beim Datenbankserver an. Scheitert diese Anmeldung, bricht WordPress ab und zeigt die Meldung. Die Dateien selbst sind dabei in Ordnung, was es von einem kritischen Fehler unterscheidet, bei dem ein Plugin abstürzt.
Nur Frontend oder auch Backend?
Der Vergleich zwischen Startseite und /wp-admin/ ist der schnellste Hinweis auf die Ursache:
- Überall dieselbe Meldung: Die Verbindung kommt gar nicht zustande. Zugangsdaten falsch oder Server weg.
- Vorne die Meldung, im Backend „Eine oder mehrere Datenbanktabellen sind nicht verfügbar“: Die Verbindung steht, aber WordPress findet wichtige Tabellen nicht oder kann sie nicht lesen. Das spricht für beschädigte Tabellen oder ein falsches Tabellenpräfix.
- Fehler nur zeitweise, mal geht es, mal nicht: Der Datenbankserver ist überlastet, oder Ihr Tarif erlaubt zu wenige gleichzeitige Verbindungen.
Ursache 1: Falsche Zugangsdaten in der wp-config.php
Die vier Angaben stehen in der wp-config.php im Hauptverzeichnis Ihrer Installation:
define( 'DB_NAME', 'name_der_datenbank' );
define( 'DB_USER', 'datenbank_benutzer' );
define( 'DB_PASSWORD', 'passwort' );
define( 'DB_HOST', 'localhost' );
Vergleichen Sie jeden Wert mit dem, was im Kundenmenü des Hosters unter „Datenbanken“ oder „MySQL“ steht. Achten Sie auf Kleinigkeiten: Leerzeichen am Ende, ein vertauschter Buchstabe, ein Passwort, das jemand im Hosting-Menü geändert hat, ohne die wp-config.php anzupassen.
DB_HOST ist die häufigste Fehlerquelle. Bei vielen Hostern lautet der Wert localhost. Andere verlangen einen eigenen Hostnamen, der im Kundenmenü bei der Datenbank steht und oft mit „mysql“, „db“ oder „sql“ beginnt, manche zusätzlich einen Port nach einem Doppelpunkt, etwa :3307. Was richtig ist, steht immer beim Hoster, nicht in Anleitungen anderer Hoster.
Wenn Sie das Passwort nicht kennen: Setzen Sie im Hosting-Menü ein neues Datenbank-Passwort und tragen Sie es in die wp-config.php ein. Das ist unschädlich, solange keine andere Anwendung dieselbe Datenbank nutzt.
Ein Sonderfall bei Hostern mit cPanel und ähnlichen Oberflächen: Datenbank und Datenbank-Benutzer werden dort getrennt angelegt und müssen ausdrücklich miteinander verbunden werden, mit allen Rechten. Stimmen Name, Benutzer und Passwort, aber der Benutzer ist der Datenbank nicht zugeordnet, scheitert die Anmeldung trotzdem. Im Bereich „MySQL-Datenbanken“ sehen Sie, welcher Benutzer zu welcher Datenbank gehört.
Verbindung gezielt testen
Wenn Sie unsicher sind, ob die Daten stimmen, prüft ein kleines Skript die Anmeldung ohne WordPress. Legen Sie im Hauptverzeichnis eine Datei db-test.php an:
<?php
mysqli_report( MYSQLI_REPORT_OFF );
$db = mysqli_connect( 'localhost', 'datenbank_benutzer', 'passwort', 'name_der_datenbank' );
echo $db ? 'Verbindung steht.' : 'Fehler: ' . mysqli_connect_error();
Werte aus der wp-config.php einsetzen, Datei im Browser aufrufen. „Access denied“ heißt: Benutzer oder Passwort falsch. „Unknown database“: Datenbankname falsch. Eine Zeitüberschreitung oder „Connection refused“: falscher Host oder Server weg. Löschen Sie die Datei sofort danach, sie enthält Ihr Passwort im Klartext.
Ursache 2: Datenbankserver überlastet oder Störung beim Hoster
Stimmen die Zugangsdaten und der Fehler kommt trotzdem, antwortet der Datenbankserver nicht. Bei Störungen betrifft das meist viele Kunden gleichzeitig, der Hoster-Status zeigt das. Kommt der Fehler dagegen nur zu Spitzenzeiten, liegt es an der Last: Viele Besucher, Bots, die die Seite abgrasen, oder ein Plugin, das bei jedem Aufruf aufwendige Abfragen stellt. Kleine Tarife begrenzen die Zahl gleichzeitiger Verbindungen; im Fehlerprotokoll des Hosters steht dann „Too many connections“ oder „max_user_connections“.
Was hilft: ein Cache, damit nicht jeder Aufruf die Datenbank belastet, das Aussperren auffälliger Bots, das Prüfen schwerer Plugins und notfalls ein größerer Tarif. Das gehört zum Thema WordPress langsam, wo ich die Ursachen ausführlich beschreibe.
Wenn Sie den Support des Hosters anschreiben, sparen drei Angaben eine Rückfrage: die genaue Uhrzeit, zu der der Fehler auftrat, ob er dauerhaft oder nur zeitweise erscheint, und der Name der Datenbank aus der wp-config.php. Fragen Sie ausdrücklich, ob der Datenbankserver in diesem Zeitraum ausgelastet war oder ob Ihr Tarif an das Limit gleichzeitiger Verbindungen gestoßen ist. Mit diesen Angaben kann der Support im Serverprotokoll gezielt nachsehen, statt Ihnen zu raten, die Plugins abzuschalten.
Bevor Sie etwas ändern: Datenbank sichern
Alles auf dieser Seite ist umkehrbar, mit einer Ausnahme: Reparaturen und Aufräumarbeiten in der Datenbank. Sichern Sie die Datenbank deshalb, bevor Sie Tabellen reparieren oder Einträge löschen, sobald die Verbindung wieder steht. Im Hosting-Menü öffnen Sie dazu phpMyAdmin, wählen links die Datenbank und klicken auf „Exportieren“, Format SQL. Per SSH geht es mit wp db export sicherung.sql. Legen Sie die Datei nicht im Web-Verzeichnis ab, sondern laden Sie sie auf Ihren Rechner. Kommt keine Verbindung zustande, bieten viele Hoster im Kundenmenü eigene Sicherungen der Datenbank aus den letzten Tagen an.
Ursache 3: Beschädigte Tabellen reparieren
Tabellen können nach einem Serverabsturz, einem vollen Speicher oder einem abgebrochenen Import beschädigt sein. WordPress bringt dafür eine eigene Reparaturfunktion mit.
- Ergänzen Sie in der
wp-config.phpoberhalb der Zeile „That’s all, stop editing“:
define( 'WP_ALLOW_REPAIR', true );
- Rufen Sie
https://ihre-domain.de/wp-admin/maint/repair.phpauf. - Wählen Sie „Datenbank reparieren“. Die Variante mit Optimieren dauert länger und ist für den Notfall nicht nötig.
- Lesen Sie das Ergebnis: Für jede Tabelle steht, ob sie in Ordnung ist oder repariert wurde.
- Entfernen Sie die Zeile danach sofort wieder. Die Reparaturseite ist ohne Login erreichbar, solange die Konstante gesetzt ist. Jeder, der die Adresse kennt, könnte die Reparatur sonst immer wieder starten und den Server belasten.
Meldet die Reparatur Tabellen, die sich nicht reparieren lassen, oder fehlen Tabellen ganz, hilft nur ein Backup der Datenbank. Wie Sie dabei vorgehen, ohne neuere Inhalte zu verlieren, beschreibe ich unter Website wiederherstellen.
Ursache 4: Datenbank oder Speicherplatz voll
Viele Tarife begrenzen die Größe einer Datenbank oder den gesamten Webspace. Ist das Limit erreicht, kann der Datenbankserver nicht mehr schreiben, und je nach Hoster wird die Datenbank gesperrt oder nur noch lesbar geschaltet. Im Kundenmenü sehen Sie Belegung und Limit.
Wer den Platz frisst, ist oft schnell gefunden: Protokolltabellen von Sicherheits- und Statistik-Plugins, Tausende alte Revisionen, verwaiste Einträge längst gelöschter Plugins in wp_options, Warteschlangen von Shop-Erweiterungen. Bevor Sie etwas löschen, sichern Sie die Datenbank. Kurzfristig hilft es, alte Backups und Protokolldateien vom Webspace zu entfernen, damit der Server wieder schreiben kann.
Ursache 5: Nach einem Umzug
Nach einem WordPress-Umzug ist der Fehler fast immer ein Zeichen, dass die wp-config.php noch auf die alte Datenbank zeigt. Beim neuen Hoster haben Datenbankname, Benutzer, Passwort und Host andere Werte. Tragen Sie die neuen ein und prüfen Sie, ob die Datenbank tatsächlich importiert wurde: In phpMyAdmin müssen die Tabellen mit dem Präfix aus der wp-config.php ($table_prefix, meist wp_) zu sehen sein. Passt das Präfix nicht, startet WordPress statt der Fehlermeldung oft die Installation. Dann nichts installieren, sondern das Präfix korrigieren.
Auch wichtig nach einem Umzug: Die Domain muss schon auf den neuen Server zeigen. Sonst testen Sie unbemerkt die alte Seite.
Vorbeugen: Damit die Datenbank nicht wieder ausfällt
- Die Datenbank täglich sichern, und zwar außerhalb des Webspace. Ein Backup auf demselben Server hilft nicht, wenn der Server ausfällt.
- Belegung von Datenbank und Webspace im Blick behalten und Protokolltabellen von Plugins regelmäßig leeren.
- Einen Seiten-Cache einsetzen, damit nicht jeder Besucher die Datenbank belastet.
- Zugangsdaten nur an einer Stelle ändern und die
wp-config.phpsofort mitziehen. - Eine Überwachung einrichten, die meldet, wenn die Seite nicht antwortet, damit Sie den Fehler vor Ihren Kunden sehen.
Genau das erledigt die WordPress-Wartung ab 49 € im Monat, inklusive Hosting und Fehlerbehebung.
Wann Sie mich rufen sollten
- Die Zugangsdaten stimmen, der Hoster meldet keine Störung, und der Fehler bleibt.
- Die Reparatur meldet Tabellen, die sich nicht reparieren lassen.
- Es gibt kein Backup der Datenbank, oder Sie wissen nicht, welches das richtige ist.
- Der Fehler kommt immer wieder, besonders zu bestimmten Uhrzeiten.
- Die Seite ist ein Shop, und offene Bestellungen dürfen nicht verloren gehen.
Diagnose kostenlos, Behebung zum Festpreis von 149 € netto bis zwei Stunden Arbeit. Braucht es mehr, etwa die Rettung einer beschädigten Datenbank aus mehreren Backups, nenne ich vorher den Festpreis. Antwort werktags innerhalb von 24 Stunden. Andere Fehlerbilder stehen in der Übersicht WordPress-Fehler beheben.
Häufige Fragen
Sind meine Inhalte weg?
In aller Regel nicht. Die Meldung sagt nur, dass WordPress die Datenbank gerade nicht erreicht. Die Daten liegen weiter auf dem Datenbankserver. Nur bei schwer beschädigten Tabellen wird ein Backup nötig.
Warum kommt der Fehler nur manchmal?
Dann ist der Datenbankserver zeitweise überlastet oder Ihr Tarif erlaubt zu wenige gleichzeitige Verbindungen. Typisch sind Bots, fehlender Cache oder ein Plugin mit schweren Abfragen.
Was trage ich bei DB_HOST ein?
Das, was Ihr Hoster im Kundenmenü bei der Datenbank angibt. Bei vielen Hostern ist es localhost, bei anderen ein eigener Hostname, manchmal mit Port nach einem Doppelpunkt.
Ist die Reparaturseite repair.php gefährlich?
Die Reparatur selbst ist unbedenklich. Gefährlich ist nur, die Zeile WP_ALLOW_REPAIR stehen zu lassen, weil die Seite dann ohne Login erreichbar bleibt. Nach der Reparatur sofort entfernen.
Kann ein Hack diesen Fehler auslösen?
Selten. Wenn Zugangsdaten in der wp-config.php geändert wurden, ohne dass Sie oder Ihr Hoster es waren, oder unbekannte Datenbank-Benutzer auftauchen, sollte die Seite geprüft werden.
Was kostet es, wenn Sie den Fehler beheben?
Die Diagnose ist kostenlos, die Behebung kostet 149 € netto bis zwei Stunden Arbeit. Mit Wartungsvertrag ist sie inklusive.
Notfall melden
Notfall melden
Drei Angaben, keine Registrierung. Sie bekommen sofort eine Eingangsbestätigung mit den Sofortmaßnahmen und werktags innerhalb von 24 Stunden meine Diagnose mit Festpreis-Angebot.
Ich lese jede Nachricht selbst und antworte werktags innerhalb von 24 Stunden. Kai Rauch
Sofortige Eingangsbestätigung, werktags innerhalb von 24 Stunden Diagnose und Angebot.