随着MySQL的版本更新,之前的一些语法已经被弃用,于是有些同学在修改密码的时候会发现,咦怎么搜出来的不对ε=(´ο`*))) **
在MySQL 5.7.6
及以前使用的语法是:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your_passwod');
在MySQL 5.7.6
之后的版本到MySQL 8.0
该语法改成:
- 修改指定名称账号的密码使用:
SET PASSWORD FOR 'root'@'localhost' = 'your_passwod';
- 修改当前用户密码:
SET PASSWORD = 'your_password';
在MySQL8.0
官方更推荐使用ALTER USER
语法来进行账户密码管理(但SET PASSWORD
语法不会被弃用)
例如:
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
要求密码每90天更改一次:
ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
禁用密码到期:
ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE NEVER;
在允许重用之前至少需要365天:
ALTER USER 'jeffrey'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;
MySQL
支持以下密码管理功能:
- 密码过期,要求定期更改密码。
- 密码重用限制,以防止再次选择旧密码。
- 密码验证,要求密码更改还指定要替换的当前密码。
- 双密码,使客户端可以使用主密码或二级密码进行连接。
- 密码强度评估,要求强密码。
详情可查阅: https://dev.mysql.com/doc/refman/8.0/en/password-management.html