Viele Nutzer begegnen MySQL erstmals bei einer WordPress-Installation, in einem Hostingtarif oder durch die Meldung „Error establishing a database connection“. Eine WordPress-Webseite besteht nicht nur aus PHP-Dateien, Themes und Bildern. Beiträge, Seiten, Benutzer, Einstellungen, Kommentare und zahlreiche Plugin-Daten liegen in einer Datenbank. PHP fragt die benötigten Inhalte ab und erzeugt daraus die dynamische Seite, die der Browser erhält.

MySQL ist ein relationales Datenbankmanagementsystem, mit dem strukturierte Daten in Tabellen gespeichert, abgefragt und verwaltet werden können. SQL und MySQL sind dabei nicht dasselbe: SQL ist die Abfragesprache, MySQL das Datenbanksystem, das SQL-Anweisungen versteht und verarbeitet.
Fällt die Datenbankverbindung aus, können die WordPress-Dateien weiterhin vollständig auf dem Webspace liegen. Die Anwendung erreicht jedoch ihre Inhalte und Einstellungen nicht mehr. Für eine sichere Fehlersuche müssen Sie deshalb Datenbankserver, konkrete Datenbank, Tabellen, Datenbankkonto und Anwendung als getrennte Ebenen betrachten.
MySQL verstehen: relationales System, SQL und zentrale Bausteine
„Relational“ bedeutet nicht lediglich, dass Daten in Tabellen erscheinen. Zusammengehörige Informationen lassen sich auf mehrere Tabellen verteilen und über eindeutige Werte beziehungsweise Schlüssel miteinander verknüpfen. Ein Shopsystem kann beispielsweise Kunden, Bestellungen und Produkte getrennt speichern, ohne sämtliche Angaben in einer einzigen überladenen Liste zu wiederholen.
Vom MySQL-Server bis zur Anwendung: fünf getrennte Rollen
Der MySQL-Server ist der laufende Datenbankdienst. Er nimmt Verbindungen an, prüft Konten und Rechte, verarbeitet SQL-Anweisungen und liest oder schreibt Daten. Ein Server kann mehrere voneinander abgegrenzte Datenbanken enthalten. Innerhalb einer Datenbank liegen Tabellen. Ein MySQL-Benutzerkonto regelt, wer sich anmelden und welche Operationen das Konto ausführen darf. Die Anwendung – etwa WordPress – verbindet sich mit diesem Konto und stellt die benötigten Abfragen.
Diese Aufteilung erklärt, warum die Aussage „Die Datenbank funktioniert nicht“ zu ungenau ist. Der Dienst kann erreichbar sein, obwohl das Passwort falsch ist. Die Anmeldung kann funktionieren, obwohl dem Konto Rechte auf die gewünschte Datenbank fehlen. Ebenso kann die Webseite grundsätzlich laufen, während nur eine Tabelle oder eine einzelne Plugin-Abfrage fehlschlägt.
Tabelle, Spalte, Zeile, Datensatz und Index richtig unterscheiden
Eine Tabelle enthält üblicherweise gleichartige Objekte, etwa Benutzer oder Kommentare. Ihre Spalten definieren Merkmale wie ID, Name, Datum oder Status. Eine Zeile enthält die konkreten Werte eines Eintrags. Im Alltag wird diese zusammengehörige Zeile häufig als Datensatz bezeichnet; sie ist jedoch kein zusätzliches MySQL-Objekt neben der Zeile. Schlüssel wie eine eindeutige ID ermöglichen es, Einträge zuverlässig zu identifizieren und Tabellen miteinander zu verknüpfen.
Ein Index ist eine zusätzliche Suchstruktur. Er kann MySQL helfen, passende Zeilen zu finden, ohne eine große Tabelle vollständig zu durchsuchen. Das beschleunigt jedoch nicht automatisch jede Abfrage. Entscheidend sind die abgefragten Spalten, Bedingungen und Verknüpfungen. Unnötige Indizes beanspruchen Speicher und erhöhen außerdem den Aufwand beim Einfügen, Ändern und Löschen von Daten.
Benutzer, Passwort, Host, Port und Rechte erfüllen verschiedene Aufgaben
Benutzername und Passwort dienen zunächst der Anmeldung. Anschließend prüft MySQL, ob das Konto die angeforderte Datenbank verwenden und dort beispielsweise Daten lesen, einfügen oder ändern darf. Ein korrektes Passwort garantiert daher noch keinen erfolgreichen Zugriff. Authentifizierung beantwortet die Frage „Welches Konto meldet sich an?“, Autorisierung dagegen „Was darf dieses Konto tun?“.
Ein Datenbankbenutzer ist außerdem kein WordPress-Benutzer. Das Datenbankkonto verbindet die Anwendung mit MySQL; WordPress-Benutzer sind Anwendungsdaten innerhalb der WordPress-Tabellen. Das Zurücksetzen eines WordPress-Administratorpassworts repariert deshalb keine defekte Datenbankverbindung. Ändern Sie dagegen das Datenbankpasswort, muss die Anwendungskonfiguration ebenfalls den neuen Wert erhalten. Netzwerkverbindungen nutzen zusätzlich einen Port. Für MySQL ist TCP-Port 3306 üblich, doch Server und Hoster können einen anderen Port vorgeben.
Zeichensatz, Kollation und Storage Engine bestimmen unterschiedliche Eigenschaften
Der Zeichensatz bestimmt, welche Zeichen codiert und gespeichert werden können. Für moderne Anwendungen ist utf8mb4 eine verbreitete Orientierung, weil es einen breiten Unicode-Zeichenvorrat abbildet. Die Kollation legt dagegen fest, wie Zeichenfolgen verglichen und sortiert werden, etwa hinsichtlich Groß- und Kleinschreibung oder sprachabhängiger Reihenfolgen. Eine bestimmte Kollation lässt sich nicht pauschal für alle MySQL- und MariaDB-Versionen empfehlen.
Die Storage Engine setzt die Speicherung und bestimmte Tabelleneigenschaften technisch um. InnoDB ist in modernen MySQL-Versionen wie MySQL 8.4 die Standard-Engine und unterstützt unter anderem Transaktionen sowie Wiederherstellungsmechanismen nach Abstürzen. Andere Engines können sich bei Sperren, Reparatur und Ausfallsicherheit anders verhalten. Prüfen Sie deshalb die Engine, bevor Sie eine Reparaturanleitung anwenden: Verfahren für MyISAM sind nicht automatisch für InnoDB geeignet.
WordPress, Datenbankzugang und MariaDB richtig einordnen
WordPress verwendet seine PHP-basierte Datenbankschicht, um Inhalte und Einstellungen abzurufen oder zu speichern. Die Datenbank enthält unter anderem Beiträge, Seiten, Benutzerkonten, Kommentare, Konfigurationen, Taxonomien und Daten vieler Erweiterungen. Bilder, Videos, Themes und Plugins liegen typischerweise zusätzlich als Dateien auf dem Webspace. Für eine vollständige Wiederherstellung benötigen Sie deshalb sowohl die Datenbank als auch die zugehörigen Dateien.
Typische WordPress-Tabellen sind nur ein Teil der Installation
wp_postsenthält nicht nur Blogbeiträge, sondern unter anderem Seiten, Anhänge, Revisionen und weitere Inhaltstypen.wp_usersspeichert WordPress-Benutzer. Diese Konten sind von den MySQL-Konten des Datenbankservers getrennt.wp_optionsenthält zahlreiche Website-, Theme- und Plugin-Einstellungen, darunter möglicherweise technisch komplexe oder serialisierte Werte.wp_commentsverwaltet Kommentare und zugehörige Statusinformationen.wp_termsbildet gemeinsam mit weiteren Tabellen einen Teil der Struktur für Kategorien, Schlagwörter und andere Taxonomien.
Das Präfix wp_ ist lediglich der bekannte Standard und kann abweichen. Multisite-Installationen, Plugins und frühere Migrationen verändern den tatsächlichen Tabellenbestand. Leiten Sie daher aus einem Namen niemals ab, eine Tabelle sei überflüssig und könne gelöscht oder geleert werden.
Auch eine übersichtliche Verwaltungsoberfläche macht direkte Änderungen nicht harmlos. Beziehungen zwischen Tabellen, Pluginlogik, Caches und serialisierte Daten sind in einer einzelnen Tabellenansicht kaum vollständig erkennbar. Ein scheinbar kleiner Eingriff kann Anmeldungen, URLs, Einstellungen oder ganze Erweiterungen beschädigen. Nutzen Sie nach Möglichkeit die WordPress- oder Plugin-Funktionen und erstellen Sie vor unvermeidbaren Datenbankänderungen eine wiederherstellbare Sicherung sowie möglichst eine Stagingkopie.
Hostname, Datenbankname, Benutzername und Passwort müssen zusammenpassen
WordPress benötigt mindestens den Datenbanknamen, den Datenbankbenutzer, dessen Passwort und den Datenbankhost. Diese Angaben stehen üblicherweise in der Datei wp-config.php und müssen mit den Werten des Hostingkontos übereinstimmen. Je nach Umgebung kann die Hostangabe außerdem einen abweichenden Port oder einen lokalen Socket berücksichtigen. Die Webdomain ist nicht automatisch der richtige Datenbankhost.
localhost bedeutet, dass die Anwendung einen Datenbankdienst auf demselben System beziehungsweise in der lokalen Serverumgebung anspricht. Bei Unix-basierten MySQL-Clients kann dieser Wert eine Socketverbindung auslösen, während eine IP-Adresse eine TCP-Verbindung verwendet. Auf Hostingplattformen kann stattdessen ein separater Name wie ein interner Datenbankhost vorgeschrieben sein. Ersetzen Sie localhost daher nicht versuchsweise durch beliebige IP-Adressen, sondern übernehmen Sie die dokumentierten Anbieterwerte.
Der Begriff Host besitzt zusätzlich eine zweite Bedeutung: DB_HOST bezeichnet das Ziel, zu dem WordPress eine Verbindung aufbaut. Ein MySQL-Konto wird dagegen durch Benutzername und einen Hostanteil bestimmt, der festlegt, aus welcher Quelle dieses Konto erkannt oder zugelassen wird. Der Server kann somit erreichbar sein und das Passwort stimmen, während die Anmeldung wegen einer unzulässigen Herkunft abgelehnt wird.
phpMyAdmin ist eine in PHP geschriebene, webbasierte Verwaltungsoberfläche für MySQL- und MariaDB-Server. Das Werkzeug ist weder die Datenbank noch der Datenbankserver und für den WordPress-Betrieb nicht zwingend erforderlich. Ein phpMyAdmin-Loginfehler beweist deshalb nicht, dass der Datenbankdienst ausgefallen ist. Umgekehrt kann eine Webseite funktionieren, obwohl der Hoster keinen phpMyAdmin-Zugang anbietet.
MariaDB ist MySQL-kompatibel, aber kein bloßer neuer Name
MariaDB ist ein eigenständiges relationales Datenbankmanagementsystem, das historisch aus MySQL hervorgegangen ist und weiterhin eine hohe Kompatibilität bietet. Viele Webanwendungen und Hostingtarife können MariaDB anstelle von MySQL verwenden. Beide Projekte entwickeln sich jedoch getrennt weiter. Unterschiede bestehen je nach Version unter anderem bei Funktionen, Authentifizierungsverfahren, JSON-Verarbeitung, Kollationen, Replikation und Standardwerten.
Mit Stand 1. August 2026 empfiehlt WordPress als moderne Datenbankbasis MySQL 8.0 oder höher beziehungsweise MariaDB 10.11 oder höher. Diese Werte sind eine veränderliche WordPress-Empfehlung, keine allgemeine Definition von MySQL. Für den Hostingalltag zählt, ob WordPress, eingesetzte Erweiterungen und der Anbieter die konkrete Version, benötigte Zeichensätze, Kollationen und Rechte unterstützen. Planen Sie einen Wechsel zwischen MySQL und MariaDB nur mit Kompatibilitätsprüfung, vollständigem Backup und Test auf einer Kopie.
MySQL- und WordPress-Fehler systematisch eingrenzen
Beginnen Sie nicht mit Tabellenreparaturen, sondern mit der Reichweite des Fehlers. Sichern Sie den vollständigen Fehlertext und prüfen Sie, ob die gesamte Website, nur der Administrationsbereich, eine einzelne Funktion oder lediglich ein Import betroffen ist. Diese Beobachtung entscheidet, welche Systemebene als Nächstes untersucht werden sollte.
Diagnosematrix: vom sichtbaren Fehler zur betroffenen Datenbankebene
Arbeiten Sie die passende Zeile von links nach rechts ab. Die Erstprüfungen verändern keine Daten. Zugangsdaten gehören dabei weder in öffentliche Supportbeiträge noch in ungeschwärzte Screenshots.
| Beobachtung | Wahrscheinlich betroffene Ebene | Zuerst sicher prüfen | Typische Ursache | Nächste Entscheidung |
|---|---|---|---|---|
| Die komplette WordPress-Seite meldet keine Datenbankverbindung | Dienst, Verbindung oder Zugangssatz | Hosterstatus sowie Datenbankname, Host, Port, Benutzername und Passwort mit den Anbieterangaben vergleichen | Server ausgefallen, Kontingent erschöpft oder Konfiguration nach Migration beziehungsweise Passwortwechsel veraltet | Bei korrekten Angaben Dienststatus und Hostingkonto durch den Anbieter prüfen lassen |
| Die Anmeldung endet mit „Access denied“ | MySQL-Konto oder Authentifizierung | Genauen Kontonamen, Passwort und erlaubte Verbindungsquelle prüfen | Falsches Passwort, falscher Benutzer oder nicht zugelassener Hostanteil des Kontos | Konto durch den Hoster korrigieren; ein neues Passwort anschließend auch in der Anwendung eintragen |
| Die Verbindung wird abgelehnt oder läuft in einen Timeout | Serverdienst oder Transportweg | Vorgegebenen Host, Port und gegebenenfalls Socket sowie bekannte Hostingstörungen prüfen | Dienst gestoppt, falsches Ziel, Firewall-, Netzwerk- oder Socketproblem | Nicht an Tabellen arbeiten; zuerst Erreichbarkeit und Serverbetrieb klären |
| Der Server ist erreichbar, aber die gewünschte Datenbank lässt sich nicht auswählen | Datenbankname oder Rechte | Existenz und Schreibweise der Datenbank sowie Zuordnung zum Benutzerkonto prüfen | Falscher Datenbankname, gelöschte Datenbank oder fehlende Berechtigung | Datenbankzuordnung wiederherstellen lassen; keine leere Ersatzdatenbank über die vorhandene Installation importieren |
| Nur eine Tabelle, Pluginfunktion oder Abfrage erzeugt einen Fehler | Tabelle, Erweiterung oder SQL-Abfrage | Tabellenname, exakte Meldung, Zeitpunkt und zuletzt geändertes Plugin erfassen | Fehlende Tabelle, fehlerhafte Migration, inkompatibles Plugin oder mögliche Beschädigung | Engine und Backupstand prüfen; Reparatur oder Wiederherstellung fachkundig planen |
| Umlaute, Emojis oder Sonderzeichen erscheinen falsch | Zeichensatz, Verbindung, Import oder Darstellung | Feststellen, ob die Zeichen bereits gespeichert falsch sind oder nur falsch ausgegeben werden | Uneinheitliche Kodierung, falsche Interpretation der Importdatei oder ungeeignete Spalteneinstellung | Keine pauschale Konvertierung durchführen; Änderung zuerst an einer Sicherungskopie testen |
| Ein SQL-Import bricht wegen Größe, Speicher oder Zeit ab | Importwerkzeug, PHP oder Servergrenze | Dateigröße, konkrete Meldung und Hostinglimits für Upload, Laufzeit, Speicher und Datenpakete prüfen | PHP-Uploadlimit, Timeout, Arbeitsspeicher, MySQL-Paketgrenze oder Tarifvorgabe | Hostingimport oder Kommandozeilenweg anfragen; Abbruch nicht vorschnell als beschädigte Datei bewerten |
| Die Website läuft, einzelne Vorgänge sind jedoch langsam | Abfrage, Plugin, Tabelle oder gesamte Anwendung | Ladezeit reproduzieren und Query-, PHP- sowie Serverprotokolle auswerten | Aufwendige Abfrage, ungeeigneter Index, große Tabellen, Pluginlogik, externe Dienste oder fehlendes Caching | Erst anhand von Messdaten optimieren; nicht wahllos Indizes ergänzen |
| Speicher- oder Kontingentmeldungen erscheinen | Hostingtarif, Datenträger oder Tabellenwachstum | Datenbankquota, freien Serverspeicher, Logdateien und besonders große Tabellen prüfen | Tariflimit, fehlender Speicher, wachsende Protokoll- oder Plugin-Tabelle | Ursache des Wachstums klären und Kapazität erweitern oder kontrolliert bereinigen |
Eine beschädigte Tabelle lässt sich nicht aus der allgemeinen WordPress-Verbindungsmeldung ableiten. Dafür benötigen Sie eine konkrete Tabellen- oder Engine-Fehlermeldung. REPAIR TABLE ist kein universelles InnoDB-Reparaturverfahren; die Anweisung unterstützt nur bestimmte Storage Engines und kann bei ungeeigneter Anwendung wirkungslos sein. Bei InnoDB-Schäden stehen Backups und spezialisierte Wiederherstellungsverfahren im Vordergrund, häufig mit Serverzugriff durch den Hoster oder einen Datenbankfachmann.
Behandeln Sie ein fehlendes Backup als eigenes Betriebsrisiko. Eine heruntergeladene Kopie des WordPress-Verzeichnisses enthält die separat verwaltete Datenbank normalerweise nicht. Ein belastbarer Sicherungssatz umfasst Datenbank und Dateien, stammt aus einem bekannten Zeitpunkt und lässt sich grundsätzlich wiederherstellen. Er sollte vor Importen, Tabellenänderungen, Zeichensatzkonvertierungen und Reparaturversuchen vorliegen.
Häufige Fragen zu MySQL, WordPress und Hosting
Was ist MySQL?
MySQL ist ein relationales Datenbankmanagementsystem. Es speichert strukturierte Daten in Tabellen, verarbeitet Abfragen und verwaltet unter anderem Konten, Rechte, Indizes, Zeichensätze und Transaktionen.
Ist MySQL dasselbe wie SQL?
Nein. SQL ist eine Sprache zum Abfragen und Verwalten relationaler Daten. MySQL ist ein Datenbanksystem, das SQL-Anweisungen entgegennimmt und ausführt.
Warum braucht WordPress eine Datenbank?
WordPress speichert darin veränderliche Inhalte und Einstellungen. PHP ruft diese Daten ab und kombiniert sie mit den Dateien des Systems, des Themes und der Plugins zur sichtbaren Webseite.
Was ist phpMyAdmin?
phpMyAdmin ist eine webbasierte Verwaltungsoberfläche für MySQL und MariaDB. Es erleichtert Exporte, Importe und administrative Aufgaben, ist aber weder der Datenbankserver noch eine Voraussetzung für WordPress.
Was ist MariaDB?
MariaDB ist ein eigenständiges, weitgehend MySQL-kompatibles Datenbanksystem. Für typische WordPress-Installationen kann es dieselbe Aufgabe übernehmen, doch die Kompatibilität hängt von den konkreten Versionen und verwendeten Funktionen ab.
Was bedeutet localhost?
localhost verweist auf die lokale Serverumgebung. Abhängig von Betriebssystem und Client kann die Verbindung über einen Unix-Socket statt über TCP erfolgen. Maßgeblich bleibt die Hostangabe Ihres Anbieters.
Warum verbindet sich die Webseite nicht mit der Datenbank?
Mögliche Ursachen sind ein ausgefallener Dienst, ein falscher Host oder Port, fehlerhafte Zugangsdaten, ein unzulässiger Kontohost, ein falscher Datenbankname, fehlende Rechte oder ein ausgeschöpftes Hostingkontingent.
Kann man MySQL-Daten einfach bearbeiten?
Technisch ja, sicher jedoch nur mit Kenntnis der Tabellenstruktur und Anwendungslogik. Direkte Änderungen können Beziehungen, serialisierte Werte und Plugin-Daten beschädigen. Bevorzugen Sie die Anwendungsfunktionen und arbeiten Sie andernfalls ausschließlich mit geprüftem Backup und Testkopie.
Zugangsdaten, Anbieterwerte und die Reichweite eines Fehlers können Sie meist gefahrlos kontrollieren. Sobald Tabellenreparaturen, Zeichensatzkonvertierungen oder ungeklärter Datenverlust im Raum stehen, endet die sichere Konfigurationsprüfung. Sichern Sie den aktuellen Stand und beziehen Sie den Hostinganbieter oder einen Datenbankfachmann ein, bevor weitere Schreibzugriffe zusätzlichen Schaden verursachen.
Werbung
(**) UVP: Unverbindliche Preisempfehlung
Preise inkl. MwSt., zzgl. Versandkosten
