这个真是令人费解。我希望我没有做一些愚蠢的事,但这没有意义。我在Ubuntu上安装了一个新的MySQL 5.7,以root身份本地登录到mysql并运行以下命令:
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
成功!
接下来,我跑了这个:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
没有bueno。这导致以下错误:
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
WTF?我已经在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;
我服用疯狂的药吗?除了用户名,这正是我所做的。这应该工作,对吧???在互联网上有一个令人困惑的缺乏互联网报告这个问题,所以我认为我必须只是掩饰一些显而易见的事情,但我已经深入了解了这个问题,而且很明显无法解决这个问题。提前谢谢。
答案 0 :(得分:2)
在踢了几分钟之后,记得默认情况下在新安装中,用户“root @%”不存在,必须单独创建。
这一定对您有用:
CREATE USER 'root'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
答案 1 :(得分:2)
有关mysql语法的更改
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;