Tob*_*bia 6 authentication root mysql-5.7
我编写了一个安装脚本来使用此SQL命令更改root密码:
UPDATE user SET password='*C563415623144561...' WHERE user='root';
Run Code Online (Sandbox Code Playgroud)
这在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的命令更改此命令?我想用散列字符串更新密码,而不是使用明确的密码.
mda*_*mia 20
从mysql 5.7开始,这不再是用户表中的密码字段.它现在称为authentication_string.您可以像这样更改或设置密码:
set password for 'jeff'@'localhost' = PASSWORD('mypass'); // this automatically hashes the password
Run Code Online (Sandbox Code Playgroud)
如果您想使用您的查询,只需更改password为authentication_string,它就可以使用.
UPDATE user SET authentication_string='*C563415623144561...' WHERE user='root@localhost';
Run Code Online (Sandbox Code Playgroud)
希望这有帮助.
小智 13
我在Mysql 5.7.22中使用此命令重置为空密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
Run Code Online (Sandbox Code Playgroud)
鉴于 'SET PASSWORD FOR = PASSWORD('')' 在 mysql 5.7 上已被弃用。如果操作不正确,您甚至可能会在系统日志中出现以下错误。
The plugin 'auth_socket' used to authenticate user 'root'@'localhost' is not loaded. Nobody can currently login using this account.
Run Code Online (Sandbox Code Playgroud)
我建议使用下面的命令。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypass';
Run Code Online (Sandbox Code Playgroud)
https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/
| 归档时间: |
|
| 查看次数: |
33566 次 |
| 最近记录: |