Windows MySQL 8.0 ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘
# 前言
# 环境
操作系统:Windows10/11 MySQL版本:MySQL 8.0.XX
# 问题描述
在MySQL 8.0登录中遇到ERROR 1045 (28000): Access denied for user 'root'@'localhost'
的问题,或者是忘记root密码时的解决办法。
# 解决思路
- 重装
- 不重装,跳过MySQL密码认证
# 解决步骤
重装MySQL服务步骤不做赘述,请参考。 跳过MySQL密码验证步骤如下:
# 关闭MySQL服务
管理员身份运行cmd,并执行下面的指令关闭MySQL服务。
net stop mysql
# 跳过密码认证
进入MySQL服务,修改密码
cmd进入到MySQL安装目录下的bin
目录,执行
mysqld --console --skip-grant-tables --shared-memory
# 进入服务
mysql -uroot -p
密码直接enter跳过即可
# 选择数据库
use mysql;
# 修改密码
因为8.0版本已经没有passwd函数了,所以得执行以下命令
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
第一个root
是用户名,后面的localhost
是本机访问,后面的password
是自定义的密码
注意:如果在执行该步骤的时候出现
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
错误。则执行下flush privileges
命令,再执行上述命令即可。