mysql 连接出现Public Key Retrieval is not allowed的问题解决

2024-04-16 0 835

在MySQL连接中出现“Public Key Retrieval is not allowed”错误,通常是因为在使用安全套接字层(SSL)连接时遇到了问题。这是因为MySQL 8.0及以上版本对安全性要求更高,特别是在使用密码插件如caching_sha2_password时,默认要求加密通信,并且不允许通过不安全的方式获取服务器的公钥。

解决这个问题的方法有以下几种:

允许公钥检索:在客户端连接字符串或配置文件中设置allowPublicKeyRetrieval=true。但请注意,这仅用于测试和临时解决方案,因为它会降低连接的安全性。在生产环境中应避免此做法,而是确保正确配置了SSL。

String url = \”jdbc:mysql://yourserver:3306/database?useSSL=true&allowPublicKeyRetrieval=true&serverTimezone=UTC\”;

启用SSL并提供正确的信任证书:

  • 在服务器端配置MySQL以支持SSL连接。
  • 客户端需要有与服务器匹配的CA证书,将其添加到客户端的信任存储中。
  • 更新客户端连接URL以包含SSL选项:useSSL=true并可能需要指定sslTrustStore和sslTrustStorePassword参数。

更改MySQL服务器上的用户密码插件:如果你希望保持高安全性但又想简化连接过程,可以将MySQL服务器上的用户密码插件改为mysql_native_password。这样,客户端无需进行复杂的SSL配置即可连接,但这意味着放弃了新版本MySQL默认提供的更强密码安全策略。

执行如下命令来更改用户密码插件:

ALTER USER \’username\’@\’%\’ IDENTIFIED WITH mysql_native_password BY \’password\’;
FLUSH PRIVILEGES;

请根据实际情况选择合适的方法解决问题,并始终优先考虑生产环境中的数据安全性。

到此这篇关于mysql 连接出现Public Key Retrieval is not allowed的问题解决的文章就介绍到这了,更多相关mysql连接问题内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Mysql mysql 连接出现Public Key Retrieval is not allowed的问题解决 https://www.u-9.cn/database/mysql/185938.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务