Navicat for MySQL在连接数据库时出现1045-Access denied for user 'root'@'localhost'(using password:YES)问题?

大概一个多月没使用MySQL数据库了,今天在尝试跑之前的demo时出现了如下问题:

Navicat for MySQL在连接数据库时出现1045-Access denied for user 'root'@'localhost'(using password:YES)问题?

出现1045错误,于是上网查贴发现,出现1045就表明输入的用户名或密码错误被拒绝访问了

但是此时的我很好奇为什么我根本没改过密码却出现了这样的问题,于是在dos命令下用mysql -u用户名 -p密码尝试连接数据库,发现在dos命令下是可以登录数据库的。唯一的就是navicat for MySQL始终一如既往的出现这个毛病。网上查贴发现有人说安装了多个MySQL所致,但是打开电脑服务发现本人也就一个MySQL服务在运行;

Navicat for MySQL在连接数据库时出现1045-Access denied for user 'root'@'localhost'(using password:YES)问题?

本人安装的是MySQL5.7,直接安装在C盘的位置,根据网上的教程需要将bin目录下的my.ini文件修改在[mysqld]加上一句:

skip-grant-tables 这句代码的意思是MYSQL服务器不加载权限判断,任何用户都能访问数据库。

但是小编在找bin目录下找不到my.ini文件,

Navicat for MySQL在连接数据库时出现1045-Access denied for user 'root'@'localhost'(using password:YES)问题?

于是就在my-default.ini文件下进行修改(因为本人看到网上有人说找到my.ini或my-default.ini文件)然后尝试修改,首先关闭MySQL服务,在my-default.ini文件的[mysqld]下面加上:skip-grant-tables

然后重启服务,尝试登录MySQL数据库,mysql -uroot -p

Navicat for MySQL在连接数据库时出现1045-Access denied for user 'root'@'localhost'(using password:YES)问题?

 却出现上述问题,此时便发现更改完的my-default.ini文件没有生效,最后发现网上所说的my.ini或my-default.ini文件根本就是胡扯。然后开始尝试找my.ini文件,最后发现my.ini文件被隐藏了,在C盘下点击,查看,勾上隐藏的项目,就会出现如下图所示的programData文件夹:

Navicat for MySQL在连接数据库时出现1045-Access denied for user 'root'@'localhost'(using password:YES)问题?

 在programData文件夹下找到MySQL----MySQL server 5.7-----my.ini文件,使用记事本打开,在[mysqld]下一行加上:skip-grant-tables

Navicat for MySQL在连接数据库时出现1045-Access denied for user 'root'@'localhost'(using password:YES)问题?

 此时可能出现无法修改的情况,可以将文件复制到桌面,然后修改完直接拷贝到原始位置替换原文件即可!!

然后启动服务,在dos命令下输入:mysql -uroot -p

即可无需密码登录,登录上之后输入:use mysql;

update user set authentication_string = password('123456')  where user = 'root' ;

flush privileges;

(这里的图片小编就不贴了,因为整个过程忘记截图了,正常情况在这个步骤不会出错)

即可更改用户密码,然后删掉之前修改的my.ini中的代码!!!

重启服务即可成功连接navicat for mysql!!!

Navicat for MySQL在连接数据库时出现1045-Access denied for user 'root'@'localhost'(using password:YES)问题?