mysql重置密码
出现 “ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)”,说明输入的密码与root用户的密码不匹配,或密码重置修改未生效。
完整重置密步骤(Windows + MySQL 8.0)
1. 彻底停止 MySQL 服务
- 按
Win + R→ 输入services.msc→ 找到 MySQL 服务 → 右键 “停止”(确保状态为 “已停止”)。
2. 以 “跳过权限” 模式启动 MySQL
- 打开 管理员命令提示符(必须管理员身份!),进入
bin目录:cmd
cd C:\Program Files\MySQL\MySQL Server 8.0\bin - 执行启动命令(保持此窗口开启,不要关闭):
cmd
等待显示mysqld --console --skip-grant-tables --shared-memoryready for connections再进行下一步。
3. 无密码登录 MySQL
- 新开一个 管理员命令提示符,同样进入
bin目录:cmd
cd C:\Program Files\MySQL\MySQL Server 8.0\bin - 登录(直接回车,无需密码):
cmd
成功后会显示mysql -u rootmysql>提示符。
4. 强制重置密码(关键步骤)
在 mysql> 下执行以下命令(逐行执行,替换'新密码'为你要设置的密码,比如'123456'):
sql
-- 1. 刷新权限(必须先执行)
FLUSH PRIVILEGES;-- 2. 强制修改root密码(覆盖旧密码)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';-- 3. 再次刷新权限(确保生效)
FLUSH PRIVILEGES;
若执行成功,会显示 Query OK, 0 rows affected。
5. 重启 MySQL 服务
- 关闭所有命令提示符窗口(包括运行 MySQL 服务的窗口)。
- 回到 “服务” 窗口 → 启动 MySQL 服务。
6. 验证登录
- 打开新的命令提示符(无需管理员),进入
bin目录:cmd
cd C:\Program Files\MySQL\MySQL Server 8.0\bin - 登录(输入你刚设置的
新密码):cmd
mysql -u root -p
如果仍失败,检查这 2 点:
- 密码是否包含特殊字符:若密码有
@、#、$等,输入时确保没有误按,或暂时用纯数字 / 字母测试(比如123456)。 - 用户主机是否匹配:若之前的
root用户允许远程连接(主机是%),需将步骤 4 的命令改为:sql
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
