Access denied for user 登录密码错误情况
作者:互联网
报错信息:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
可能情况:
- MySQL服务未启动;
- 访问端口不正确;
- 配置文件出现的错误;
- 远程登录权限不够;
- 密码错误无法登录;
- 其他情况。
这里讨论情况:由于密码错误导致的报错,输入密码错误或忘记密码情况;
拟完成的目标:通过重置密码,修改root用户密码;
测试环境:本地MySQL,MySQL_8.0
大致测试流程:
- 关闭MySQL服务;
- 设置跳过登录校验;
- 直接无密码登录root;
- 更新root密码为空;
- 重新开启MySQL服务;
- 通过root和空密码登录MySQL;
- 修改root密码。
正式流程:
1. CMD命令行通过密码登录本地MySQL失败,这里考虑密码错误情况,或忘记密码情况
2. 停止本机MySQL服务,并跳过密码验证,这里为CMD窗口1
net stop mysql
mysqld --console --skip-grant-tables --shared-memory
3.保持上述窗口1,打开新的窗口2,进入mysql数据库(其user表存放登录信息)
mysql -uroot
use mysql
4. 进入mysql数据库,查找user表,查询主机,用户名,密码等信息,可以看到密码 authentication_string 列是加密的内容
select host,user,authentication_string from mysql.user;
5. 由于密码是加密存放的,这里更新user表,将新密码置为空,这种加密规则下,空内容加密也是为空,可以推出新密码即为空,再次查询user表信息
select host,user,authentication_string from mysql.user;
6. 通过Ctrl+C终止窗口1的跳过验证,并重启mysql服务
net start mysql
7. 然后可以打开使用任意的CMD窗口都行,直接无密码登录MySQL的root账号,密码为空
mysql -uroot
8. 通过命令修改root用户的密码即可,这里设置为 123456
alter user 'root'@'主机地址' identified by '新密码'
alter user 'root'@'localhost' identified by '123456'
9. 退出MySQL,尝试通过新的账号密码登录 MySQL
标签:登录,mysql,denied,Access,密码,user,MySQL,root 来源: https://www.cnblogs.com/zq-zq/p/16337533.html