Mysql8- Public Key Retrieval is not allowed

在使用 MySQL 8.0 时重启应用后提示 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed

最简单的解决方法是在连接后面添加 allowPublicKeyRetrieval=true

文档中(https://mysql-net.github.io/MySqlConnector/connection-options/)给出的解释是

如果用户使用了 sha256_password 认证,密码在传输过程中必须使用 TLS 协议保护,但是如果 RSA 公钥不可用,可以使用服务器提供的公钥;
可以在连接中通过 ServerRSAPublicKeyFile 指定服务器的 RSA 公钥,或者AllowPublicKeyRetrieval=True参数以允许客户端从服务器获取公钥;
但是需要注意的是 AllowPublicKeyRetrieval=True可能会导致恶意的代理通过中间人攻击(MITM)获取到明文密码,所以默认是关闭的,必须显式开启

原文地址:https://www.cnblogs.com/nxzblogs/p/11966120.html

时间: 2024-11-14 11:59:41

Mysql8- Public Key Retrieval is not allowed的相关文章

关于JDBC连接数据库时出现的Public Key Retrieval is not allowed错误

问题描述 最近在学习MyBatis框架,参考官方的文档通过配置文件的方式已经实现了通过Configuration配置文件和mapper映射文件访问mysql8数据库,于是想试试不使用XML文件去构建SqlSessionFactory,结合配置文件和官方文档,依次构建了DataSource,JdbcTransactionFactory,Configuration等等,并添加Mapper,在Mapper接口中通过注解配置了SQL语句,一步步的构建完成,前面都顺利执行没有抛出异常,当通过SqlSess

Jdbc连接MySQL 8时报错“MySQLNonTransientConnectionException: Public Key Retrieval is not allowed”

一.问题 因停电检修,今天重启服务器后,再启动jboss就报错"MySQLNonTransientConnectionException: Public Key Retrieval is not allowed",jboss无法获取对数据源的JDBC连接. 二.解决过程 百度一下,先说是旧版JDBC驱动的bug,于是从maven中央库下载最新的mysql-connector-8.0.11.jar,替换后修改jboss的modle说明.将配置文件中的driver-class改为'com.

MySQL 8.0 Public Key Retrieval is not allowed 错误的解决方法

在跟着视频练习时,又遇到一个问题,解决方案如下: 在使用 MySQL 8.0 时重启应用后提示 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed 最简单的解决方法是在连接后面添加 allowPublicKeyRetrieval=true 文档中(https://mysql-net.github.io/MySqlConnector/con

GPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-

今天更新为163的源后,yum的时候报错:GPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5. 解决方案:vi /etc/yum.repos.d/CentOS-Base.repo 把文件里所有的RPM-GPG-KEY-CentOS-5更改为RPM-GPG-KEY-CentOS-6就可以了 vim 替换 :%s/RPM-GPG-KEY-CentOS

GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-Cent

错误描述:cento更新完源之后安装软件会出现这个错误 GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6" 解决方法:修改/etc/yum.repos.d/CentOS-Base.repo 最后面的数字改成版本号,例如我用的是centos7,那就所有的gpgkey的最后一个数字都改成7 gpgkey=file:///etc/pk

关于Public key for *.rpm is not installed 的解决方法

今天在用yum 安装httpd的时候出现了一下错误:warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897update/gpgkey                                            | 1.8 kB     00:00 Public key for apr-util-1.2.7-11.el5_5.1.i386.rpm is not installed 在网上找到了

The Salt Master has rejected this minion's public key!

salt查看日志: salt --log-level=all "10.199.165.244" state.highstate 进入调试模式: salt-minion -l debug [DEBUG   ] Reading configuration from /etc/salt/minion [DEBUG   ] Configuration file path: /etc/salt/minion [INFO    ] Setting up the Salt Minion "

Red Hat Linux使用yum 安装报 关于Public key for *.rpm is not installed 的解决方法

Public key for Cluster_Administration-en-US-5.2-1.noarch.rpm is not installed以上这些是报错信息,在网上搜到了解决方法:此时要导入rpm的签名信息即可以root登录,执行下面命令# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

公钥(Public Key)与私钥(Private Key)

公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分.公钥通常用于加密会话密钥.验证数字签名,或加密可以用相应的私钥解密的数据.通过这种算法得到的密钥对能保证在世界范围内是唯一的.使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密.比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功.