新源码编译的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;

好了,问题解决。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