MySQL Error number: MY-011247; Symbol: ER_SHA_PWD_FAILED_TO_GENERATE_MULTI_ROUND_HASH; SQLSTATE: HY000

文档解释

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服务后即可完成。

你可能感兴趣的