已解决 Mysql 8.0:ERROR 1820 (HY000): You must reset your password using ALTER USER statement ……的问题

文章讲述了在遇到MySQL8.0首次登录时出现ERROR1820错误的情况,需要先修改密码。通过ALTERUSER语句重置密码,并介绍了MySQL8.0的密码策略,包括最小长度、大小写字母、数字和特殊字符的要求。此外,还详细说明了如何通过编辑my.cnf文件临时禁用权限系统,查看和修改密码验证策略,然后重新启用权限以设置符合要求的新密码。
摘要由CSDN通过智能技术生成

出现问题:

安装Mysql8.0后,第一次登录执行除修改密码的相关语句会出现如下错误(如图所示):
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

 解决方法:

 因此这里要求我们先修改密码,修改密码代码如下:(省时:直接修改密码为'12345aA@'就可以成功,然后就可以进行之后例如密码长度,密码验证策略的修改(0或LOW表示最低)等(滑到最下方),再重新设置密码。下面是讲解为什么要这么修改用的)

set password='你的密码';

但是事实上如果我们直接修改密码为 set password='123456',则会提示:

这表示我们的密码设置的不符合mysql8.0以上的密码设置规范策略。因此我们需要先知道mysql8.0以上所要遵守的密码策略。我们可以通过如下代码可以查看mysql8.0的密码策略。(意思是密码必须为8位,需要一个以上的小写字母和大写字母,需要一个以上的数字以及需要一个以上的特殊字符)

show variables like 'validate%';

 但是事实上就跟上面说的如果不修改密码直接使用 show variables like 'validate%'; 该代码就会造成 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 这个问题。因此在修改之前我们可以先通过在终端输入

vim /etc/my.cnf

然后在【mysqld】下加入skip-grant-tables并保存

skip-grant-tables

 之后重启mysql,代码为

service mysqld restart

重新登陆mysql,并通过以下代码查看mysql8.0以上的密码设置策略,并根据相关策略想好对应的相关密码。

show variables like 'validate%';

 然后在终端重新输入 vim /etc/my.cnf,并将刚才在【mysqld】下加入skip-grant-tables删除(该语句可以让你不使用密码就可以进入数据库,如果不删除的话如果你要远程连接就会造成连接不上的问题),并重启数据库,并重新保存。

再次进入数据库完成对数据库密码的修改,然后再使用以下代码实现对密码策略的修改,之后再执行 set password='你的密码'; 语句就可以设置你自己想设置的密码了(例如:123456)。

--可以使用以下命令进行修改
--密码验证策略低要求(0或LOW代表低级)
set global validate_password.policy=MEDIUM;

--密码至少要包含的小写字母个数和大写字母个数
set global validate_password.mixed_case_count=1;

--密码至少要包含的数字个数。
set global validate_password.number_count=1; 

--密码至少要包含的特殊字符数
set global validate_password.special_char_count=1; 

-- 密码长度
set global validate_password.length=8;  

这是我第一次写博客,哪里写的不好欢迎各位批评指正!

博客参考:【已解决】【Mysql8.0】ERROR 1820 (HY000): You must reset your password using ALTER USER statementMySQL8.0修改密码策略_mysql8修改密码策略_向往周全的博客-CSDN博客【已解决】【Mysql8.0】ERROR 1820 (HY000): You must reset your password using ALTER USER statement

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你在安装MySQL 8.0之后执行相关语句时,如果出现"ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement."的错误,你需要通过ALTER USER语句重置你的密码才能执行该语句。解决这个问题有几种方法可以尝试使用: 方法一: 1. 打开MySQL命令行工具,并输入以下命令: ALTER USER USER() IDENTIFIED BY 'your_password'; 这将重置你的密码为你指定的"your_password"。 方法二: 1. 修改root密码。可以使用以下步骤: a. 打开MySQL命令行工具,并输入以下命令: SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your_password'); 这将修改root用户的密码为你指定的"your_password"。 b. 重新登录MySQL并使用新密码进行验证。 方法三: 1. 使用以下语句修改密码: SET PASSWORD = 'your_password'; 你需要将"your_password"替换为你想要设置的密码。 2. 如果你的密码符合MySQL的要求,那么修改密码会成功。如果出现"ERROR 1819 (HY000): Your password does not satisfy the current policy requirements"的错误信息,则需要执行以下两条语句: SET GLOBAL validate_password.policy=0; SET GLOBAL validate_password.length=1; 然后再次执行步骤1中的语句即可。 希望以上方法能够帮助你解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【已解决】【Mysql8.0ERROR 1820 (HY000): You must reset your password using ALTER USER statement](https://blog.csdn.net/wingrez/article/details/99825144)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [分享MySql8.0.19 安装采坑记录](https://download.csdn.net/download/weixin_38703794/13683419)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值