文档解释
Error number: MY-013301; Symbol: ER_SHA256_PASSWORD_SECOND_PASSWORD_USED_INFORMATION; SQLSTATE: HY000
Message: Second password was used for login by user: ‘%s’@’%s’.
错误说明
MY-013301是MySQL的一个错误代码,表示ER_SHA256_PASSWORD_SECOND_PASSWORD_USED_INFORMATION,其SQLSTATE定义为HY000。这个错误暗示MySQL无法使用SHA-256加密的凭据来验证登录请求,因为要求使用SHA-256加密的凭据时,客户端必须提供用户名和令牌/第二密码,而客户端并没有提供。
常见案例
假设MySQL实例上已经被配置为只能使用SHA-256编码的凭据来进行身份验证。如果客户端(通常是一个应用程序)试图提交一个不满足要求的凭据来登录MySQL实例,则服务器将返回MY-013301错误。
解决方法
一般处理方法及步骤
1.首先,检查MySQL实例是否需要接受双因素身份验证(例如身份验证第二因素)。要检查此设置,请连接到MySQL实例,然后执行以下操作:
SELECT @@default_authentication_plugin;
您将看到类似于sha256_password的输出,这意味着实例已被设置为要求使用第二种凭据进行身份验证(通常是令牌或第二密码)。
2.如果该设置已正确引用,请检查客户端配置是否可以提供第二个凭据。如果是这样,那么请在客户端配置中添加第二个凭据,并尝试重新连接。
3.如果客户端配置中提供了要求的凭据,请考虑使用管理员权限将MySQL实例的default_authentication_plugin设置更改为mysql_native_password或其他凭据。
4.否则,如果先前的步骤失败,请尝试使用resetting mysql用户密码。清除用户帐户中的密码,然后重新分配用户令牌。
MySQL错误MY-013301表明,MySQL无法正确验证来自客户端的SHA-256加密凭据,因为客户端不提供第二个认证凭据。对于解决这个问题,可以尝试检查MySQL实例是否正确设置了需要提供第二种认证凭证的要求,以及客户端配置是否提供了这些凭据,或者可以使用管理员权限更改MySQL实例的default_authentication_plugin设置,或者在最后尝试重置MySQL用户的访问密码。