问题:mysql 登录报错:ERROR 1045 (28000)
还在学习代码写前后端分离项目,突然点击登录时,页面爆红:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)或
mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
在Navicat Premium 16中点击,也不行
在命令提示符中,还是报错
解决步骤
首先以管理员身份运行命令提示符
在电脑中搜索命令提示符,以管理员身份运行
1.关闭mysql服务
输入命令
net stop mysql
ps:这里,我的名字是MYSQL5,一般的是mysql
2.设置跳过安全检查
mysql所在目录的my.ini中添加skip-grant-tables
——作用: 跳过密码输入 (我是用VSCode打开的,没有的用记事本也行)
ps:加进去后,记得保存
[client]
port=3306
default-character-set=utf8
[mysqld]
# 设置为自己MYSQL的安装目录
basedir=D:\MySQL\mysql-5.7.42-winx64\
# 设置为MYSQL的数据目录
datadir=D:\MySQL\mysql-5.7.42-winx64\data\
port=3306
character_set_server=utf8
# 跳过安全检查
skip-grant-tables
3.开启MYSQL服务
在命令提示符中 ,输入命令
net start mysql
这里,我的名字是MYSQL5,一般的是mysql
4.连接数据库
ps:在之前配置my.ini文件时,有这样一段命令skip-grant-tables
,作用是跳过安全检查
输入命令
mysql -u root -P 3306 -h localhost -p
会提示输入密码,直接回车就会登陆成功
这里不小心填了密码也没事,我的是123456
5.重新修改密码
输入命令
use mysql;
继续输入(填自己的新密码)
或许可以先看下面的ps
update user set authentication_string=password('你的密码') where user='root';
刷新权限
密码修改成功
ps:
我直接复制过去后就直接运行了,所以第三次,在外面把自己密码改好了,才复制进去,我改的还是原密码:123456
update user set authentication_string=password('123456') where user='root';
6.最后一步重启MYSQL服务
打开my.ini文件删除skip-grant-tables这段代码,重新启动MYSQL服务:
有两种方式
1.最开始关闭mysql的方法
2.可以在任务管理器里关
鼠标停在任务栏空闲地方,右击鼠标右键
搜索后,找到MYSQL,右击鼠标右键结束任务
最后再开启服务器
7.再次打开Navicat Premium(这一步,可能有,可能没有,看看自己会出现这个弹窗不)
输入密码即可,我的还是:123456
主要参考+原文链接:mysql5.7.42详细安装步骤,附压缩包_mysql5.7.42安装教程-CSDN博客
参考链接:mysql安装密码问题_mysql安装时密码测试不过-CSDN博客
主要原因分析:参考链接:mysql8报错纠正:解决‘root‘@‘localhost‘访问被拒问题_1045 -access denied for user 'root'@'localhost' (u-CSDN博客
原因分析:mysql连接报ERROR 1045 (28000)_mysql error 1045(28000)-CSDN博客