java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed的解决
报错解释:
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
这个错误表明你正在使用的 JDBC 驱动在尝试建立数据库连接时,无法通过公钥检索方式获取服务器的SSL证书。这通常发生在使用 MySQL Connector/J 6.0 或更高版本的情况下,当你的数据库需要SSL加密通讯,而连接字符串中配置的 allowPublicKeyRetrieval=false
时。
解决方法:
- 确保你的数据库服务器配置了SSL,并且客户端有正确的证书来建立安全连接。
如果你确实需要通过公钥检索方式建立连接,可以在 JDBC 连接字符串中添加
allowPublicKeyRetrieval=true
参数。例如:jdbc:mysql://hostname:port/database?allowPublicKeyRetrieval=true&useSSL=false
注意:
useSSL=false
表示禁用SSL,如果你的环境要求SSL,请不要使用这个参数或者将其设置为true
。- 如果不想使用公钥检索方式,可以配置服务器的SSL证书到客户端信任的证书库中,并确保连接字符串中指定了正确的
trustCertificateKeyStoreUrl
和trustCertificateKeyStorePassword
参数。
确保在实施任何解决方案之前了解公钥检索的安全风险,并考虑是否符合你的安全政策。
评论已关闭