Public Key Retrieval is not allowed 解决 Mysql
一、导致“Public Key Retrieval is not allowed”原因
当禁用 SSL/TLS 协议传输后,客户端会使用服务器的公钥进行传输,默认情况下客户端不会主动去找服务器拿公钥,进而会出现错误。
出现 Public Key Retrieval 的场景可以概括为:
禁用 SSL/TLS 协议传输切当前用户在服务器端没有登录缓存的情况下,客户端没有办法拿到服务器的公钥。具体的场景如下:
1、新建数据库用户,首次登录;
2、数据库的用户名、密码发生改变后登录;
3、服务器端调用 FLUSH PRIVELEGES 指令刷新服务器缓存。
二、针对上述错误,有如下的解决方案:
1、在条件允许的情况下,不要禁用 SSL/TLS 协议,
即不要在 CLI 客户端使用–ssl-mode=disabled 或在 JDBC 连接串中加入 useSSL=false;
2、如果必须禁用 SSL/TLS 协议,
尝试使用 CLI 客户端登录一次 MySQL 数据库制造登录缓存;
可通过增加如下参数允许客户端获得服务器的公钥:
1、在 JDBC 连接串中加入 allowPublicKeyRetrieval=true 参数;
2、在 CLI 客户端连接时加入–get-server-public-key 参数;
3、在 CLI 客户端连接时加入–server-public-key-path=file_name 参数,指定存放在本地的公钥文件。
————————————————
原文链接:https://blog.csdn.net/weixin_55599565/article/details/125140094
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!