ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错的解决方法


出现了 ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES) 的报错,一般原因为 密码输入错误。下面是重置MySQL密码的步骤,整合自deepseek,本人略作补充。


步骤 1:停止 MySQL 服务

  1. 以管理员身份打开命令提示符。
  2. 停止 MySQL 服务:
    net stop mysql
    
    • 如果服务名称不同(如 mysql80),替换为实际名称:
      net stop mysql80
      

步骤 2:以跳过权限检查的方式启动 MySQL

  1. 输入以下命令启动 MySQL(跳过权限验证):
    mysqld --skip-grant-tables --shared-memory
    
    • --skip-grant-tables:绕过权限验证。
    • --shared-memory:在 Windows 上使用共享内存连接(可选,但推荐)。

步骤 3:登录 MySQL 并修改密码

  1. 新开一个命令提示符窗口(保持原窗口运行),输入以下命令登录 MySQL:

    mysql -u root
    
    • 此时无需密码即可登录。
  2. 在 MySQL 命令行中刷新权限并修改密码:

    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
    
    • MySQL 5.7 及以下版本(使用 SET PASSWORD):
      SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的新密码');
      
  3. 退出 MySQL:

    exit;
    

步骤 4:重启 MySQL 服务

  1. 返回第一个命令提示符窗口,按 Ctrl + C 停止 MySQL 进程。
  2. 正常启动 MySQL 服务:
    net start mysql
    

步骤 5:验证新密码

  1. 使用新密码登录 MySQL:
    mysql -u root -p
    
  2. 输入新密码,确认是否成功登录。

常见问题解决

  1. 服务无法停止

    • 确保以管理员身份运行命令提示符。
    • 检查服务名称是否正确(如 mysql80)。
  2. 跳过权限启动失败

    • 检查 my.ini 文件中的 basedirdatadir 路径是否正确。
    • 确保没有其他进程占用 MySQL 端口(3306)。
  3. 修改密码时报错

    • MySQL 8.0+ 必须使用 ALTER USER 命令。
    • 如果报错 ERROR 1290,确保执行了 FLUSH PRIVILEGES;
  4. 重启后仍无法登录

    • 检查防火墙是否允许 MySQL 端口(3306)。
    • 查看 MySQL 错误日志(默认位于 data 目录下的 .err 文件)。

示例:修改密码命令

-- MySQL 8.0+
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '这里输入你的新密码';

下面是回车后正确的运行结果
正确的回车运行结果


总结

  • 核心步骤:停止服务 → 跳过权限启动 → 修改密码 → 重启服务。
  • 确保所有命令以管理员权限运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值