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

一、问题

在使用 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驱动,建议您更新驱动程序到最新版本并重新尝试连接,因为较新版本的驱动程序可能会修复与公钥检索相关的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值