MySQL8.0 root用户密码忘记如何重置(同样适登录时候报错ERROR 1045 (28000))

文章讲述了作者在遵循尚硅谷教程安装MySQL8.0时遇到的错误,即使用旧方法无法重置root密码。解决过程涉及找到适用于8.0版本的密码修改方法,包括使用`mysql-uroot-p`命令和跳过granttables的限制。最终作者成功重置并登录了新密码。

问题描述:

我在照着尚硅谷教程安装MySQL,按照教程安装完成后,启动了MySQL80,在终端进行用户登录的时候出现的问题:ERROR 1045 (28000): access denied for user 'root'@'localhost' (using password: YES)。这个问题等价于忘记了MySQL的密码,想要修改为新的密码。

根本原因:

我安装的版本是MySQL8.0.26,而网上的很多教程是基于MySQL5.7的,而这种方法在MySQL8.0并不适用。因此需要新的方法。

报错:

试错及解决过程:

在网上搜索:

error 1045 (28000): access denied for user 'root'@'localhost' (using password: yes)

找了一篇写的比较好的:

MySQL:ERROR 1045 (28000)详解 - 知乎 (zhihu.com)

### MySQL ERROR 1045 (28000) 访问被拒绝问题解决方案 当遇到 `ERROR 1045 (28000): Access denied for user 'root'@'localhost'` 的错误时,通常是因为用户名、密码不匹配或者权限配置存在问题。以下是具体的解决办法: #### 方法一:重置 root 密码 如果忘记root 用户密码密码设置有误,可以通过以下 SQL 命令更新 root 用户密码。 ```sql UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root'; FLUSH PRIVILEGES; ``` 上述命令会将 root 用户密码更改为指定的新密码[^2]。需要注意的是,在执行此操作前,需确保已通过其他方式登录MySQL 数据库(例如使用无密码模式或其他管理员账户)。完成修改后记得刷新权限以使更改生效。 #### 方法二:检查主机名绑定情况 有时该问题是由于用户的 host 字段未正确配置引起。“root”账号可能仅允许从特定 IP 地址连接而非 localhost 。可以查询当前用户表来确认具体设定: ```sql SELECT Host,User FROM mysql.user WHERE User='root'; ``` 假如发现存在多个不同Host值关联至同一个Root帐户,则需要依据实际需求调整这些记录中的host字段为合的值(如'%',表示接受任何地址)[^3]。 #### 方法三:验证插件兼容性 自 MySQL 8.0 开始,默认身份认证机制由原来的mysql_native_password变更为caching_sha2_password ,这可能导致旧版客户端无法正常工作。因此建议尝试切换回传统算法试试看效果如何 : ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '您的密码'; FLUSH PRIVILEGES ; ``` 以上步骤能够帮助大多数情况下因版本差异引发的身份验证失败状况得到缓解[^4]。 #### 注意事项 - 执行敏感操作之前一定要做好数据备份以防万一发生意外丢失。 - 修改完毕之后再次测试能否成功登陆系统验证成果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值