文档解释
Error number: MY-011247; Symbol: ER_SHA_PWD_FAILED_TO_GENERATE_MULTI_ROUND_HASH; SQLSTATE: HY000
Message: Error in generating multi-round hash for %s. Plugin can not perform authentication without it. This may be a transient problem
错误说明:
MY-011247,名称为ER_SHA_PWD_FAILED_TO_GENERATE_MULTI_ROUND_HASH,表明MySQL未能生成多回合哈希,SQLSTATE为HY000。该错误表明MySQL无法在多回合的哈希计算中生成有效的凭据。
常见案例
ER_SHA_PWD_FAILED_TO_GENERATE_MULTI_ROUND_HASH错误通常发生在MySQL服务器上,当MySQL尝试生成多回合哈希凭据时。 当更新到MySQL 8.0时也可能会引起此错误。这是因为MySQL 8.0版本将Multi-Round Salted SHA-256认证模式设置为默认模式,使用Secure Hashing Algorithm(SHA)256提供数据安全最高登录安全性。
解决方法:
要解决此错误,请更改用户的authentication_string字段以使用使用以前使用的其他认证模式。这可以通过在MySQL中运行以下SQL语句来完成:
UPDATE mysql.user SET authentication_string=PASSWORD(‘password’) WHERE User=’username’;
另外,可以通过尝试使用MySQL 8.0以下的认证模式与MySQL服务器进行连接来禁用多回合认证,而不会更改数据库中的任何内容。可以在MySQL客户端的认证页面中通过选择“不使用SSL”或“使用Old Password Protocol”来实现。
此外,您还可以编辑MySQL的my.cnf文件,禁用SHA-256认证,启用MySQL 8.0以下的认证模式,即:
[mysql]
default-authentication-plugin= mysql_old_password
重新启动MySQL服务后即可完成。