新源码编译的MYSQL 5.7.21数据库,并新建了一个%
的root用户。
然后新建一个数据库exhibition,在对exhibition进行授权的时候提示1044 - Access denied for user 'root'@'%' to database 'exhibition'
错误。
授权的命令如下:
grant all on exhibition.* to 'exhibition'@'%' identified by 'xxxxx';
从报错提示可以看到应该是权限禁止的问题,所以我们直接看看root@%
这个用户的权限:
mysql> SELECT host,user,Grant_priv,Super_priv FROM mysql.user;
+-----------+---------------+------------+------------+
| host | user | Grant_priv | Super_priv |
+-----------+---------------+------------+------------+
| localhost | root | Y | Y |
| localhost | mysql.session | N | Y |
| localhost | mysql.sys | N | N |
| % | root | N | Y |
+-----------+---------------+------------+------------+
可以看到授权的权限没有打开: Grant_priv is set to N for root@%
,修复下:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
好了,问题解决。