解决 MySQL 连接错误:“Public Key Retrieval is not allowed“

这篇具有很好参考价值的文章主要介绍了解决 MySQL 连接错误:“Public Key Retrieval is not allowed“。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本人github

在使用 JDBC 连接 MySQL 数据库时,可能会遇到一个常见的错误:“Public Key Retrieval is not allowed”。这篇博客将解释这个错误的原因,并提供一种有效的解决方案。

问题背景

当尝试使用 SSL 连接到 MySQL 数据库时,JDBC 驱动可能需要验证服务器的身份。在这个过程中,如果未配置好 SSL 或者 JDBC 驱动需要从服务器动态获取公钥,就可能出现 “Public Key Retrieval is not allowed” 的错误。

错误原因

此错误通常发生在启用了 JDBC 驱动的 SSL 连接,但客户端没有正确配置用于验证服务器的公钥。在某些情况下,这可能是因为缺少必要的 SSL 证书文件,或者 JDBC URL 配置不正确。

解决方案

步骤 1: 从服务器获取 CA 公钥

首先,需要从 MySQL 服务器上获取 CA(证书颁发机构)的公钥文件(通常是 ca.pem)。

步骤 2: 安全地复制公钥文件

使用安全的文件传输方法(如 SCP)将公钥文件从服务器复制到本地客户端。
或者使用cat /var/lib/mysql/ca.pem读取证书,保存到本地

步骤 3: 配置 JDBC 连接

在 JDBC URL 中配置 SSL 连接,指定 CA 公钥文件的路径。例如:

jdbc:mysql://hostname:port/dbname?useSSL=true&trustCertificateKeyStoreUrl=file:/path/to/ca.pem

这告诉 JDBC 驱动在建立 SSL 连接时使用这个公钥文件来验证服务器。

结论

通过正确配置 SSL 证书,可以安全地使用 SSL 加密连接到 MySQL 服务器,从而解决 “Public Key Retrieval is not allowed” 的问题。这不仅解决了错误,还提高了数据库连接的安全性。文章来源地址https://www.toymoban.com/news/detail-789455.html

到了这里,关于解决 MySQL 连接错误:“Public Key Retrieval is not allowed“的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Public Key Retrieval is not allowed

    我在使用 DBeaver 连接本地 mysql server 的时候,连接失败,报错: Public Key Retrieval is not allowed 。 据 https://blog.csdn.net/white0718/article/details/131790493 所讲:mysql server 从 8.0 开始默认使用 caching_sha2_password 插件做密码加密工作。 解决方案有两种 先用某个具有权限的账号,登录到 mysq

    2024年04月28日
    浏览(25)
  • Caused by: com...MySQLNonTransientConnectionException: Public Key Retrieval is not allowed 的解决办法

    关于这个是在新开子工程中遇到的,本工程使用的Mysql 8.x的,拉取项目启动时遇见问题: “  com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed ” 如下图: 具体信息: 查了下官网的参数操作表,如下图:  意为: 如果用户使用了 sha256_passwor

    2024年04月16日
    浏览(27)
  • Public Key Retrieval is not allowed 不允许公钥检索

    Public Key Retrieval is not allowed解决方法 AllowPublicKeyRetrieval=True可能允许恶意代理执行MITM攻击以获取明文密码,因此它在默认情况下为False,必须显式启用。 在配置mysql的url时 加上  附 完整 url

    2024年02月15日
    浏览(47)
  • 【MySQL异常解决】Caused by: com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not

    Java Spring Boot 项目启动时连接数据库控制台报错: Caused by: com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not allowed 在MySQL官方网站里的一个 MySQL Forums 下找到了解决方案。解决方案如下: 将下面的keyValue添加到 spring.datasource.url 后面即可。 如下图所示: 可以查看官方

    2024年02月13日
    浏览(29)
  • 连接MySQL出现Host is not allowed to connect to this MySQL server 解决方法

    翻译: ‘不允许主机连接到此MySQL服务器’ (意思是本地账号连接可以登录,但是远程登陆不行 进入mysql 输入数据库密码 不知道密码可以去查 输入该命令行后看 root@localhost:后的内容就是密码 进入后依次输入下列命令行 最后退出mysql

    2024年02月16日
    浏览(32)
  • 解决1130-Host‘ ‘is not allowed to connect to this MySQL server,实现远程连接本地数据库

    在使用Navicat远程连接本地数据库时,遇到了这样一个问题, 我使用 本地主机的地址,连接本地的数据库,报错host ‘’ is not allowed to connect to this mysql server。 上网上查了一下资料,原来自己安装在本地的mysql默认时不允许进行远程登陆,如果想要远程访问本地的数据库需要修

    2024年02月11日
    浏览(36)
  • mysql - navicat连接数据库报错:1130 - Host *** is not allowed to connect to this MySQL server 解决(解决mysql报错问题

    使用navicat软件远程连接mysql时,软件提示弹框并且报错:1130 - Host x is not allowed to connect to this MySQL server,详细完美的解决方法, 很多教程都无法解决,本文可搞定。 其实,

    2024年02月19日
    浏览(45)
  • 解决Navicat for MySQL激活时候出现“rsa public key not find”的问题

    场景:点击激活软件Navicat_Keygen_Patch,单击patch 按钮时报错rsa public key not find!!! 试了很多办法,包括断网重新安装,还是无济于事,最后看了一个帖子终于把问题解决了。 原因是:在点击patch按钮时没有生成破解版的RegPrivateKey.pem,及路径C:UsersDefaultAppDataLocalTemp下不存

    2024年04月16日
    浏览(20)
  • 连接MySQL报错,is not allowed to connect to this MySQL server

            本机装的MySQL数据库,本机可以正常连接,其他机器访问报错,is not allowed to connect to this MySQL server,防火墙等其他策略均配置没问题 。   解决方案:         出现该问题的原因是,MySQL数据库只允许自身所在的本机器连接,不允许远程连接。 1、在MySQL所在服务器

    2024年02月16日
    浏览(31)
  • MySQL连接时出现Host ‘::1‘ is not allowed to connect to this MySQL server

    报错原因 之前想着要提高一下连接速度,所以在my.ini中加入了:skip-name-resolve,当时的数据库root账号设置的登录权限是%,因此没有出现连接错误,这次因为是新建数据库,root账号的登录权限默认是localhost,所以就出现了这个问题 当skip-name-resolve被开启后,MySQL就不会进行D

    2024年02月05日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包