Es kann schnell passieren, dass du das Root-Passwort bzw. Zugangspasswort für deinen MySQL oder MariaDB Server vergessen hast. Du kommst beispielsweise über phpMyAdmin nicht mehr rein, musst aber unbedingt etwas ändern. Das ist äußerst ärgerlich. Wir helfen dir dabei, das Problem zu lösen.

Mit ein paar kurzen Befehlen ist es möglich, das Root-Passwort für den MySQL Server zurückzusetzen.

Zunächst musst Du eine SSH Verbindung mit Root-Befehlszeile zu Deinem Server aufbauen. Jetzt solltest Du prüfen, ob Du vielleicht über die Kommandozeile Zugriff auf den MySQL-Server hast.

mysql

Solltest Du jetzt keinen Authentifizierungs-Fehler erhalten haben, geht es hier weiter. Du hast dich dann nämlich über den „Socket auf Deinem Linux-Server“ angemeldet. Bei neueren MySQL-Server Versionen (und auch MariaDB) wird das standardmäßig bei der Installation eingerichtet.

MySQL ohne Rechte-Tabelle starten

Damit das Passwort zurückgesetzt werden kann, muss MySQL in einem bestimmten Modus gestartet werden. In diesem Modus wird die Rechte-Prüfung komplett deaktiviert. Dieser Modus soll nur für die kurze Zeit eingeschaltet sein, in welcher das Passwort zurückgesetzt wird. Denn sonst kann jeder auf alle Datenbanken zugreifen. Ohne Nutzername und Passwort.

Zunächst muss der aktuelle MySQL-Server gestoppt werden. Gib ein

systemctl stop mysql

Jetzt sollte der MySQL Server gestoppt sein.

Um den Server im Unsafe-Modus zu starten, ist nun folgender Befehl nötig:

mysqld_safe --skip-grant-tables &

Du solltest nun eine Ausgabe haben, die ähnlich wie folgende ausschaut:

root@mysql-server:~# 200629 14:07:28 mysqld_safe Logging to syslog.
200629 14:07:28 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

Passwort zurücksetzen

Es ist nun relativ einfach, das Passwort eines bestimmten Nutzers zurückzusetzen. Ein Befehl reicht aus und das Passwort ist geändert.

update mysql.user set authentication_string=password('neues-passwort') where user = 'root';

flush privileges;

quit

Dies setzt das Passwort aller „Root“-User (localhost, remote, IP-gebunden) auf dem Server auf „neues-passwort“.

Nun muss der unsichere MySQL-Server gestoppt werden, der normale Server gestartet werden.

pkill -f mysql
systemctl start mysql

Neue Zugangsdaten testen

Test nun, ob Du mit dem neu gesetzten Passwort in die Datenbank reinkommst. Du kannst das entweder über phpMyAdmin prüfen oder über die Kommandozeile. Gib dazu ein:

mysql -uroot -p

Wenn Du nach dem Passwort gefragt wirst, gib das eben neu gesetzte Password ein. Du solltest dich damit nun anmelden können. Happy Selecting!