MySQL Server 5.7 wurde bereits standardmäßig auf meinem neuen Linux Mint 19 installiert.
Aber wie lautet das MySQL- root
Passwort? Es stellt sich heraus, dass:
Die Standardinstallation verwendet die auth_socket
Authentifizierung anstelle von Passwörtern!
Es ermöglicht eine kennwortfreie Anmeldung, sofern eine mit demselben Benutzernamen am Linux-System angemeldet ist. Um sich als MySQL-Root user
anzumelden, kann man sudo verwenden:
sudo mysql
Aber wie kann man dann das Root-Passwort ändern? Um zu veranschaulichen, was los ist, habe ich einen neuen Benutzer "ich" mit vollen Berechtigungen erstellt, mit:
mysql> CREATE USER 'me'@'localhost' IDENTIFIED BY 'my_new_password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'me'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
"Ich" mit "Wurzel" vergleichen:
mysql> SELECT user, plugin, HEX(authentication_string) FROM mysql.user WHERE user = 'me' or user = 'root';
+
| user | plugin | HEX(authentication_string) |
+
| root | auth_socket | |
| me | mysql_native_password | 2A393846353030304545453239394634323734333139354241344642413245373537313... |
+
Da auth_socket verwendet wird, kann das Root-Passwort nicht geändert werden: Der SET PASSWORD
Befehl schlägt fehl und mysql_secure_installation
es wird nichts erreicht ...
==> So zappen Sie diesen alternativen Authentifizierungsmodus und bringen den MySQL- root
Benutzer wieder zur Verwendung von Kennwörtern:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SOME_NEW_ROOT_PASSWORD';
Eine gute Erklärung.
Weitere Details finden Sie im MySQL-Handbuch .