首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >mysql报错:You must reset your password using ALTER USER statement before executing

mysql报错:You must reset your password using ALTER USER statement before executing

原创
作者头像
用户4396583
发布2024-07-24 14:55:34
发布2024-07-24 14:55:34
1.3K0
举报

新安装mysql后,登录后,执行任何命令都会报错:

You must reset your password using ALTER USER statement before executing this statement.

问题解决办法:

MySQL版本5.7.6版本以前用户可以使用如下命令:

代码语言:sql
复制
mysql> SET PASSWORD = PASSWORD('Admin2022!');

MySQL版本5.7.6版本开始的用户可以使用如下命令:

代码语言:sql
复制
mysql> ALTER USER USER() IDENTIFIED BY 'Admin2022!';

出现这种情况的原因

MySQL版本5.6.6版本起,添加了password_expired功能,它允许设置用户的过期时间。这个特性已经添加到mysql.user数据表,但是它的默认值是”N”,可以使用ALTER USER语句来修改这个值。

输入以下命令,将账号密码强制到期:

代码语言:sql
复制
mysql> ALTER USER ‘yonghuming’@‘localhost’ PASSWORD EXPIRE;

此时,用户可以登录到MYSQL服务器,但是在用户没有设置新密码之前,不能运行任何命令,就会得到上图的报错,修改密码即可正常运行账户权限内的所有命令。由于此版本密码过期天数无法通过命令来实现,所以DBA可以通过cron定时器任务来设置MySQL用户的密码过期时间。

MySQL 5.7.4版开始,用户的密码过期时间这个特性得以改进,可以通过一个全局变量default_password_lifetime来设置密码过期的策略,此全局变量可以设置一个全局的自动密码过期策略。可以在MySQL的my.ini配置文件中设置一个默认值,这会使得所有MySQL用户的密码过期时间都为120天,MySQL会从启动时开始计算时间。my.ini配置如下:

代码语言:ini
复制
[mysqld]
default_password_lifetime=120

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 出现这种情况的原因
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档