mysql数据库root授权失败ERROR 1044 (42000)

问题

使用$ ./mysql -h127.0.0.1 -P3338 -uroot -p进行授权

mysql> GRANT ALL PRIVILEGES ON test.* TO 'wodamonitor'@'%' WITH GRANT OPTION;
ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'test'

结果报错了。

排查和解决

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          |

对于%的权限是不给授权的,只有用localhost才可以,那么要么使用localhost,要么就是放开所有主机权限。

mysql> UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 2  Changed: 1  Warnings: 0

欢迎关注我的同名公众号,原创技术文章第一时间推送。
如果你有遇到Linux系统或者其他技术问题,也可以付费协助解决。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容