我编写了一个安装脚本来使用此 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
如果您想使用您的查询,只需将
password
更改为 authentication_string
,它就会起作用。UPDATE user SET authentication_string='*C563415623144561...' WHERE user='root@localhost';
希望这有帮助。
关于authentication - 在 Mysql 5.7 中更新用户密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32208000/