向MySQL 8.0.21中的root用户授予所有特权

时间:2020-07-24 17:08:00

标签: mysql mysql-error-1064 mysql-8.0

我知道这个问题已经在stackoverflow上问过了,但是我没有看到有关实际问题的任何答案。因此,再次发布。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD 'abcd' WITH GRANT OPTION;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'::1' IDENTIFIED BY PASSWORD 'abcd' WITH GRANT OPTION;

以上行引发

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 'abcd' WITH GRANT OP' at line 1

我正在尝试将mysql从5.7升级到最新的8.0.21

谢谢!

1 个答案:

答案 0 :(得分:0)

对于root用户具有GRANT ALL特权,请使用以下语法:

GRANT ALL PRIVILEGES ON database_name.* TO 'root'@'localhost';
FLUSH PRIVILEGES;

上面的Grant mysql命令定义:

  • 获取ALL类型的特权
  • 这些特权适用于名为dbname的特定数据库,并且适用于该数据库的所有表,由dbname后的。*表示。
  • 当用户名通过本地连接(由@'localhost'指定)时,会将这些特权分配给用户名。
  • 您可以更改以指定任何有效的主机,将“ localhost”替换为“%”。