解决问题:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowe

解决问题:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowe

这段代码是一个 Java 异常错误信息,其中包含了以下关键信息:

  • 错误类型:java.sql.SQLNonTransientConnectionException
  • 错误描述:Public Key Retrieval is not allowed.
  • 抛出异常的位置:com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)

根据异常信息提示,这是 MySQL 数据库连接时出现的问题。更具体地说,可能是由于连接字符串 URL 中缺少 “allowPublicKeyRetrieval=true” 参数导致的。

为了解决该异常,可以尝试采取以下几种方法:

  1. 修改 MySQL 数据库连接字符串 URL,在末尾追加 “?allowPublicKeyRetrieval=true” 参数。如:
String url = "jdbc:mysql://localhost:3306/mydatabase?allowPublicKeyRetrieval=true&useSSL=false";
  1. 如果使用的是 Java 8 及以上版本,可以将 SSL 模式设置为“false”,即在 JDBC 驱动程序中通过添加一个额外属性来关闭 SSL:
String url = "jdbc:mysql://localhost:3306/mydatabase?sslMode=DISABLED";

此时可以不需要”allowPublicKeyRetrieval=true”参数选项。

  1. 更新 MySQL Connector/J 驱动到最新版本。如果您当前正在使用旧版本的 MySQL Connector/J 驱动,则建议您更新驱动程序到最新版本并重试连接,因为较新版本的驱动程序可能会修复一些与公钥检索相关的问题。

希望以上方法能够解决您遇到的问题。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年12月5日
下一篇 2023年12月5日

相关推荐