navicat中mysql数据库可以密码连接,但是localhost_3306进不去。

**我详细_的叙述一下经过:**
首先是一道题:“以user1用户身份登录数据库”,由于不能进入,所以根据别人的CSDN博客文章进行了修改:
图片说明
如图所示,当然他的博客中有错误,但是大体正确。 按上述步骤修改完后发现:
“原来进入mysql直接命令行敲mysql便好,但是现在必须账号密码输入”,然后直到下面这道题,就出现了如下问题:
图片说明
我表示一脸懵逼,因为自己是第一次进行此类操作。。。别急,问题还产生更多:
我发现,“navicat可以在以前的基础上输入root密码可以连接mysql数据库,但是会出现下述问题”:
图片说明
图片说明
无助的我,表示更加的懵逼。。。
求大佬解答。

在mysql5.7以上版本中,设置密码必须为高强度的密码(大、小写字母,数字,特殊字符),而且不能低于八位,你虽然将密码改成了123456,但是我想你应该还没有把 grant-skip-tables 这个进程杀掉,所以你通过弱口令登录还能登录的上去,
因此在你修改完密码后,你需要将配置文件里面的 grant-skip-tables 去掉,重启下服务,如果这次还能登录进去,你用navicate连接应该是没有问题的
还有刚才看到你有授权的操作,我们常用的格式为 :
grant all privileges on . to 用户名@'localhost' identified by '密码'; 其中*.*,第一个* 代表授权的表名,* 号指所有的表

http://www.chumi.cn[http://www.chumi.cn](http://www.chumi.cn "http://www.chumi.cn")

检查下你连的是不是你希望连的那个数据库。你本机可能有多个mysql实例或者多个数据库。

1.user1无法登陆,可能是因为未对访问的数据库授权
2.下面的就是花式操作了,很容易出现问题,这种时候,应该先备份系统,方便还原
3.与其寻找偏方,而解决问题的时间,可能重装一次mysql就解决了(重装也有风险,没准最后闹得重装系统 or 还原系统)

# GRANT ALL On student TO USER_1@loaclhost
你这里的localhost拼错了

 重置密码

localhost改成127.0.0.1

没网,有网就不报错了图片说明