【MySQL系列】Public Key Retrieval is not allowed
报错解释:
这个错误通常发生在使用MySQL 5.7或更高版本的客户端连接到MySQL服务器时,客户端配置为使用密钥进行密码认证,但服务器配置不允许使用密钥进行公钥检索。这通常是因为客户端的连接字符串或配置中的allowPublicKeyRetrieval
参数设置为false
或未设置。
解决方法:
- 如果你确实需要使用密钥进行认证,你应该确保客户端的连接字符串或配置中包含
allowPublicKeyRetrieval=true
。这样做可以允许客户端在尝试使用密钥进行认证时,从服务器获取公钥。 另一个选项是将MySQL用户的密码认证方式改为使用
mysql_native_password
插件,而不是默认的caching_sha2_password
。可以通过以下SQL命令更改用户的认证插件:ALTER USER 'username'@'hostname' IDENTIFIED WITH 'mysql_native_password' BY 'password'; FLUSH PRIVILEGES;
其中,将
username
、hostname
和password
替换为实际的用户名、主机名和新密码。- 如果你不需要使用密钥进行认证,确保连接字符串或配置中不包含指向私钥文件的参数,例如
sslKey
或类似的参数。
在进行任何更改之前,请确保了解这些更改可能带来的安全风险,并考虑是否有其他配置上的需求或限制。
评论已关闭