代码编织梦想

 话我就撂这儿了,只要你认真看完,你就能解决。

---

2022年4月20日 阅读量都已经19586次了

重新看了一下这一篇解决方案,感觉写的还是有点冗长的,

​​​​​​​一句话总结就是:登录root账户,给你的子账户赋权。

---

困了我一天一夜的问题终于解决了,问题也不知道是怎么产生的,点击“用户”或者修改“information_schema”的值就会提示错误,似乎是因为权限不足,错误入下图。

首先你要知道数据库的用户是怎么回事。每个数据库都有账号密码,连接特定的数据库需要对应的账号密码,这个很容易理解,PHP里的mysqli_connect你们也用的多了。主机上的MYSQL可以有很多个数据库,这个MYSQL有一个root账户,这个账户可以随意操作其他数据库账户的权限。“information_schema”这个数据库需要比较大的权限才能修改,不然只能只读。root账户自然是可以操作“information_schema”的,Event_Scheduler就需要root账户开启。

这里的问题就在于user1的权限不足,我们就需要用root赋予user1更大的权限。

那么root账号是啥,密码又是啥?

(环境说明)我搭建的环境:在自己的台式主机上直接安装的宝塔软件,然后选择的5.5版本的mysql安装。安装的时候会提示输入数据库的密码,这里填入的是root密码。之后会用到,不是从宝塔安装的小伙伴们也别忘了自己mysql的root密码,密码忘了可以重装(或者点下边那个“密码”按钮强制修改)。

这里连接sql_dora数据库用的账号是sql_dora,密码是pwd1.

需要说明的是这个账号,它是没有大权限的。而root这个用户名才是有真正大权限的,它的密码是创建数据库时你输入的那个。

对了,那怎么验证你的root账号的密码是否正确呢?

CMD法(建议跳过,看下一个Navicat法):

1.找到你的MYSQL安装目录

2.打开CMD,输入命令。

Microsoft Windows [版本 10.0.17134.885]
(c) 2018 Microsoft Corporation。保留所有权利。

//切换到D盘盘符
C:\Users\Administrator>D:

//切换到MYSQL目录下,目录获取方法请看上一步骤
D:\>cd D:\BtSoft\WebSoft\mysql\MySQL5.5\bin

//用root登陆MYSQL,指令:mysql -hlocalhost -uroot -p密码
D:\BtSoft\WebSoft\mysql\MySQL5.5\bin>mysql -hlocalhost -uroot -p123456

//登陆成功后的返回
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 672
Server version: 5.5.54-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

//不清楚这是干啥的(滑稽
mysql> use mysql
Database changed

//输出用户名为sql_dora的信息
mysql> select * from user where user='sql_dora';
+-----------+----------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+
| Host      | User     | Password                                  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin | authentication_string |
+-----------+----------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+
| 127.0.0.1 | sql_dora | *CBC40DD3286B5BBB6F9F3582C7760D52524ABC16 | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          |            |             |              |             0 |           0 |               0 |                    0 |        | NULL                  |
+-----------+----------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+
1 row in set (0.00 sec)

mysql>

当然,执行到第三步就行了,我们只测试root密码是不是对的。

Navicat法:

如下图,用户名填写root,密码填入,测试连接就行了。(我也是写完CMD法之后突然想起有这么个直接测试的…)

用root账户登录之后我们就获得了最高权限,接下来给我们的sql_dora用户赋权。

下图是点击“用户”就会提示1142错误的默认权限情况。

勾选上Select之后,保存。再打开数据库,以sql_dora之名,你会发现Select错误就不会再出来了!

如果需要其他权限,请适当勾选,权限过多不太好,哪天MYSQL被注入了,drop你的库你就傻眼了。

(最后,最后,最后)

我发现一个很严肃的问题,直接用root账号操作不就好了,干嘛还得麻烦给sql_dora赋权。

等等,好像是有那么个必要的,毕竟PHP连接数据库不能用root啊,风险太高。Navicat私下root还行,上PHP最好还是给小账户赋权一下,用小账户,把风险降到最低。

 就写到这里过了,给莫名其妙出了问题的小伙伴们参考参考。经过这么一搞,自己对之前模模糊糊的MYSQL用户机制有了那么个头绪,至少没那么头大了。

看完了我的文章,你的问题应该解决了,点个赞再走呗~

啥?你说啥?你还想关注我?那好吧,我接受了!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CaliXz/article/details/98945506

navicat操作mysql遇问题1142-create command denied to user×××的解决_jonty1024的博客-爱代码爱编程

今天使用Navicat的命令列界面操作MySQL的时候遇到了1142-create command denied to user×××的问题,于是在网上查了一下,很简单: 给用户添加CREATE,DROP权限。 Mysql命令: [sql] mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DRO

mysql报错 1142 - select command denied to user 'root_ssm'@'localhost' for table 'user'_我是曾老师的博客-爱代码爱编程_select command denied to user

错误信息的字面意思是:表“user”拒绝用户“root_ssm”@“localhost”的SELECT命令 ,很明显用户没有查看user表的权限,用管理员账号给他授权就行了   一、使用客户端授权(Navicat Premium 12) 1、使用root用户登陆mysql 2、新建查询,输入指令: use mysql; select * f

Mysql Navicat连接时的错误 1142-create command denied to user×××-爱代码爱编程

使用Navicat与自定义用户连接,显示成功。但在后续为该用户创建新的database时,出现1044错误:数据库拒绝为自定义用户‘xiaozhan’创建database。 查了一些资料,都说是用户权限的问题,但在mysql中为该自定义用户修改权限也没有用,因此尝试使用root用户连接Navicat。现在Navicat中有两个用户(其中root用户可以显示

SQLSyntaxErrorException: SELECT command denied to user ‘XXXXX‘@‘xxxx‘ for table ‘XXXX‘ 异常解决-爱代码爱编程

项目场景: springboot项目集成了mybatis查询mysql数据库报Caused by: java.sql.SQLSyntaxErrorException: SELECT command denied to user 'hanwebJB'@'XXXXX' for table 'JIS_LICENSE' 问题描述: 在数据查询的时候报错,报错

mysql查询表时报1142_MySQL错误:#1142-拒绝用户的SELECT命令-爱代码爱编程

我在其中一台服务器上进行某些查询时遇到麻烦。在我测试过的所有其他地方,它都可以正常工作,但是在我要使用的服务器上,它无法正常工作。 关于以下SQL: SELECT facturen.id AS fid, projecten.id AS pid, titel, facturen.totaal_bedrag AS totaal, betaald

1142 - SELECT command denied to user ‘root‘@‘localhost‘ for table ‘user‘-爱代码爱编程

报错信息:问题分析: 用户权限不足,需要分配其一定的权限。解决办法 (1)找到my.ini并打开,在mysqld下面加上一行"skip-grant-tables"(部分操作会受到限制)(方法二:打开cmd命令提示符,进入mysql.exe所在的文件夹。输入命令 mysqld --skip-grant-tables 回车,此时就跳过了mysql的用户验证。)

mysql 授权用户cesuser 报错 1142 - select command denied to user ‘root‘@‘localhost‘ for table ‘user‘_meetlight的博客-爱代码爱编程

如果mysql 授权用户cesuser 报错 1142 - SELECT command denied to user 'root'@'localhost' for table 'user' 执行1-5即可 --1、查看root用户权限 show grants for root@'localhost'; --2、修改root用户权限 updat