MySQL5.7 错误:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before ...

本文介绍如何在MySQL5.7中设置符合安全策略要求的root用户密码,并提供了一个具体的例子来说明如何更改密码以避免错误提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql> alter  user 'root'@'localhost' identified by '111111';


输入以上语句,会提示:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirement.


MySQL5.7 加强了安全保障,以上意思是密码不符合安全策略要求,我们输入一个8位或以上长度,复杂一点的密码,比如:

mysql> alter  user 'root'@'localhost' identified by '#20as3SElksds0ew98';

Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;

做完以上操作就修改密码成功了,然后就不会再提示错误了。

### 如何在MySQL中通过 `ALTER USER` 语句重置密码以解决 HY000 错误 当遇到 MySQL 报错 ERROR 1396 或其他与用户操作相关的错误时,可以通过以下方法使用 `ALTER USER` 语句来重置用户的密码并解决问题。 #### 方法一:直接使用 `ALTER USER` 更新密码 可以尝试执行如下命令来更改指定用户的密码。此方式适用于大多数版本的 MySQL: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; ``` 这条语句的作用是将 `'root'@'localhost'` 用户的身份验证插件更改为 `mysql_native_password` 并设置新的密码[^1]。 --- #### 方法二:处理语法错误 (ERROR 1064) 如果在运行 `ALTER USER` 语句时遇到了语法错误 (ERROR 1064),可能是因为 SQL 的写法不符合当前 MySQL 版本的要求。例如,某些旧版 MySQL 不支持带括号的形式 `(password)`。因此应改用标准形式: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; ``` 这种方式更加通用,并能兼容更多版本的 MySQL[^2]。 --- #### 方法三:针对密码过期策略 (ERROR 1820) 如果收到错误提示 `ERROR 1820 (HY000): You must reset your password using ALTER USER statement...`,说明账户处于强制密码重置状态。此时需要先重置密码才能继续正常登录数据库。具体做法如下: 1. 登录到 MySQL 数据库; 2. 执行以下命令完成密码重置: ```sql SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码'); ``` 注意:从 MySQL 5.7.6 开始,推荐使用 `ALTER USER ... IDENTIFIED BY` 替代 `SET PASSWORD`[^4]。 --- #### 方法四:手动更新 `authentication_string` 对于无法正常使用 `ALTER USER` 的情况(如权限不足或其他原因),可以直接修改底层数据表中的字段值。以下是实现步骤: 1. 进入 MySQL 的系统数据库 `mysql` 中; 2. 使用 `UPDATE` 命令修改目标用户的认证字符串: ```sql USE mysql; UPDATE user SET authentication_string = PASSWORD('新密码') WHERE User='root' AND Host='localhost'; FLUSH PRIVILEGES; ``` 需要注意的是,自 MySQL 5.7 起,原 `password` 字段已被更名为 `authentication_string`,这是造成部分开发者困惑的原因之一[^5]。 --- #### 注意事项 - 如果仍然无法成功,请确认是否启用了严格的密码复杂度校验功能 (`validate_password`)。如果是,则需满足其设定条件后再重新尝试。 - 对于完全遗忘密码的情况,在 Windows 和 Linux 下可通过启动服务时加入参数跳过权限检查的方式进入实例后进行调整[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值