Wenn Sie einfach den mysql-Befehl unter dem Root-Benutzer ausführen, wird Ihnen der Zugriff ohne Passwortabfrage gewährt, da die Socket-Authentifizierung für [email protected]
aktiviert istDiese Anleitung ist irreführend.
Die einzige Möglichkeit, ein Passwort festzulegen, besteht darin, zur nativen Authentifizierung zu wechseln, wie zum Beispiel:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
Bei meiner wahnsinnigen Suche nach einer Lösung habe ich einen Blick auf /var/log/mysqld.log
geworfen und diese Zeile gefunden:
[Anmerkung] Ein temporäres Passwort wird generiert für [email protected]:abc123
Sieht so aus, als ob mysql 5.7+ ein zufälliges Passwort in der Installation generiert und in dieser Datei dazu aufgefordert wird.
Verwenden Sie die folgenden Schritte, um das Passwort zurückzusetzen:
$ sudo systemctl start mysqld
Setzen Sie das Root-Passwort des MySQL-Servers zurück.
$sudo grep 'temporary password' /var/log/mysqld.log
Geben Sie etwas aus wie:
10.744785Z 1 [Note] A temporary password is generated for [email protected]: o!5y,oJGALQa
Verwenden Sie das obige Passwort während des Zurücksetzens von mysql_secure_installation verarbeiten.
$ sudo mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
Sie haben das Root-Passwort des MySQL-Servers erfolgreich zurückgesetzt. Verwenden Sie den folgenden Befehl, um zu überprüfen, ob der MySQL-Server eine Verbindung herstellt oder nicht.
$ mysql -u root -p
Siehe meinen Artikel:Install Latest MySQL 5.7 on RHEL/Centos 7