“java public key retrieval is not allowed”错误通常出现在使用JDBC连接MySQL数据库时,特别是在禁用SSL/TLS协议或特定配置下。这个错误表明JDBC驱动程序在尝试从MySQL服务器获取公钥时遇到了问题,但当前的配置不允许这种操作。这通常与数据库连接的安全性设置有关。 2. 列举可能导致这个错误的常见原因 SSL/TLS协议被...
1. 报错页面 当出现报错的时候,我反复检查了后端服务的配置,发现并没有问题,然后看日志发现:java.sql.SQLNonTransientConnectionException:PublicKeyRetrievalisnotallowed 2. 报错原因及解决办法 (1)报错原因 mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。 换...
这个缓存的说法就很暧昧了,当然由于文档上没有更多描述,我们只能先做假设:Java程序通过驱动连接到 MySQL 时,如果 MySQl Server 有用户的验证缓存,则不需要额外配置 RSA公钥即可连接成功;如果没有缓存也没有指定 RSA 公钥,则连接报错:Public Key Retrieval is not allowed。 有了假设,我们就要去论证,实际上论证的方...
1)通过代码设置 dataSource.setAllowPublicKeyRetrieval(true); dataSource.setUseSSL(false); 2)jdbc的url设置 jdbc:mysql://localhost:3306/Database_dbName?allowPublicKeyRetrieval=true&useSSL=false; 3)Spring boot配置 spring.datasource.url=jdbc:mysql://localhost:3306/db-name?useUnicode=true&characterEnco...
mysql8.x版本的数据库在连接的时候报错java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed 只要在url的后边加上allowPublicKeyRetrieval=true即可 代码语言:javascript 复制 jdbc:mysql://localhost:3306/test?serverTimezone=GMT&allowPublicKeyRetrieval=true&useSSL=false&characterEncoding...
会导致 MySQL Server 的用户缓存失效,应用程序连接 MySQL 异常:Public Key Retrieval is not allowed。 解决方案 以下方案选择一种即可: 1.应用程序指定 RSA 公钥; 2.应用程序设置 AllowPublicKeyRetrieval=True; 3.MySQL Server 层修改用户的密码加密插件为 mysql_native_password 。
错误描述:Public Key Retrieval is not allowed. 抛出异常的位置:com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825) 根据异常信息提示,这是MySQL数据库连接时出现的问题。更具体地说,可能是由于连接字符串 URL 中缺少 “allowPublicKeyRetrieval=true” 参数导致的。
本文主要介绍通过connector 8.0.11连接Mysql数据库,出现Public Key Retrieval is not allowed(Exception in thread “main”java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed)的异常信息的解决方法。 堆栈跟踪: Exception in thread "main" java.sql.SQLNonTransientConnectionException: ...
Caused by:java.sql.SQLNonTransientConnectionException:Public Key Retrieval is not allowed 完整错误如下所示: 2、解决方法 由于是从未遇到过的问题,并且从网上找了很久也不知道到底是个什么解决原理,所以在此只记录解决方法。 解决方法:在mysql的url中添加:allowPublicKeyRetrieval=true如下所示:...
JDBC使用报错: java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed 在URL后面加上: allowPublicKeyRetrieval=true 报错原因: 如果用户帐户使用sha256_password身份验证,则在传输过程中必须保护密码;TLS是首选的机制,但如果它不可用,则将使用RSA公钥加密。要指定服务器的RSA公钥,请使用...