Sie können MySQL / MariaDB zwingen, sein root-Passwort festzulegen, indem Sie den Prozess als root (ohne Netzwerkverbindung) starten und sich kennwortlos anmelden. Anschließend führen Sie ein aus ALTER USER
, um das root-Passwort zu ändern. Das meiste davon lese ich hier . Das Verfahren ist in MariaDB etwas anders, sollte aber syntaktisch gleichwertig sein.
Ich musste dies nur in der MySQL 5.7.18 Community (unter Fedora 24) tun, daher ist es bekannt, dass es auf mindestens einem System funktioniert.
- Stoppen Sie alle
mysqld
Instanzen, indem Sie sie entweder sendenSIGTERM
(z. B. durchhtop
) oder von Ihrem Service Manager herunterfahren (sudo systemctl stop mysqld.service
). Starten Sie MySQL als System- Root-Benutzer und legen Sie es in den Hintergrund mit:
$ sudo mysqld --skip-grant-tables --skip-networking --user=root &
Jetzt, da MySQL läuft (und furchtbar verwundbar, daher das
--skip-networking
Argument), loggen Sie sich ein:$ sudo mysql -u root
Laden Sie die Benutzertabelle von MySQL, damit wir sie bearbeiten können:
mysql> FLUSH PRIVILEGES;
Legen Sie ein neues Passwort für den Root-Benutzer von MySQL fest. Stellen Sie sicher, dass Sie den lustigen Charakteren richtig entkommen.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'correct \'horse\' battery staple'; mysql> exit;
Senden Sie MySQL eine weitere
SIGTERM
:$ sudo kill `cat /var/run/mysqld/mysqld.pid`
Starten Sie MySQL wieder normal:
$ sudo systemctl start mysqld.service
Stellen Sie sicher, dass Sie sich jetzt mit dem Kennwort des MySQL-Root-Benutzers anmelden können:
$ mysql -u root -p
Sie werden aufgefordert, das von Ihnen eingegebene Passwort einzugeben und voilà!