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