这个问题真的很令人困惑。我希望我没有做什么愚蠢的事情,但这根本没有道理。我在Ubuntu上安装了一个新的MySQL 5.7,以root身份本地登录mysql,并运行了以下命令:
不好。这导致了以下错误:
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
成功!
接下来,我运行了这个命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
不好。这导致了以下错误:
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
什么鬼?我在MySQL服务器上运行了这个命令已经两年了,为什么不起作用?作为一个好的开发者,我决定去查阅官方文档。以下是5.7手册中给出的示例(http://dev.mysql.com/doc/refman/5.7/en/adding-users.html):
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'%'
-> WITH GRANT OPTION;
我是不是疯了?除了用户名,这就是我做的。这应该可以正常工作,对吧???令人困惑的是,互联网上缺乏其他人报告这个问题,所以我认为我肯定是忽略了一些显而易见的东西,但我已经花费了两个小时,还是无法弄清楚。提前致谢。
SHOW GRANTS FOR 'root'@'%'
的输出显示了什么? - gr1zzly be4rroot@localhost
,而不是root@%
。 - Barmar*
但实际上不是真正的 ASCII 字符的 Unicode 字符,或者可能是其他一些不可打印字符。 - Barmar