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-memory

    等待显示 ready for connections 再进行下一步。

3. 无密码登录 MySQL
  • 新开一个 管理员命令提示符 ,同样进入bin目录:

    cmd

    复制代码
    cd C:\Program Files\MySQL\MySQL Server 8.0\bin
  • 登录(直接回车,无需密码): cmd

    复制代码
    mysql -u root

    成功后会显示 mysql> 提示符。

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 点:

  1. 密码是否包含特殊字符 :若密码有@、#、$等,输入时确保没有误按,或暂时用纯数字 / 字母测试(比如123456)。

  2. 用户主机是否匹配 :若之前的root用户允许远程连接(主机是%),需将步骤 4 的命令改为:

    sql

    复制代码
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
相关推荐
逐米时代40 分钟前
智能招聘与人岗匹配:可解释匹配让录用依据有迹可循
大数据·数据库·人工智能
承渊政道40 分钟前
KES专业技能包发布:覆盖数据库开发、迁移与运维全流程
运维·数据库·gitee·数据库开发·金仓数据库
IvorySQL1 小时前
PostgreSQL 日报| RI 快速路径并发读取缺陷(8 月 13 日)
数据库·postgresql
highreport2 小时前
HighReport报表工具定时调度和邮件定时发送
运维·服务器·数据库
01_ice2 小时前
数据库基础
数据库
deepdata_cn2 小时前
向量数据库是非结构化数据的AI检索底座
数据库·人工智能
梁辰兴2 小时前
软件工程:数据库设计
数据库·软件工程·数据库设计·逻辑设计·概念设计·梁辰兴·物理设计
10mAh2 小时前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
J_bean2 小时前
剖析 MySQL InnoDB 共享行锁 (S) & 排他行锁 (X)
数据库·mysql·共享行锁·s lock·排他行锁·x lock
霸道流氓气质2 小时前
RedLock:Redis 分布式锁的高可用方案
数据库·redis·分布式