无法在 MySQL 5.7 中向 root 授予所有权限。语法错误

Doc*_*Doc 3 mysql

这个真是让人莫名其妙。我希望我没有做愚蠢的事情,但这没有意义。我在 Ubuntu 上安装了一个新的 MySQL 5.7,以 root 身份在本地登录到 mysql 并运行以下命令:

CREATE USER 'root'@'%' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)

成功!

接下来,我运行了这个:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

没有布埃诺。这导致了以下错误:

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 '*.* TO 'root'@'%' WITH GRANT OPTION' at line 1
Run Code Online (Sandbox Code Playgroud)

跆拳道?我已经在 MySQL 服务器上运行该命令 2 年了。为什么不起作用?正如任何优秀的小开发人员都会做的那样,我决定使用 RTM。这是 5.7 手册中给出的示例(http://dev.mysql.com/doc/refman/5.7/en/adding-users.html):

mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'%'
->     WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

我在服用疯狂的药丸吗?除了用户名,这正是我所做的。这应该可以正常工作,对吧???互联网上报告这个问题的其他人令人困惑地缺乏,所以我认为我必须只是掩盖一些明显的事情,但我已经深入研究了 2 个小时,只是无法弄清楚。提前致谢。

XCl*_*oud 5

脑补了几分钟,想起来了,在新安装中,默认情况下,用户“root@%”不存在,必须单独创建。

这必须为您工作:

CREATE USER 'root'@'%' IDENTIFIED BY 'yourpassword';    
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'  WITH GRANT OPTION;
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)