Eines der wichtigsten Passwörter ist das root-Passwort für MySQL/MariaDB. Hier gibt es keinen „Passwort zurücksetzen“-Link – es ist aber trotzdem möglich, auch ohne das alte Passwort zu kennen.
Die Vorgehensweise unterscheidet sich etwas, je nach Datenbankserver-Version. Hier findest du die Lösung.
MySQL/MariaDB root-Passwort neu vergeben
Zuerst loggst du dich per SSH (oder unter Windows mit „putty“) auf deinem dogado-Server ein. du musst dafür root-Rechte haben.
In Ubuntu 20.04 ist die Standardkonfiguration des SQL-Servers so, dass jeder root-Benutzer des Systems auch root-Rechte in MySQL/MariaDB hat. In diesem Fall ist es nicht notwendig, das root-Passwort zu ändern.
Versuche zuerst, dich mit
sudo mysql
in die Konsole einzuloggen. Ist dir das gelungen, kannst du alle Datenbank-Operationen einfach durchführen.
Hast du die Authentifizierungsmethode geändert, z.B. aus Sicherheitsgründen, muss der Datebankserver zur Änderung heruntergefahren werden.
Wichtig! du solltest deine anderen Benutzer, sofern es welche gibt, darüber informieren und diese Änderung im Voraus ankündigen. Sämtliche Websites, die die Datenbank verwenden, sind in dieser Zeit eingeschränkt oder gar nicht erreichbar! Lege die Änderungszeit also so, dass möglichst wenige Benutzer und Website-Besucher davon betroffen sind!
MySQL/MariaDB herunterfahren
Zuerst prüfst du, welche Version du installiert hast.
mysql --version
mysql Ver 15.1 Distrib **10.3.25-MariaDB**, for debian-linux-gnu (x86\_64) using readline 5.2
und
mysql Ver **8.0.23**-0ubuntu0.20.04.1 for Linux on x86\_64 ((Ubuntu))
Je nachdem, ob du MariaDB oder MySQL verwendest, unterscheidet sich der Befehl:
sudo systemctl stop mariadb
oder
sudo systemctl stop mysql
MySQL/MariaDB ohne Passwortabfrage starten
Um die Passwortabfrage zu übergehen, musst du den Datenbankserver so starten, dass er die Tabelle „Grant Tables“ nicht lädt. Hier sind die Benutzer mit Rechten und Passwörtern gespeichert. Da in diesem Fall aber auch andere Nutzer einfach ohne Passwort anmelden können, ist das ein Sicherheitsrisiko. In diesem Fall startest du den Server ohne Netzwerkkommunikation.
Der erste Befehl setzt die richtige Option, der Zweite startet den Datenbankserver, hier MariaDB.
sudo systemctl set-environment MYSQLD\_OPTS="--skip-grant-tables --skip-networking"
sudo systemctl start mariadb
Du kannst nun ohne Passworteingabe einloggen:
sudo mysql -u root
Lade nun nachträglich die Tabelle mit den Userrechten:
FLUSH PRIVILEGES;
root-Passwort in MariaDB ändern
Verwendest du MariaDB, setzt du mit diesem Befehl ein neues root-Passwort:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'sicheres\_passwort';
wobei du ‚sicheres_passwort‘ durch ein sicheres neues Passwort ersetzt.
Hast du die Authentifizierungsmethode in MariaDB geändert, legst du mit den folgenden Befehlen fest, dass auch wirklich die Benutzer-Authentifizierung mit Passwort verwendet wird. Ansonsten hat die Änderung keinen Effekt.
root-Passwort in MySQL ändern
In MySQL wird die Änderung etwas anders vorgenommen:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching\_sha2\_password BY 'sicheres\_passwort';
MySQL/MariaDB wieder normal starten
Zuerst stellst du die normale Konfiguration wieder her
sudo systemctl unset-environment MYSQLD\_OPTS
Nun startest du den Datenbankserver neu
sudo systemctl restart mariadb
oder
sudo systemctl restart mysql
Du kannst mit diesem Befehl testen, ob das Passwort nun wieder abgefragt wird und ob du das richtige Passwort notiert hast:
mysql -u root -p
Hast du alles richtig gemacht, kannst du nun wieder in der Konsole arbeiten:
Fazit Ein vergessenes root-Passwort für MySQL/MariaDB ist keine Katastrophe und kann recht schnell korrigiert werden. Bei Fragen stehen wir dir natürlich zur Verfügung!