mysql报错 1142 - SELECT command denied to user 'root_ssm'@'localhost' for table 'user'

错误信息的字面意思是:表“user”拒绝用户“root_ssm”@“localhost”的SELECT命令 ,很明显用户没有查看user表的权限,用管理员账号给他授权就行了

 

一、使用客户端授权(Navicat Premium 12)

1、使用root用户登陆mysql

mysql报错 1142 - SELECT command denied to user 'root_ssm'@'localhost' for table 'user'_第1张图片

2、新建查询,输入指令:

use mysql;

select * from user where user='root_ssm';

SQL语句where后面的条件写要授权的那个用户名

mysql报错 1142 - SELECT command denied to user 'root_ssm'@'localhost' for table 'user'_第2张图片

3、执行语句,查看用户的信息

mysql报错 1142 - SELECT command denied to user 'root_ssm'@'localhost' for table 'user'_第3张图片

上图标红的地方的值为‘N’,表示没有权限,将其改为Y就行了。

mysql报错 1142 - SELECT command denied to user 'root_ssm'@'localhost' for table 'user'_第4张图片把所有值为‘N’的列改为'Y',改好之后记得一定要重启服务。

 

二、使用Mysql的命令行客户端

1、root用户登陆mysql

mysql报错 1142 - SELECT command denied to user 'root_ssm'@'localhost' for table 'user'_第5张图片

2、查看'root_ssm'用户的信息

use mysql;

select * from user where user='root_ssm';

mysql报错 1142 - SELECT command denied to user 'root_ssm'@'localhost' for table 'user'_第6张图片

同Navicat Premium 12中的一样,查出来的都是'N',将它们都改为‘Y’就行了。

 

3、修改root用户的localhost权限

update user set Select_pri='Y' where user='root_ssm'

根据查询结果中的列名,一个一个的写update语句修改,

全部改好后再刷新MySQL的系统权限相关表:

flush privileges;

 4、修改好后查看表信息

mysql报错 1142 - SELECT command denied to user 'root_ssm'@'localhost' for table 'user'_第7张图片

之后重启mysql服务,权限就都有了。改权限的时候有点上头,全给他改了,自己可以根据实际缺少的权限,进行相应的授权

你可能感兴趣的:(mysql,1142)