【mysql】【You must reset your password using ALTER USER statement before executing this statement报错处理】

安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个

mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> use mysql;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

解决方式如下:

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

mysql> SET PASSWORD = PASSWORD(‘xxxxxxxxx‘);

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

mysql> ALTER USER USER() IDENTIFIED BY ‘xxxxxxxxxx‘;

原因分析:

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

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

mysql> ALTER USER ‘xiaoming‘@‘localhost‘ PASSWORD EXPIRE;

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

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

[mysqld]

default_password_lifetime=120

如果要设置密码永不过期,my.cnf配置如下:

[mysqld]

default_password_lifetime=0

如果要为每个具体的用户账户设置单独的特定值,可以使用以下命令完成(注意:此命令会覆盖全局策略),单位是“天”,命令如下:

ALTER USER ‘xiaoming’@‘localhost‘ PASSWORD EXPIRE INTERVAL 250 DAY;

如果让用户恢复默认策略,命令如下:

ALTER USER ‘xiaoming‘@‘localhost‘ PASSWORD EXPIRE DEFAULT;

个别使用者为了后期麻烦,会将密码过期功能禁用,命令如下:

ALTER USER ‘testuser‘@‘localhost‘ PASSWORD EXPIRE NEVER;

如想进一步学习请参考官网:https://dev.mysql.com/doc/refman/5.7/en/password-management.html

原文地址:https://www.cnblogs.com/acmexyz/p/10058036.html

时间: 2024-10-30 12:16:55

【mysql】【You must reset your password using ALTER USER statement before executing this statement报错处理】的相关文章

MySQL You must reset your password using ALTER USE

今天在mac上新安裝了mysql 5.7.出了几个小问题如下: 不要下最新的,安装其他版本出现不兼容的问题.我开始的时候使用mysql8.0做实验,程序怎么也运行不起来,然后看程序log,才发现是版本不兼容的问题,mysql版本过高. 安装完成之后没有启动,用ps -ef|grep mysql 发现没有进程,重新启动电脑,然后就好了. 新安装的mysql,初次使用的时候提示:You must reset your password using ALTER USER statement befor

安装完绿色版MySQL修改密码:ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo re executing this statement.

mysql> update mysql.user set password=PASSWORD('123456') where User='root';ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 参考:http://dev.mysql.com/doc/refman/5.6/en/alter-user.html 直接执行:set

Mac 安装 MySQL 5.7 后登入后无法执行命令【You must reset your password using ALTER USER statement before executing this statement.】

今天在 Mac 上安装了 MySQL 5.7 ,启动服务后,输入 mysql -u root -p 后,输入初始密码程,尝试执行 show databases; 报了一个 You must reset your password using ALTER USER statement before executing this statement. 错误. 参考 Stack Overflow 上一篇文章 https://stackoverflow.com/questions/33467337/re

mysql数据库问题———登录进去无法操作显示You must reset your password using ALTER USER statement before executing this statement

linux操作mysql数据库,可以登陆进去,但是操作所有命令都显示You must reset your password using ALTER USER statement before executing this statement,并且使用alter修改密码时,显示密码不符合权限 很多方法都没用,也不知道出了什么问题,我选择利用跳过密码登录后再次修改密码 解决过程: 1.编辑/etc/my.cnf 在[mysqld] 配置部分添加一行 skip-grant-tables 2.保存后重

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

MySQL5.7 报错 : ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement 需要重新设置密码.那我们就重新设置一下密码,命令如下: set password = password('123456'); 原文地址:https://www.cnblogs.com/Dev0ps/p/11738557.html

【Mysql 5.7】ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

1.通过mysql -uroot -p,输入密码登录后,必须马上修改密码,否则会报错 2.将密码修改为123456,依然报错 这和mysql 5.7的密码策略(validate_password_policy)有关,validate_password_policy可以取如下值: 默认为1即MEDIUM,包含长度.数字.英文大小写.特殊字符校验.长度由validate_password_length配置,默认为8. 3.在/etc/my.cnf配置文件中增加 4.修改密码为12345678,成功

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

  报错 在连接mysql执行语句时报错:   解决办法   执行语句: alter user 'root'@localhost identified by 'root'; 这样就可以了.

MySQL的8小时连接超时时间,导致系统过夜即崩溃,报错Could not roll back Hibernate transaction

2014年3月开始给单位开发<机关规范化管理网络平台>,10月底成功上线运行,但是存在一个bug: 部署环境: apache tomcat 6.0.41 + mysql5.5 + jbpm Bug重现方法: 部署好环境后,在无用户访问该系统的情况下,过一晚上,第二天再登录就会报出如下错误:Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC

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

安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个 step 1: SET PASSWORD = PASSWORD('your new password'); step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; step 3: flush privileges;