1. Ich habe heute gerade mysql 8.0.13 installiert und versucht, ein paar Konten und Berechtigungen zuzuweisen, aber ich bekam einen Fehler:

2. Nachdem ich die Informationen überprüft hatte, erfuhr ich, dass die Berechtigungszuweisung von MySQL 8 keine Konten mit Passwörtern mehr implizit erstellen kann; Sie müssen zuerst das Konto erstellen und dann Berechtigungen festlegen.
Geben Sie den Befehl ein:
Grant all privileges on test.* to 'test'@'%';
Ein weiterer Fehler:
You are not allowed to create a user with GRANT;

Der GRANT-Befehl ist nicht erlaubt. Warum sollte es keine Berechtigung geben? Seltsam.
3. Später dachte ich an den Host in der MySQL-Benutzertabelle.
Also habe ich den Host geändert:
update user set host='%' where user='test';

Dann führe es zweimal aus
Grant all privileges on test.* to 'test'@'%';
Erfolg:

Aber beim Verbinden mit Navicat wurde ein Fehler gemeldet

Das liegt daran, dass die Verschlüsselungsmethode von MySQL 8 anders ist als die von Navicat.
4. Verschlüsselungsmethode ändern:
alter user test identified with mysql_native_password by 'xxx';

Erneut versuchen, fertig!

Originaler Link: https://blog.csdn.net/qq_34680444/article/details/86238516