mac的SQLPRO比较不友好,不能在数据库的界面新建用户,所以就只能移到终端来处理。在新建对象后,给对象赋予权限时,就出现了这个问题。网上看了一些解决办法都不太行,可能也是我解决思路的问题。
在新建对象时:
create user '用户名'@'localhost' identified by '密码';
这样新建的用户只可以在本地访问,当然也可以使用'%',表示什么地方都可以访问。新建用户后我们在查看用户时可以看到
差不多是这样的。接下来就是开始给权限了。
最开始的写法:
grant all privileges on *.* to 'pqg'@'%' identified by '密码';
这种方法应该是可以的,只是写法的问题。
然后有查看了百度上的其他做法:
grant all privileges on *.* to 'pqg'@'%' identified by '密码' with grant option;
其实和上面的写法差不多,但是还是会出现ERROR 1410 (42000)这个问题。然后再换个思路,其实实质的问题是授权语法不严谨导致的,我们要授权的用户是localhost,但是在授权时赋予的权限又是'%',这种情况下就会出现这个问题。所授权的用户及其所在主机名,要与实际存在的用户及其主机名一致.
mysql> grant all privileges on *.* to 'pqg'@'localhost';
Query OK, 0 rows affected (0.02 sec)
所以改成localhost就成功了。