ERROR 1142 (42000): SELECT command denied to user ‘root‘@‘localhost‘ for table ‘user‘ 导致的权限不足问题

Mysql 执行命令权限不足

执行了一条revoke

mysql> revoke all on *.* from root@localhost;

结果导致权限全无,不管输入啥都发现
ERROR 1142 (42000): SELECT command denied to user 'root'@'localhost' for table 'user'

解决方案:

  • 先退出mysql,找到mysql的配置文件 ./etc/my.cnf
    添加配置到文件:
skip-grant-tables #跳过密码
  • 退出重新启动mysql
systemctl restart mysqld.service
  • 进入mysql,切换到mysql数据库,查看表权限
select * from user\G; //查看所有用户信息
  • 改权限
update mysql.user set select_priv='Y' where user='root';
这条命令需要将skip-grant-tables先注释重启mysql后才可执行
show grants;

版权声明:本文为m0_55593211原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。