问题描述
在尝试使用Navicat连接Ubuntu中的MySQL的过程中,需要执行语句
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
其中 *.*代表对所有表进行授权;‘root’ 代表 root 用户;‘%’ 代表所有的外部 IP;‘password’ 代表自己设置的用户密码。
但是执行结果会出现如下结果:
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 '2514632453' with grant option' at line 1
解决方案:
试了网上很多方法都没有解决,最后发现上面那条授权指令需要分开执行才能有效,需要先创建用户,然后再对该用户授予权限。具体执行过程如下:
mysql> create user 'root'@'%' identified by 'password';
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
mysql> flush privileges;

其中方框框出的的部分为正确执行部分,圈出的部分是由于末尾没加分号导致的,有没有和我一样忘记加分号的小伙伴哈哈哈
在使用Navicat尝试连接Ubuntu上的MySQL时遇到授权错误1064。错误原因是SQL语法错误,需分开创建用户和授权。正确步骤为:首先创建用户'root'@'%'并设置密码,然后授予所有权限,并刷新权限。记得每条语句后加上分号。
1万+

被折叠的 条评论
为什么被折叠?



