1. Hoy acabo de instalar mysql 8.0.13, intenté asignar varias cuentas y permisos, y como resultado dio error:

2. Consultando la información, supe que en mysql8 la asignación de permisos no puede crear cuentas implícitamente con contraseña; primero hay que crear la cuenta y luego establecer los permisos.
Introduzca el comando:
Grant all privileges on test.* to 'test'@'%';
Vuelve a dar error:
You are not allowed to create a user with GRANT;

No se permite usar el comando GRANT, ¿cómo es que no tengo permiso? Qué raro.
3. Después pensé en el campo host de la tabla user de mysql.
Entonces modifiqué el host:
update user set host='%' where user='test';

A continuación, ejecutar dos veces:
Grant all privileges on test.* to 'test'@'%';
Éxito:

Pero al conectar con Navicat da error:

Esto se debe a que el método de cifrado de mysql8 es diferente al de Navicat.
4. Modificar el método de cifrado:
alter user test identified with mysql_native_password by 'xxx';

Vuelve a intentarlo, ¡listo!

Enlace original: https://blog.csdn.net/qq_34680444/article/details/86238516