这个错误通常发生在尝试通过JDBC连接MySQL数据库时,并且是由于MySQL的配置不允许公钥检索导致的。从MySQL 5.0开始,连接时默认需要使用密钥进行密码加密传输。如果JDBC驱动程序尝试通过不允许公钥检索的方式进行连接,就会抛出这个错误。
解决方法:
-
更新JDBC连接字符串,添加允许公钥检索的选项。在连接字符串中添加
allowPublicKeyRetrieval=true
参数。例如:jdbc:mysql://hostname:port/database?allowPublicKeyRetrieval=true&useSSL=false
注意:
useSSL=false
表示不使用SSL连接,这可能会使通信不再安全,根据你的安全要求可能需要保留或者替换为useSSL=true
并配置正确的SSL参数。 -
如果你不希望修改连接字符串,可以考虑在MySQL服务器上配置SSL连接,并确保客户端证书正确安装。
-
另一个选择是在MySQL服务器上为连接的用户账号设置允许不使用密钥进行密码验证,但这通常不推荐,因为会降低连接的安全性。
确保在实施任何解决方案之前了解所做更改的安全影响,并考虑到最新的安全最佳实践
标签:JDBC,allowed,MySQL,dbeaver,SSL,useSSL,报错,mysql,连接 From: https://www.cnblogs.com/wangdch/p/18189068