ERROR 1045 (28000): Access denied for user...错误的解决

刚连上数据库,第二天又连不上了,navicat 报错1045,到网上百度了一番,说是和sqlserver有关系,我就把sqlserver服务都改成手动的了,还是不行。明明是密码都正确,可就是连接不上,后来就去改密码了,具体原因现在都想不明白,我也没找到解释的原因,只是找到了解决办法,当登录MySQL时出现ERROR 1045(2800)提示时(如图一), 就表明你输入的用户名或密码错误被拒绝访问了, 以下就介绍一种不用卸载数据库重装(卸载后数据库中信息会丢失)来解决这个问题的方法:

先设置mysql的环境变量:

https://blog.csdn.net/qq_42036869/article/details/84672060

打开cmd,Windows操作系统为例:错误信息


 

1.修改MySQL安装目录下的my.ini配置文件,使登录时跳过权限检查.

打开后,搜索mysqld关键字

找到后,在mysqld下面添加skip-grant-tables,保存退出。

PS:若提示不让保存时,可以将该文件剪切到桌面,更改保存后再复制到mySQL目录下

 

ERROR 1045 (28000): Access denied for user...错误的解决_第1张图片

这样,是用于跳过密码问题,但是呢,这并不能彻底解决!

2.停止MySQL服务.输入

  net stop mysql

3.启动MySQL服务.输入

net start mysql

在任何路径目录下,都可以关闭/重启mysql的服务呢。(因为,之前,已经配置全局的环境变量了)

4.登录MySQL,此时提示输入密码,直接回车即可进入MySQL.然后通过SQL语句修改root用户的密码.

mysql -u root -p

ERROR 1045 (28000): Access denied for user...错误的解决_第2张图片

5. 输入

use mysql;

ERROR 1045 (28000): Access denied for user...错误的解决_第3张图片

6.输入

update user set password=password("123456") where user="root";12345是我自己设的,根据自己的改变

出现Query OK, 1 rows affected (0.04 sec)Rows matched: 1 Changed: 1 Warnings: 0

7.刷新数据库

 flush privileges;

8.退出

quit

9.改好之后,一定要记得再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql服务就可以了。不改的话数据库跟个公交车似的

输入net stop mysql 

      net start mysql

      mysql -u root -p

输入新的密码,看能否连接成功

参考:https://jingyan.baidu.com/article/3ea51489e6cfbe52e61bba25.html  

https://blog.csdn.net/tiankongbubian/article/details/77119751

注意:连接成功之后可能之前的数据库就打不开了,需要新建连接,改一个用户名,可能是因为改了密码的缘故吧,哈哈,我实在是没办法了,学习mysql有种想跑路的赶脚

你可能感兴趣的:(数据库)