MariaDB bzw. MySQL Root-Passwort zurücksetzen
Falls man das root-Passwort des SQL-Server vergessen hat, kann diese Anleitung eine Hilfe sein. Wichtig es wird root-Zugriff benötigt.
Version ermitteln
Als erstes muss ermittelt werden um welchen SQL-Server es sich handelt. Hier für genügt der Befehl:
mysql --version
Anhand der Ausgabe kann man erkennen ob man MarinDB oder MySQL einsetzt.
MariaDB
mysql Ver 15.1 Distrib 10.2.17-MariaDB, for Linux (x86_64) using readline 5.1
MySQL
mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
Datenbank stoppen
Nun wird die Datenbank gestoppt, hier nun der entsprechende Befehl.
MariaDB
systemctl stop mariadb
MySQL
systemctl stop mysql
Datenbank ohne Berechtigungsprüfung
Nun wird die Datenbank wieder gestartet und zwar ohne die Berechtigungsprüfung. Hier für wird folgender Befehl benötigt:
mysqld_safe --skip-grant-tables --skip-networking &
Passwort erstellen
Da jetzt der SQL-Server ohne Berechtigungsprüfung läuft, kann man sich einfach mit folgendem Befehl einloggen:
mysql -u root
Nun ist man wieder auf dem SQL-Server und sollte das neue Passwort sofort setzen. Hier für sin folgende Befehle, je nach Version nötig:
MySQL 5.7.6 und neuer oder MariaDB 10.1.20 und neuer
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'neues_Passwort'; quit;
MySQL 5.7.5 und älter oder MariaDB 10.1.20 oder älter
FLUSH PRIVILEGES; SET PASSWORD FOR 'root'@'localhost' = PASSWORD('neues_Passwort'); quit;
Normalzustand wieder herstellen
Nun wird der Normalzustand wieder hergestellt. Hier für sind folgende Befehle nötig.
MariaDB
kill `cat /var/run/mariadb/mariadb.pid` systemctl start mariadb
MySQL
kill `cat /var/run/mysqld/mysqld.pid` systemctl start mysql