身份验证 – 在Mysql 5.7中更新用户密码

我编写了一个安装脚本来使用此SQL命令更改root密码:

UPDATE user SET password='*C563415623144561...' WHERE user='root';

这在Mysql 5.7上不起作用:
http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-6.html#mysqld-5-7-6-account-management

我的问题是:如何用另一个兼容5.6和5.7版Mysql的命令更改此命令?我想用散列字符串更新密码,而不是使用明确的密码.

最佳答案
从mysql 5.7开始,这不再是用户表中的密码字段.它现在称为authentication_string.您可以像这样更改或设置密码:

set password for 'jeff'@'localhost' = PASSWORD('mypass'); // this automatically hashes the password

如果您想使用您的查询,只需将密码更改为authentication_string,它就可以使用.

UPDATE user SET authentication_string='*C563415623144561...' WHERE user='root@localhost';

希望这有帮助.

转载注明原文:身份验证 – 在Mysql 5.7中更新用户密码 - 代码日志