🔐 我是如何在 Windows 上找回 MySQL Root 密码(MySQL 8.0)——一步一步

发布: (2026年1月8日 GMT+8 15:23)
4 min read
原文: Dev.to

Source: Dev.to

封面图片:🔐 我在 Windows(MySQL 8.0)上恢复 MySQL root 密码的步骤指南

概览

忘记 MySQL root 密码的感觉就像世界末日——尤其是当你还是学生或新人,MySQL 竟然拒绝连接时。我最近就在 Windows + MySQL 8.0 上遇到了同样的问题,花了好几个小时只得到类似的错误:

ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306'

经过大量的尝试与错误,我最终在不丢失任何数据的情况下解决了它。下面就是对我 100 % 有效的方法。

问题概述

  • 操作系统: Windows 10/11
  • MySQL 版本: 8.0.x
  • 问题: 忘记 MySQL root 密码,MySQL 服务不允许登录。
  • 尝试过的办法: --skip-grant-tables 方法一直失败。

实际有效的解决方案(Init File 方法)

此方法安全、官方,即使其他方法失效也能奏效。

步骤 1:停止 MySQL 服务

  1. Win + R,输入 services.msc 并回车。
  2. 找到 MySQL80(或你安装时的服务名称)。
  3. 右键 → 停止

步骤 2:创建密码重置文件

  1. 打开 记事本
  2. 粘贴以下 SQL:
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'TempPass@123';
  1. 将文件另存为 reset.sql(确保扩展名是 .sql,而不是 .txt),保存路径为:
C:\Users\<your‑username>\Documents\

步骤 3:使用 Init File 启动 MySQL

以管理员身份打开 命令提示符,运行:

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

然后使用 init 文件启动 MySQL:

mysqld --init-file="C:\Users\<your‑username>\Documents\reset.sql" --datadir="C:\ProgramData\MySQL\MySQL Server 8.0\Data"

预期结果

  • 终端会出现“卡住”的状态(没有提示符)。
  • 没有错误信息显示。
  • MySQL 服务器正在运行,说明密码重置命令已成功执行。

步骤 4:停止临时服务器

在终端中按 Ctrl + C 结束进程,然后关闭窗口。

步骤 5:正常启动 MySQL

  1. 再次打开 services.msc
  2. 启动 MySQL80

步骤 6:使用新密码登录

mysql -u root -p

输入 reset.sql 中设置的密码(TempPass@123),你应该会看到:

Welcome to the MySQL monitor

步骤 7(重要):设置自己的安全密码

在 MySQL 监视器中执行:

ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'YourOwnStrongPassword@123';
FLUSH PRIVILEGES;

清理(可选但推荐)

删除之前创建的重置文件:

del "C:\Users\<your‑username>\Documents\reset.sql"

我常犯的错误(供你避免)

  • 在 MySQL 服务器未运行时尝试连接。
  • 使用了错误的 datadir
  • 忘记调整 Windows 文件权限。
  • 误以为“卡住”的终端表示出错(实际上表示成功)。

最后感想

  • 如果你在 Windows 上卡住了 MySQL root 访问权限:不要慌不要重新安装 MySQL也不要删除数据
  • Init‑file 方法是我找到的最可靠的修复手段。

如果这篇文章对你有帮助,欢迎分享——它可能会为别人节省数小时的痛苦。

Back to Blog

相关文章

阅读更多 »

NodeJS 101 — 第2部分 MySQL

🚀 使用 JavaScript Node.js Express 构建 API 完整的 RESTful API 开发指南,使用 Node.js、Express、Sequelize 和 MySQL! https://media2.dev.to/dynam...

在 MSSQL 上创建和控制资源池

封面图片:Craft and Control Resource Pools on MSSQL https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%...