Der Fehler „Fehler beim Aufbau einer Datenbankverbindung“ tritt auf, wenn MySQL oder MariaDB die Verbindung zwischen der Anwendung und der Datenbank nicht herstellen kann. Meist liegt dies an falschen Zugangsdaten, einem gestoppten Datenbankserver oder Problemen mit der Konfiguration.

Was steckt hinter der Meldung “Fehler beim Aufbau einer Datenbankverbindung”?

Die Meldung „Fehler beim Aufbau einer Datenbankverbindung“ signalisiert, dass eine Anwendung wie zum Beispiel eine PHP-Website keine Verbindung zur MySQL- oder MariaDB-Datenbank herstellen konnte. Häufige Ursachen sind ungültige Zugangsdaten wie ein fehlerhafter Benutzername oder ein fehlerhaftes Passwort, ein nicht laufender Datenbankserver oder fehlerhafte Servereinstellungen. Auch Netzwerkprobleme, wie gesperrte Ports oder falsche Host-Angaben, können die Fehlermeldung auslösen. In Content-Management-Systemen wie WordPress wird der Fehler direkt angezeigt, wenn die Datenbank nicht erreichbar ist. Meist blockiert er den Zugriff auf die gesamte Website, da Inhalte nicht geladen oder gespeichert werden können.

Fehler beim Datenbankverbindungsaufbau in MySQL/MariaDB beheben - so geht’s

Wenn Sie sich nicht mit Ihrer Datenbank verbinden können, kann dies eine Reihe von Gründen haben. Prüfen Sie die nachfolgenden Lösungen daher Schritt für Schritt, um herauszufinden, woran die Verbindung in Ihrem konkreten Fall scheitert.

Lösung 1: Stellen Sie sicher, dass MySQL/MariaDB läuft

Wenn MySQL oder MariaDB nicht mehr läuft, können sich Skripte und Websites nicht mehr verbinden. Auf einem Linux-Server können Sie mit dem Befehl sehen, ob MySQL läuft:

ps -aux | grep mysql

Dies gibt eine Liste der laufenden Prozesse zurück, die “mysql” im Namen haben. Die Liste enthält den Befehl, den Sie gerade ausgeführt haben. Wenn MySQL läuft, beinhaltet es auch den MySQL-Prozess.

Bild: MySQL-Prozess
An der Ausgabe erkennen Sie, ob MySQL/MariaDB läuft.

Wenn MySQL/MariaDB nicht läuft, sehen Sie nur Ihren grep-Befehl aufgelistet.

Starten Sie MySQL/MariaDB mit den folgenden Befehlen:

# Ubuntu
systemctl start mysql
systemctl start mariadb
# CentOS
systemctl start mysqld
systemctl start mariadb

Achten Sie darauf, dass Sie den richtigen Benutzernamen und das richtige Passwort verwenden. Beide Informationen werden bei der Erstellung der MySQL-Datenbank festgelegt. Außerdem müssen Sie den richtigen Hostnamen einstellen.

Lösung 2: Überprüfen Sie die Datenbankverbindung

Sobald Sie wissen, dass MySQL/MariaDB läuft, ist der nächste Schritt, sich von der Befehlszeile aus mit dem Befehl zu verbinden:

mysql -u root -p

Sie sollten aufgefordert werden, das Passwort des Benutzers root einzugeben. Standardmäßig ist das Passwort für den Root-Zugang das gleiche wie das ursprüngliche Root-Passwort für Ihren Server.

Hinweis

Wenn Sie das Passwort für den Root-Server-Benutzer ändern, wird das Passwort für den MySQL-Root-Benutzer nicht geändert.

Nachdem Sie das Passwort eingegeben haben, sollten Sie sich im MySQL/MariaDB-Client befinden. Ein MySQL-Client sieht beispielsweise so aus:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 9.4.0 Homebrew
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

Wenn Sie Probleme beim Aufbau einer MySQL-Verbindung mit einem anderen Benutzernamen und Passwort haben, führen Sie diesen Test ein zweites Mal durch und ersetzen Sie root durch den anderen Benutzernamen.

Lösung 3: Überprüfen Sie den MySQL/MariaDB-Benutzernamen

Wenn Sie die falschen Zugangsdaten eingeben, erhalten Sie einen Fehler wie diesen:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Vergewissern Sie sich, dass sowohl der Benutzername, den Sie in der Anfrage sehen, als auch das von Ihnen eingegebene Passwort korrekt geschrieben sind. Beachten Sie, dass der Benutzername zwischen Groß- und Kleinschreibung unterscheidet - Root ist nicht dasselbe wie root.

Social Buy Button
Machen Sie Follower zu Ihren Kunden
  • Einfach: In wenigen Schritten über Social Media verkaufen
  • Intuitiv: Eine Plattform für sämtliche Kanäle inkl. Synchronisation
  • Flexibel: Jederzeit an Ihre Bedürfnisse anpassbar

Es lohnt sich daher zu überprüfen, ob Sie die richtige Schreibweise und Groß-/Kleinschreibung für den Benutzernamen verwenden. Um alle MySQL/MariaDB-User aufzulisten, melden Sie sich mit dem Befehl am Befehlszeilen-Client als root an:

mysql -u root -p

Als nächstes listen Sie alle MySQL-User und ihre Hosts mit dem Befehl auf:

select host, user from mysql.user;

Dadurch wird Ihnen der Benutzername genau so angezeigt, wie er erstellt wurde. Außerdem sehen Sie in der Spalte Host den Ort, von dem aus sich der User verbinden darf.

Lösung 4: Zurücksetzen des MySQL/MariaDB-Kennworts des Benutzers

Hinweis

