前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【原创】ERROR 1142 (42000): command denied to user 引发的权限不足问题[亲测有效][通俗易懂]

【原创】ERROR 1142 (42000): command denied to user 引发的权限不足问题[亲测有效][通俗易懂]

作者头像
全栈程序员站长
发布2022-09-27 12:03:58
5.6K0
发布2022-09-27 12:03:58
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

mysql grants 引发的权限不足问题[42000]

基于mysql5.7.x

正常创建数据库 查看权限>>> show grants;

在这里插入图片描述
在这里插入图片描述

会对root主机的所有用户执行最大权限:all privileges 但是!!! 我手欠,执行了个revoke

代码语言:javascript
复制
	mysql> revoke all privileges on *.* from root@'localhost';

导致这权限全无 变成了默认的usage

然后当你执行各种数据库命令的时候,包括增删改查什么的,就会发现: ERROR 1142 (42000): SELECT command denied to user 'root'@'localhost' for table 'user' 这个42000 错误表示:该用户目前没有SELECT 的权限… 然后就各种先办法恢复啊…

最后找到一种方法,也比较笨吧

1、先退出mysql,找到mysql的配置文件 我的文件在这里 ./etc.my.cnf

然后在配置文件添加:

代码语言:javascript
复制
    skip-grant-tables  跳过表的权限验证,用户可以执行增删改查

2、然后重新启动mysql,

代码语言:javascript
复制
    service mysqld restart

如果mysql没有注册,可以找到mysql/bin下面的mysqld,执行./mysqld restart 也是一样的

3、进入mysql,切换到mysql数据库,找到user表,查看user表的权限:

代码语言:javascript
复制
select * from user\G; //查看mysql所有用户信息

就能查到一下的信息,我这里是已经改好的All privileges状态, usage默认全都是N… 啥权限都没有

4、修改权限,

在mysql数据库中执行:

代码语言:javascript
复制
update mysql.user set select_priv='Y' where user='root';

缺少那个权限就该那个权限… 都改完了之后再执行:

代码语言:javascript
复制
	show grants;

就会发现: 权限又都回来了

代码语言:javascript
复制
这里说一下:
*.*  指 数据库名.表名 
root@'localhost' root主机下的所有用户,root是主机名,localhost是用户名,用户名可以设置成任意ip限制用户权限。

感谢几位大佬的博客,多多学习: https://blog.csdn.net/qq_38487155/article/details/82725873 恢复超级管理员权限方法 https://www.cnblogs.com/Richardzhu/p/3318595.html grant权限管理 讲的很容易理解 https://blog.csdn.net/wulantian/article/details/38230635 也是关于grant权限的讲解 https://www.cnblogs.com/kevingrace/p/5719536.html 关于grant还有revoke回收权限

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188545.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mysql grants 引发的权限不足问题[42000]
  • 基于mysql5.7.x
    • 1、先退出mysql,找到mysql的配置文件 我的文件在这里 ./etc.my.cnf
      • 2、然后重新启动mysql,
        • 3、进入mysql,切换到mysql数据库,找到user表,查看user表的权限:
          • 4、修改权限,
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档