MySQL 8创建密码无效的新用户

Aks*_*ani 17 mysql sql database

我使用MySQL已有好几年了,创建新用户的命令直到MySQL 5.x版本如下:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)

最近我安装了MySQL 8.在那,这个命令不起作用.

在触发上述命令时抛出以下错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'password'' at line 1
Run Code Online (Sandbox Code Playgroud)

MySQL 8中的语法有什么变化吗?在MySQL 8中创建新用户命令的正确语法是什么?

注意:我在MySQL 5.x版本中尝试了这种语法.它正常工作.

小智 29

试试这个:

use mysql;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'username'@'localhost';
flush privileges;
Run Code Online (Sandbox Code Playgroud)

  • 使用“CREATE USER”和“GRANT”时不需要“刷新权限” (2认同)
  • 运行以 GRANT ALL 开头的行时,出现以下错误:“错误 1410 (42000):不允许您使用 GRANT 创建用户。” 尽管事实上我只是使用 CREATE USER 命令创建了用户。 (2认同)

小智 7

从 MySQL 最新版本来看 -

创建用户 -

CREATE USER 'newuser1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password@123';
GRANT ALL ON *.* TO 'newuser1'@'localhost';
Run Code Online (Sandbox Code Playgroud)

这是创建新用户并授予权限的两行代码。

使用 MySQL 社区服务器版本8.0.26Windows 10 x64 位服务器。