已经授予root在某个ip的所有权限了,结果root在那个ip上登录后,执行授权语句提示没有权限访问对应的数据库,如下:

mysql> show grants for root@'10.x';
+--------------------------------------------------------------------------------------------------------------------------+
| Grants for root@10.xxxx                                                                                            |
+--------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'xxx' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDDC67ED2CA2AD9' |
| GRANT ALL PRIVILEGES ON `test`.* TO 'root'@'xxxx'                                                               |
+---------------------------------------------------------------

root执行grant语句提示如下:

mysql> grant select on test.* to 'baixyu'@'xxx' identified by 'abc';
ERROR 1044 (42000): Access denied for user 'root'@'xxx' to database 'test'

这个提示说对test没有权限,比较误导。其实是给权限的时候没有带with grant option;没有带这个语句就是说没有远程授权能力。oracle也有同样的语句。