MySQL修改用户的密码有两种方法:
下面的语句在 mysql 5.7 版本中执行成功。实例如下:
(1)使用明文的方式修改 test 用户的密码为 123456。如下:
mysql> alter user test identified by '123456'; Query OK, 0 rows affected
(2)修改当前登录用户的密码,其中:user() 方法将返回当前用户信息。实例如下:
mysql> select user(); +----------------+ | user() | +----------------+ | test@localhost | +----------------+ 1 row in set (0.00 sec) mysql> alter user user() identified by 'aaaaaa'; Query OK, 0 rows affected (0.00 sec)
(3)使密码过期
mysql> alter user test identified by '123456' password expire; Query OK, 0 rows affecte
(4)使密码从不过期
mysql> alter user test identified by '123456' password expire never; Query OK, 0 rows affected
(5)按默认设置过期时间
mysql> alter user test identified by '123456' password expire default; Query OK, 0 rows affected
(6)指定密码的过期间隔,如下:
mysql> alter user test identified by '123456' password expire interval 90 day; Query OK, 0 rows affected
在 MySQL 文档里,推荐使用 ALTER USER 修改用户密码。ALTER USER 官网参考手册:https://dev.mysql.com/doc/refman/5.7/en/alter-user.html
使用 SET PASSWORD 的密码有两种:
(1)使用默认加密
mysql> set password for test='123456'; ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number
错误“ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number”(密码散列应该是一个41位的十六进制数字)意思是不能输入明文,可以使用 password('') 来生成密码。
(2)使用 PASSWORD() 函数加密
mysql> set password for test=password('123abc'); Query OK, 0 rows affected
注意:使用 PASSWORD('auth_string') 的方式已经被废弃,在以后的版本会把它移除,所以不建议使用它来修改密码。