Insbesondere beim Zurücksetzen des Passworts des Root-Benutzers ist Vorsicht geboten. Passen Sie beim Ausführen der nachfolgenden Tipps also besonders auf, um nicht aus Versehen ein falsches Passwort zu löschen.

Wenn auch die Schreibweise des Benutzernamens nicht das Problem war, kann der Fehler auch an einem ungültigen Passwort liegen. Um das MySQL/MariaDB-Passwort eines Benutzers zurückzusetzen, melden Sie sich mit dem Befehl am Befehlszeilen-Client als root an:

mysql -u root -p

Als nächstes setzen Sie das Passwort des entsprechenden Users mit dem Befehl zurück:

ALTER USER 'myuser'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;

Ersetzen Sie new_password durch das neue Passwort und myuser durch den Benutzernamen.

Lösung 5: Stellen Sie sicher, dass der User die richtigen Berechtigungen hat.

Wenn Sie sicher sind, dass Benutzername und Passwort korrekt sind, kann das Problem darin bestehen, dass der User nicht über die richtigen Berechtigungen (Grants) für diese Datenbank verfügt.

Um die Berechtigungen (Grants) eines Users zu überprüfen, melden Sie sich mit dem Befehl am Befehlszeilen-Client als root an:

mysql -u root -p

Als nächstes zeigen Sie die Berechtigungen des Benutzers mit dem Befehl an:

SHOW GRANTS FOR 'myuser'@'localhost';

Ersetzen Sie myuser durch den Benutzernamen. Ändern Sie gegebenenfalls localhost in den Hostnamen.

Sie sollten eine Liste der Privilegien erhalten, die der User für die jeweilige Datenbank besitzt. Es sollte ungefähr so aussehen:

+-------------------------------------------------------------+
| Grants for myuser@localhost                                 |
+-------------------------------------------------------------+
| GRANT USAGE ON *.* TO `myuser`@`localhost`                  |
| GRANT ALL PRIVILEGES ON `reviews`.* TO `myuser`@`localhost` |
+-------------------------------------------------------------+
2 rows in set (0,004 sec)

Beachten Sie, dass dieser User alle Berechtigungen für eine Datenbank namens reviews hat.

Wenn dem User keine Berechtigungen für eine Datenbank zugewiesen wurden, sehen Sie nur so etwas:

+--------------------------------------------+
| Grants for myuser@localhost                |
+--------------------------------------------+
| GRANT USAGE ON *.* TO `myuser`@`localhost` |
+--------------------------------------------+
1 row in set (0,001 sec)

Beachten Sie, dass dieser Benutzer nur die USAGE-Berechtigungen auf “.” hat und keine Berechtigungen für Datenbanken. Dies kann den Zugriffsfehler verursachen.

Lösung 6: Überprüfen der Datenbankverbindung aus dem Web heraus

Auch wenn MySQL oder MariaDB lokal laufen, kann es in der Webumgebung trotzdem zu Problemen kommen. Ein einfacher Test aus dem Browser hilft dabei, genau diese Verbindung zu prüfen und mögliche Zugriffsprobleme frühzeitig zu erkennen. Verwenden Sie ein einfaches Skript, um zu testen, ob Ihre Datenbank die Verbindung akzeptiert. Erstellen Sie eine Datei namens database-connection-test.php mit folgendem Inhalt:

<?php
$test_connect = mysqli_connect('localhost', 'root', 'password');
if (!$test_connect) {
    die('Could not connect: ' . mysqli_connect_error());
}
echo 'Successful database connection.';
mysqli_close($test_connect);
?>

Ersetzen Sie das Wort password durch das Passwort von root.

Legen Sie diese Datei in Ihr Webverzeichnis und besuchen Sie sie dann in einem Browser. Wenn Sie in der Lage sind, sich mit dem Root-Benutzernamen und Passwort zu verbinden, dann wissen Sie, dass Ihre Datenbank Verbindungen akzeptiert.

Wenn Sie Probleme beim Aufbau einer MySQL/MariaDB-Verbindung mit einem anderen Benutzernamen und Passwort haben, führen Sie diesen Test ein zweites Mal durch und ersetzen Sie root durch den anderen Benutzernamen und das Passwort durch das entsprechende Passwort.

Hinweis

Achten Sie darauf, diese Datei zu löschen, sobald Sie Ihre Tests abgeschlossen haben.

Lösung 7: Prüfen der Firewall und Ports

Selbst wenn MySQL oder MariaDB korrekt laufen und die Zugangsdaten stimmen, kann eine Firewall die Verbindung blockieren. Standardmäßig nutzt MySQL den Port 3306 für eingehende Verbindungen. Prüfen Sie zunächst, ob der Port offen ist. Auf einem Linux-System können Sie dazu folgende Befehle verwenden:

sudo netstat -tulnp | grep 3306
# Auf Systemen mit ufw (Ubuntu)
sudo ufw status

Wenn die Firewall den Port blockiert, können Sie ihn gezielt freigeben:

# Ubuntu mit ufw
sudo ufw allow 3306/tcp
sudo ufw reload
# CentOS oder RHEL mit firewalld
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

Achten Sie darauf, dass Sie den Port nur für die IP-Adressen freigeben, die tatsächlich Zugriff benötigen. Eine Öffnung für alle kann ein Sicherheitsrisiko darstellen. Nachdem die Firewall entsprechend angepasst wurde, sollte Ihre Anwendung wieder in der Lage sein, eine Verbindung zur MySQL-/MariaDB-Datenbank herzustellen. Prüfen Sie dies erneut mit dem PHP-Testskript oder direkt über die Konsole.

War dieser Artikel hilfreich?
Zum Hauptmenü