java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java.sql.SQLNonTransientConnectionException

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

作者:断墨先生

本文主要介绍了java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed错误的问题解决,下面就来介绍几种解决方法,感兴趣的可以了解一下

在使用 MySQL 8.0 或更高版本时,可能会遇到以下错误:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
这是因为 MySQL 8.0 默认启用了 caching_sha2_password 插件,而 JDBC 驱动默认不允许检索公钥。以下是几种常见的解决方法:

解决方案一:修改数据库连接字符串

在 JDBC 连接 URL 中添加 allowPublicKeyRetrieval=true 参数:

jdbc:mysql://localhost:3306/your_database?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC

解决方案二:修改 MySQL 用户认证插件

ALTER USER 'your_user'@'your_host' IDENTIFIED WITH mysql_native_password BY 'your_password';

解决方案三:更新 MySQL JDBC 驱动

确保使用最新版的 MySQL JDBC 驱动,以避免与 MySQL 8.0 的认证方式不兼容
Maven 示例:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.30</version>
</dependency>

总结

到此这篇关于java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed的文章就介绍到这了,更多相关java.sql.SQLNonTransientConnectionException内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文