出现了 ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES) 的报错,一般原因为 密码输入错误。下面是重置MySQL密码的步骤,整合自deepseek,本人略作补充。
步骤 1:停止 MySQL 服务
- 以管理员身份打开命令提示符。
- 停止 MySQL 服务:
net stop mysql
- 如果服务名称不同(如
mysql80
),替换为实际名称:net stop mysql80
- 如果服务名称不同(如
步骤 2:以跳过权限检查的方式启动 MySQL
- 输入以下命令启动 MySQL(跳过权限验证):
mysqld --skip-grant-tables --shared-memory
--skip-grant-tables
:绕过权限验证。--shared-memory
:在 Windows 上使用共享内存连接(可选,但推荐)。
步骤 3:登录 MySQL 并修改密码
-
新开一个命令提示符窗口(保持原窗口运行),输入以下命令登录 MySQL:
mysql -u root
- 此时无需密码即可登录。
-
在 MySQL 命令行中刷新权限并修改密码:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
- MySQL 5.7 及以下版本(使用
SET PASSWORD
):SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的新密码');
- MySQL 5.7 及以下版本(使用
-
退出 MySQL:
exit;
步骤 4:重启 MySQL 服务
- 返回第一个命令提示符窗口,按
Ctrl + C
停止 MySQL 进程。 - 正常启动 MySQL 服务:
net start mysql
步骤 5:验证新密码
- 使用新密码登录 MySQL:
mysql -u root -p
- 输入新密码,确认是否成功登录。
常见问题解决
-
服务无法停止:
- 确保以管理员身份运行命令提示符。
- 检查服务名称是否正确(如
mysql80
)。
-
跳过权限启动失败:
- 检查
my.ini
文件中的basedir
和datadir
路径是否正确。 - 确保没有其他进程占用 MySQL 端口(3306)。
- 检查
-
修改密码时报错:
- MySQL 8.0+ 必须使用
ALTER USER
命令。 - 如果报错
ERROR 1290
,确保执行了FLUSH PRIVILEGES;
。
- MySQL 8.0+ 必须使用
-
重启后仍无法登录:
- 检查防火墙是否允许 MySQL 端口(3306)。
- 查看 MySQL 错误日志(默认位于
data
目录下的.err
文件)。
示例:修改密码命令
-- MySQL 8.0+
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '这里输入你的新密码';
下面是回车后正确的运行结果
总结
- 核心步骤:停止服务 → 跳过权限启动 → 修改密码 → 重启服务。
- 确保所有命令以管理员权限运行。