Zum Hauptinhalt springen

So ändern Sie das MariaDB-Passwort für Root- und normale Benutzer

· 3 Minuten Lesezeit
Customer Care Engineer

Haben Sie Ihr MariaDB-Root-Passwort vergessen? Ohne dieses können Sie keine Benutzer oder Datenbanken verwalten und keine kritischen Konfigurationen durchführen. In diesem Artikel erfahren Sie nicht nur, wie Sie das MariaDB-Root-Passwort schnell zurücksetzen, sondern auch, wie Sie das Passwort für normale Benutzer zurücksetzen.

Für MySQL lesen Sie bitte unseren separaten Leitfaden.

info

Der Root-Benutzer ist der Hauptadministrator der Datenbank. Er hat vollen Zugriff auf alle Daten und Einstellungen. Wenn Sie dieses Passwort verlieren, können Sie bestimmte Einstellungen nicht mehr ändern oder Befehle ausführen.

Alle Vorgänge werden über die Befehlszeile per SSH durchgeführt. Detaillierte Anweisungen zum Verbinden mit Ihrem Server über SSH finden Sie in diesem Artikel.

Überprüfen Sie vorab den Inhalt der Datei /root/.my.cnf. Oft enthält sie das aktuelle Root-Passwort für den Zugriff auf MariaDB.

Um die Verbindung zu testen, verwenden Sie den Befehl:

mysql -u root -p 

Geben Sie dann das Passwort aus der .my.cnf-Datei ein.

Wenn das Passwort nicht funktioniert, folgen Sie den nachstehenden Anweisungen.


Passwort zurücksetzen

info

In den meisten unten aufgeführten Befehlen wird der Befehl mysql anstelle von mariadb zur Interaktion mit dem MariaDB-Server verwendet. Dies liegt daran, dass auf einigen Betriebssystemen, wie z. B. RHEL-basierten Distributionen (RockyLinux, AlmaLinux usw.), der Befehl mariadb nicht verfügbar ist. Stattdessen wird der Befehl mysql zur Kompatibilität mit MySQL verwendet.

Die Verwendung des mysql-Befehls bietet universelle Kompatibilität, unabhängig von der Distribution oder der Implementierung des Servers.

Schritt 1: MariaDB stoppen

Um das Passwort zurückzusetzen, müssen Sie zuerst den MariaDB-Server stoppen. Geben Sie den folgenden Befehl ein:

systemctl stop mariadb

 Schritt 2: Server im abgesicherten Modus neu starten

  • Für Debian und Ubuntu:

Stellen Sie sicher, dass das Verzeichnis, von dem MariaDB ausgeführt wird, existiert und sich im Besitz des richtigen Benutzers befindet:

mkdir -p /var/run/mysqld/ && chown -R mysql: /var/run/mysqld/

 Starten Sie den MariaDB-Server ohne Zugriffskontrolle:

mysqld_safe --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &

Wenn der MariaDB-Server erfolgreich gestartet wird, sehen Sie eine Meldung ähnlich wie:

2024-11-28T23:50:19.298141Z mysqld_safe Starting mariadb daemon with databases from /var/lib/mysql

Um in der Befehlszeile weiterzuarbeiten, drücken Sie „Strg + C“.

  • Für CentOS/RockyLinux/AlmaLinux:

Starten Sie den MariaDB-Server ohne Zugriffskontrolle:

mysqld_safe --skip-grant-tables --socket=/var/lib/mysql/mysql.sock &

Um in der Befehlszeile weiterzuarbeiten, drücken Sie „Strg + C“.

Schritt 3: Mit MariaDB verbinden

  • Für Debian und Ubuntu:
mysql --socket=/var/run/mysqld/mysqld.sock
  • Für CentOS/RockyLinux/AlmaLinux:
mysql --socket=/var/lib/mysql/mysql.sock

 Schritt 4: Passwort zurücksetzen

Führen Sie die folgenden Befehle nacheinander aus:

FLUSH PRIVILEGES;

 Für einen lokalen Benutzer:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

Für einen Netzwerkbenutzer (falls vorhanden):

ALTER USER 'root'@'%' IDENTIFIED BY 'NewPassword';

Dann:

FLUSH PRIVILEGES;

Ersetzen Sie NewPassword durch Ihr gewünschtes neues Passwort.

info

'user'@'localhost' – bezieht sich auf einen lokalen Benutzer, der sich per Socket oder localhost verbindet. 'user'@'%' bezieht sich auf einen Netzwerkbenutzer mit Zugriff von jeder IP-Adresse.

Sie können für diese Benutzer dasselbe oder unterschiedliche Passwörter festlegen. Wenn der Netzwerkbenutzer nicht existiert, führt der Befehl @'%' zu einem Fehler.

Beenden Sie MariaDB mit dem Befehl exit oder durch Drücken von „Strg + D“.

Schritt 5: MariaDB neu starten

Stoppen Sie den MariaDB-Server:

  • Für Debian und Ubuntu:
mysqladmin shutdown --socket=/var/run/mysqld/mysqld.sock -p

Geben Sie dann das zuvor festgelegte Root-Passwort ein.

  • Für CentOS/RockyLinux/AlmaLinux:
mysqladmin shutdown --socket=/var/lib/mysql/mysql.sock -p

Geben Sie dann das zuvor festgelegte Root-Passwort ein.

Starten Sie MariaDB im normalen Modus:

systemctl start mariadb

 So setzen Sie das Passwort für normale Benutzer zurück

Wenn Sie das Passwort für einen anderen Benutzer als Root vergessen haben, ist der Ansatz ähnlich:

  1. Verbinden Sie sich als Root mit dem MariaDB-Server:
mysql -u root -p

 Geben Sie Ihr MariaDB-Root-Passwort ein.

  1. Führen Sie den Befehl zur Änderung des Passworts aus:

Für einen lokalen Benutzer:

ALTER USER 'username'@'localhost' IDENTIFIED BY 'NewUserPassword';

Für einen Netzwerkbenutzer (falls vorhanden):

ALTER USER 'username'@'%' IDENTIFIED BY 'NewUserPassword';

Dann:

FLUSH PRIVILEGES;

Ersetzen Sie username durch den tatsächlichen Benutzernamen und NewUserPassword durch Ihr gewünschtes neues Passwort.

Beenden Sie MariaDB mit dem Befehl exit oder durch Drücken von „Strg + D“.

Bei Bedarf können Sie alle Benutzer mit der folgenden Abfrage auflisten:

SELECT User, Host FROM mysql.user;

So verbinden Sie sich lokal mit MariaDB, ohne ein Passwort einzugeben

Um zu vermeiden, dass Sie jedes Mal manuell ein Passwort eingeben müssen, wenn Sie sich von der Befehlszeile auf Ihrem Server mit MariaDB verbinden, können Sie es in der Datei /root/.my.cnf speichern. Öffnen Sie die Datei in einem Texteditor:

nano /root/.my.cnf

Fügen Sie die folgenden Zeilen hinzu:

[client]

user = root
password = YourRootPassword

Ersetzen Sie YourRootPassword durch Ihr tatsächliches Root-Passwort.

Speichern Sie die Datei, indem Sie Strg + O drücken, und beenden Sie den Texteditor dann mit Strg + X.

Setzen Sie zu Sicherheitszwecken strengere Berechtigungen für die .my.cnf-Datei:

chmod 600 /root/.my.cnf

Danach können Sie sich einfach durch Eingabe des Befehls verbinden:

mysql -u root