数据库报错:1045-Access denied for user “root“ @localhost (using password: yes)
目录
一.前言
二.分析原因
三.解决问题
3.1 将现在的数据库全部卸载
3.2 直接修改数据库密码
方法一.用set password命令
方法2:用mysqladmin
方法3:用update直接编辑user表
方法4:忘记密码处理方式
一.前言
在我们开发中肯定会和数据库打交道, 我的电脑发生点小问题, 重做系统之后自己的环境和配置需要重新配置, 数据库也是重新下载, 在我安装数据库之后, 再打开Navicat 本地数据库时报错1045-Access denied for user "root" @localhost (using password: yes) 我们的数据库密码过期了, 要知道我的数据库新下载, 新配置的环境变量, 对于这个问题为和我同样问题的小伙伴解答一下, 希望同学们不要走弯路.
二.分析原因
在我发生这个问题, 查阅了好多资料.
问题1: 之前我们的数据库再重做之后有残留的数据库文件
问题2: 我们安装数据库时配置有问题
三.解决问题
3.1 将现在的数据库全部卸载
数据库文件全部删除, 重新下载mysql, 安装数据库步骤就不详细解释了,可以参考博客:Windows 安装MySQL 8.0 超详细教程(mysql 8.0.30)_windows安装mysql8.0_程序前行者的博客-CSDN博客
3.2 直接修改数据库密码
注意:要用管理员运行命令行
方法一.用set password命令
(1)首先要先登录MySQL:
(2) 修改密码格式为:
set password for 用户名@localhost = password('新密码'); 一定不要忘记最后面的分号,例如:我们把密码改成成123:
set password for root@localhost = password('root123');
出现以下界面说明修改成功:
方法2:用mysqladmin
利用mysqladmin,我们不需要先登录,但是需要直到原来的密码;我们可以直接修改,修改密码格式为:
mysqladmin -u用户名 -p旧密码 password 新密码,注意,password前面没有 - ,例如:我们再把密码改成123456:
mysqladmin -uroot -p123 password 123456
出现以下界面说明修改成功
方法3:用update直接编辑user表
(1)首先要先登录MySQL
(2)然后依次输入:
use mysql # 连接权限数据库
update user set password=password('521') where user='root' and host='localhost'; # 改密码
flush privileges; # 刷新权限
出现以下界面说明修改成功:
方法4:忘记密码处理方式
1. 关闭正在运行的MySQL服务。
win+r输入:services.msc回车,找到MySQL,手动关闭MySQL服务
2. 打开DOS窗口,利用cd命令转到mysql的bin目录:建议直接找到mysql的bin目录下输入cmd回车
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(刚才那个DOS窗口已经不能动了),转到mysql的bin目录。
5. 输入mysql回车,如果上面修改成功,将直接出现 mysql> 这样的提示符。
6. 连接权限数据库: use mysql
6. 改密码:update user set password=password("123") where user="root";
7. 刷新权限(必须步骤):flush privileges; (不要忘记分号)
8.exit或者ctrl+c退出,进行重新登陆