1.问题:登陆mysql以后,不管运行任何命令,总是提示这个

mysql> select user,authentication from mysql.user;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

2.解决办法

解决方式如下:

(1)MySQL版本5.7.6版本(以前)用户可以使用如下命令:
mysql> SET PASSWORD = PASSWORD('l!vWT#mL93'); (2)MySQL版本5.7.6版本(开始后)的用户可以使用如下命令:
mysql> ALTER USER USER() IDENTIFIED BY 'l!vWT#mL93';

3.原因分析

(1)MySQL版本5.6.6版本起,添加了password_expired功能,它允许设置用户的过期时间。这个特性已经添加到mysql.user数据表,但是它的默认值是”N”,可以使用ALTER USER语句来修改这个值。
  输入以下命令,将账号密码强制到期:
  mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE;
  此时,用户可以登录到MYSQL服务器,但是在用户为设置新密码之前,不能运行任何命令,就会得到上图的报错,修改密码即可正常运行账户权限内的所有命令。由于此版本密码过期天数无法通过命令来实现,所以DBA可以通过cron定时器任务来设置MySQL用户的密码过期时间。 (2)MySQL 5.7.4版开始,用户的密码过期时间这个特性得以改进,可以通过一个全局变量default_password_lifetime来设置密码过期的策略,此全局变量可以设置一个全局的自动密码过期策略。可以在MySQL的my.cnf配置文件中设置一个默认值。
  (a)这会使得所有MySQL用户的密码过期时间都为120天,MySQL会从启动时开始计算时间。
    my.cnf配置如下:
    [mysqld]
    default_password_lifetime=120
  (b)如果要设置密码永不过期,my.cnf配置如下:
    my.cnf配置如下:
    [mysqld]
    default_password_lifetime=0
(3)如果要为每个具体的用户账户设置单独的特定值,可以使用以下命令完成(注意:此命令会覆盖全局策略),单位是“天”,命令如下:
  ALTER USER ‘root’@‘localhost' PASSWORD EXPIRE INTERVAL 250 DAY; (4)如果让用户恢复默认策略,命令如下:
  ALTER USER 'root'@'localhost' PASSWORD EXPIRE DEFAULT;
(5)个别使用者为了后期麻烦,会将密码过期功能禁用,命令如下:
  ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE NEVER;

最新文章

  1. Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
  2. struts.xml的编辑
  3. 关于MySQL的Admin Ping Command
  4. javascript之工厂方式定义对象
  5. AIZU 2251
  6. ExtJs之 Ext.JSON
  7. git http方式时保存密码
  8. java基于xml配置的通用excel单表数据导入组件(五、Action处理类)
  9. NSSet与NSArray区别
  10. SKPhysicsJointSliding类
  11. StringBuffer工具类整理(一)
  12. 对Msn协议的一点点研究
  13. 关于scala和java 在maven项目中混编的问题
  14. MVC的验证 jquery.validate.unobtrusive
  15. 机器学习笔记2 – sklearn之iris数据集
  16. vuex的使用二
  17. Minimum supported Gradle version is 4.1. Current version is 2.14.1
  18. unity3d 资源打包加密 整理
  19. SpringMVC @ModelAttribute 详解
  20. android基础组件---->Button的使用

热门文章

  1. RTP中的H264的SVC相关信息
  2. 按位或:多项式,FWT,min-max容斥
  3. E-factory
  4. PalletOne调色板跨链的BTC实现
  5. Java题库——Chapter12 异常处理和文本IO
  6. Java题库——Chapter3 操作符、选择
  7. ASP.NET图片上传和截取
  8. PostgreSQL 常用函数
  9. ThinkPHP5.x.x各版本实战环境getshell
  10. vue slot内容分发