其他分享
首页 > 其他分享> > 1142 - SELECT command denied to user ‘root‘@‘localhost‘ for table ‘user‘

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的用户验证。)
在这里插入图片描述
(2)重启mysql服务
(3)修改权限
①直接输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库。
在这里插入图片描述
②输入show databases; 可以看到所有数据库说明成功登陆。
在这里插入图片描述
③其中mysql库就是保存用户名的地方。输入 use mysql; 选择mysql数据库。show tables查看所有表,会发现有个user表,这里存放的就是用户名,密码,权限等等账户信息。
在这里插入图片描述
④输入select * from user where user=‘root’ and host=‘localhost’ 来查看用户信息。在显示的列表中显示:root用户的localhost的权限都是’N’,表示root用户本地登陆不具有权限
在这里插入图片描述
⑤输入以下命令,修改权限

update user set `Select_priv` = 'Y',`Insert_priv` = 'Y',`Update_priv` = 'Y',`Delete_priv` = 'Y',`Create_priv` = 'Y',`Drop_priv` = 'Y', `Reload_priv` = 'Y',`Shutdown_priv` = 'Y',`Process_priv` = 'Y',`File_priv` = 'Y', `Grant_priv` = 'Y', `References_priv` = 'Y',`Index_priv` = 'Y',`Alter_priv` = 'Y', `Super_priv` = 'Y',`Show_db_priv` = 'Y',`Create_tmp_table_priv` = 'Y',`Lock_tables_priv` = 'Y',`Execute_priv` = 'Y',`Repl_slave_priv` = 'Y', `Repl_client_priv` = 'Y',`Create_view_priv` = 'Y', `Show_view_priv` = 'Y', `Create_routine_priv` = 'Y',`Alter_routine_priv` = 'Y',`Create_user_priv` = 'Y', `Event_priv` = 'Y',`Trigger_priv` = 'Y',`Create_tablespace_priv` = 'Y' where user='root' and host='localhost';

结果如下,
在这里插入图片描述
OK,问题解决!(记得将在my.ini加的一行代码去掉,然后重启mysql才算完成!)

标签:1142,Create,command,user,mysql,权限,root,priv
来源: https://blog.csdn.net/blbyu/article/details/118642175