报错:Public Key Retrieval is not allowed

文章讲述了MySQLNonTransientConnectionException错误的原因,可能是配置错误或mysql未启动。解决方法包括检查yml文件中的用户名和密码配置,确认mysql服务是否运行,以及重启项目来修复问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed.

*问题原因:

  1. 可能是配置yml文件配置的mysql 用户名和密码错误;
  2. 一般情况在配置正确的情况下,极有可能是mysql没有启动(因为有的电脑默认开疾病不启动,需要手动开启)

*解决报错:

这个问题看似有点难懂,但是其实是一个简单的报错,一般只需要检查配置和驱动程序mysql,检查启动状态,手动开启mysql相关软件,重启项目即可.

报错:"Public Key Retrieval is not allowed"是由于禁用了SSL/TLS协议传输导致的。在禁用SSL/TLS协议传输的情况下,客户端无法主动获取服务器的公钥,从而引发了该错误。这种情况通常发生在以下场景下:新建数据库用户首次登录、数据库用户名密码发生改变后登录、服务器端刷新缓存。解决该错误可以采取以下方案: 1. 在条件允许的情况下,不要禁用SSL/TLS协议,即不要在CLI客户端使用--ssl-mode=disabled或在JDBC连接串中加入useSSL=false参数。 2. 如果必须禁用SSL/TLS协议,可以尝试使用CLI客户端登录一次MySQL数据库制造登录缓存。 3. 在JDBC连接串中加入allowPublicKeyRetrieval=true参数,允许客户端获取服务器的公钥。 4. 在CLI客户端连接时加入--get-server-public-key参数,指定从服务器获取公钥。 5. 在CLI客户端连接时加入--server-public-key-path=file_name参数,指定存放在本地的公钥文件。 需要注意的是,启用AllowPublicKeyRetrieval=True可能会存在安全风险,因为恶意代理可能执行中间人攻击以获取明文密码。因此,默认情况下AllowPublicKeyRetrieval为False,必须显式启用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MySQL 8.0 Public Key Retrieval is not allowed 错误的原因及解决方法](https://blog.youkuaiyun.com/u011447905/article/details/121441165)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Public Key Retrieval is not allowed解决](https://blog.youkuaiyun.com/weixin_55599565/article/details/125140094)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值