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

【原创】ERROR 1142 (42000): command denied to user 引发的权限不足问题[亲测有效][通俗易懂]mysqlgrants引发的权限不足问题[42000]基于mysql5.7.x1、先退出mysql,找到mysql的配置文件我的文件在这里./etc.my.cnf2、然后重新启动mysql,3、进入mysql,切换到mysql数据库,找到user表,查看user表的权限:4、修改权限,基于mysql5.7.x正常创建数据库查看权限>>>showgrants;…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

基于mysql5.7.x

正常创建数据库 查看权限>>> show grants; 在这里插入图片描述
会对root主机的所有用户执行最大权限:all privileges
但是!!!
我手欠,执行了个revoke

	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

然后在配置文件添加:

    skip-grant-tables  跳过表的权限验证,用户可以执行增删改查

2、然后重新启动mysql,

    service mysqld restart

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

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

select * from user\G; //查看mysql所有用户信息

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

4、修改权限,

在mysql数据库中执行:

update mysql.user set select_priv='Y' where user='root';

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

	show grants;

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

这里说一下:
*.*  指 数据库名.表名 
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.net/188545.html原文链接:https://javaforall.net

(0)
上一篇 2026年4月16日 上午11:40
下一篇 2026年4月16日 上午11:46


相关推荐

  • 数据库实例名

    数据库实例名一 数据库实例名什么是数据库实例名 数据库实例名是用于和操作系统进行联系的标识 就是说数据库和操作系统之间的交互用的是数据库实例名 实例名也被写入参数文件中 该参数为 instance name 在 winnt 平台中 实例名同时也被写入注册表 数据库名和实例名可以相同也可以不同 在一般情况下 数据库名和实例名是一对一的关系 但如果在 oracle 并行服务器架构 即 oracle 实时应用集群 中 数据库名和实例名是一对多的关系 查询当前数据库实例名方法一 selectinstan namefrom

    2026年3月26日
    1
  • 技术向销售学什么(一)

    技术向销售学什么(一)

    2021年8月15日
    51
  • 如何一键远程开机,远程唤醒功能[通俗易懂]

    如何一键远程开机,远程唤醒功能[通俗易懂]使用ToDesk可以在千里之外为您的设备远程进行开机操作视频教程:https://update.todesk.com/wol.mp4ToDesk支持将关机状态下的设备(Windows,macOS,Linux)唤醒开机.这需要满足2个条件:1.开启电脑的网卡WakeOnLAN功能2.您要开机的电脑设备在同一交换机(路由器下),需要有另外一个ToDesk端在运行.比如其他的电脑或手机,iPad,Android电视盒子,或家人的手机安装一个ToDesk,这样您就可以在千里之外为您的电脑

    2022年6月2日
    85
  • Android面试题集合[通俗易懂]

    Android面试题集合[通俗易懂]http://yuweiguocn.github.io/android-interview-list/Java基础简述题(一)&和&&的区别。Get和Post的区别httpresponsecodeudp连接和TCP的不同之处java中的softreference是个什么东西抽象类和接口的区别谈一下对java中的abstract的理解Overload和Override的区别St

    2022年5月20日
    38
  • MyBatis精通之路之分页功能的实现(数组分页、sql分页、拦截器,RowBounds分页)

    MyBatis精通之路之分页功能的实现(数组分页、sql分页、拦截器,RowBounds分页)前言 学习 hibernate amp mybatis 等持久层框架的时候 不外乎对数据库的增删改查操作 而使用最多的当是数据库的查找操作 而当数据库数据过多时 符合查找条件的数据可能也会是很庞大的数据 往往在这个时候 我们都不会希望一次性的将所有的数据一起性读取出来 并且显示在 UI 界面上 常用的操作 就是对查找到的数据进行分页 每次处理小部分数据 这样每次处理的数据量就会在可控的范围 UI 的展示也会很协

    2026年3月26日
    3
  • python协程系列_python的协程

    python协程系列_python的协程协程协程(Coroutine),又称微线程,纤程。(协程是一种用户态的轻量级线程)作用:在执行A函数的时候,可以随时中断,去执行B函数,然后中断B函数,继续执行A函数(可以自动切换)

    2022年7月31日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号