当前位置:   article > 正文

解决: Cause: java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed_caused by: java.sql.sqlnontransientconnectionexcep

caused by: java.sql.sqlnontransientconnectionexception: public key retrieval

一、问题

在使用 Mybatis 操作数据库时,在单元测试时出现了这个问题

 Cause: java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed

这个报错的意思是:不允许公开密钥检索

这是 Mysql 连接超时的错误,根据异常信息提示,可能是由于连接字符串URL中缺少"allowPublicKeyRetrieval=true"参数导致的。


二、解决方法

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

这样就不需要"allowPublicKeyRetrieval=true"参数选项了。

3、更新MySQL Connector/J驱动到最新版本。如果您当前使用的是旧版本的MySQL Connector/J驱动,建议您更新驱动程序到最新版本并重新尝试连接,因为较新版本的驱动程序可能会修复与公钥检索相关的问题。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/510433
推荐阅读
相关标签
  

闽ICP备14008679号