MySQL重置密码
在使用 MySQL 时,若忘记 root 密码或遇到 ERROR 1045 (28000): Access denied 错误,就必须通过跳过权限验证模式来强制重置密码。本文以 Windows 系统 和 MySQL 8.0+ 为例,介绍一下操作流程。
前置条件 已安装并能启动 MySQL 服务(如服务名 MySQL80)。
确认 MySQL 的主配置文件 my.ini 路径(例如 D:\MySQL\MySQL Server 8.0\my.ini)。
知道数据目录 datadir 的实际路径。
操作步骤
- 停止 MySQL 服务 以管理员身份打开 命令提示符,执行以下命令停止MySQL服务:
net stop mysql AI写代码 bash 2. 跳过权限验证启动 MySQL 在同一窗口执行(注意保持该窗口运行,不要关闭):
mysqld --defaults-file="你自己的路径\my.ini" --skip-grant-tables --shared-memory AI写代码 bash --skip-grant-tables:绕过用户权限表
MySQL 此时以“无密码、全权限”模式运行
- 重置 root 密码 打开一个新 CMD 窗口(无需关闭前一窗口),执行:
mysql -u root AI写代码 在 MySQL 提示符下刷新权限:
FLUSH PRIVILEGES; AI写代码 修改密码(示例将密码设为 YourNewPass):
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'YourNewPass'; AI写代码 bash 再次刷新,并退出:
FLUSH PRIVILEGES; EXIT; AI写代码 4. 重启 MySQL 服务 在第 2 步的窗口按 Ctrl+C 停止无权限模式。
重新启动服务:
net start MySQL80 AI写代码 5. 验证新密码 mysql -u root -p AI写代码 提示输入密码时,输入刚刚设置的 YourNewPass;若能正常登录,重置即成功。
注意事项 密码安全:避免使用过于简单的密码,如 123456;建议混合大小写字母、数字和符号。
数据备份:重置前建议直接备份 datadir 目录,避免意外丢失。
权限操作:所有 CMD 窗口需以管理员身份运行。
通过跳过权限表(--skip-grant-tables)并结合 FLUSH PRIVILEGES、ALTER USER … IDENTIFIED WITH mysql_native_password,即可快速重置 MySQL 8.0 root 密码。如遇路径或权限问题,请仔细检查配置文件和系统权限设置。 ————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_73419365/article/details/147641277