mysql连接数据库报错:1045 - Access denied for user ‘root‘@‘localhost‘ (using password:YES)

初次学习使用mysql,今天忘记之前的密码,出现了Access denied for user ''@'localhost' (using password: YES)以及1045 - Access denied for user ‘root‘@‘localhost‘ (using password:YES)的报错,最后如愿解决,将过程经历记录下来,其实网上有很多文章,但是不一定每篇解决方案都适用自己的软件或者库的版本,所以走了一些弯路;

1、现象以及原因

数据库版本:8.0.28

Navicat连接mysql数据库报错:1045 - Access denied for user ‘root‘@‘localhost‘ (using password:YES/NO)yes或no表示是否有无连接数据库的密码,原因大概率是忘了密码,对我来说是随意修改了密码(Navicat密码栏是虚位显示,忘记密码的话,不要看到几位就输几位)

而Access denied for user ''@'localhost' (using password: YES)是mysql默认不支持远程连接,需要修改用户表中的权限;两个问题的解决方法都记录以下;

2、1045 - Access denied for user ‘root‘@‘localhost‘ (using password:YES/NO)【解决方法】

1.打开cmd,点击“开始”->“运行”(快捷键Win+R),输入cmd
2.停止:输入 net stop mysql(mysql是数据库服务名称,如果你的不是就改成对应的名称,比如我是mysql8,start也是同理)
3.跳过权限:输入mysqld --console --skip-grant-tables --shared-memory

跳过权限这一步有一个小问题,很多文章会介绍在my.ini中加入[mysqld]这个条目下加入 skip-grant-tables

这一句可能会导致后面我们重启数据库服务无法启动,然后出现报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES),因此建议还是直接用命令

4、新建一个cmd窗口(用管理员权限)

5、cd进入mysql安装包的bin目录,这里也可以在在bin目录中的文件路径处输入cmd进入

6、无密码连接mysql

 7、重置数据库的密码

use mysql

update user set authentication_string='' where user='root';(这里也有点小问题,我用这个命令无法重置,而使用set password for root@localhost='新密码';

就成功了,前一个命令的错误提示如下,如果有相同情况,可以尝试这个方法

8、启动mysql服务

9、关闭前面的cmd窗口,无密码进入mysql

 至此,第一个问题已经解决了;

3、Access denied for user ''@'localhost' (using password: YES) 【解决方法】

这个原因是由于mysql中默认支持本地连接,不支持远程连接,因此如果要在代码中远程连接,需要改一点表中的属性

1、查看root用户是否仅允许本地localhost登录,

如果是,就改成%, update user set host ="%" where user="root";表示任意IP都可登录,注意这一步中是双引号

2、修改后查看是否host是否已经修改完成

3、最后 flush privileges;清掉缓存

至此都是其他博主已经总结的方法,我只不过借鉴了,当然我又遇到什么问题呢?

我已经更改了root用户的host,但是我想修改密码(前面是空密码),出现如下提示

发现我不能使用localhost,而应该使用%;

ALTER USER 'root'@'%' IDENTIFIED BY '新密码';

这只是一个很傻的错误,但是如果有朋友和我一样前面顺序反了,要注意这个问题。

flush privileges;      --- 最后再清一下缓存;

exit         --退出

至此已经圆满解决,我会将参考文章放在最后,感谢提供帮助的各位博主!

如有异议,请联系作者删除。

MySQL8.0修改Root密码的方法步骤_Mysql_脚本之家

报(ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘),通过重置MYSQL密码来解决_access denied for user 'root-CSDN博客

Access denied for user ‘‘@‘localhost‘ (using password: YES)错误解决方法_access denied for user ''@'localhost' (using passw-CSDN博客数据库报错1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES)解决方式_1045 access denied for user root-CSDN博客Access denied for user ''@'localhost' (using password: YES)错误解决方法_access denied for user'binbin'@'localhost'(using p-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值