服务器报错 Public Key Retrieval is not allowed
时间: 2023-10-14 18:25:31 浏览: 113
这个错误通常是由于 MySQL 连接参数中启用了 `allowPublicKeyRetrieval=false` 导致的。这个参数的作用是禁止从远程服务器获取公钥,这会导致 SSL/TLS 握手失败。
为了解决这个问题,你可以尝试以下几种方法:
1. 修改连接参数:将 `allowPublicKeyRetrieval` 参数的值改为 `true`,或者直接删除这个参数。例如:
```
jdbc:mysql://localhost:3306/mydatabase?useSSL=true&allowPublicKeyRetrieval=true
```
2. 更新 MySQL 版本:如果你的 MySQL 版本比较老,可以尝试升级到最新版本,因为一些较旧的版本可能不支持从远程服务器获取公钥。
3. 检查 MySQL 配置:检查 MySQL 服务器的配置文件,确保 SSL/TLS 配置正确,并且已经启用了公钥认证。
如果以上方法都无法解决问题,你可能需要联系 MySQL 技术支持或者寻求其他专业人士的帮助。
相关问题
sqoop报错Public Key Retrieval is not allowed
sqoop报错Public Key Retrieval is not allowed是由于MySQL JDBC驱动版本过高导致的。在MySQL 8.0.19版本中,MySQL JDBC驱动默认启用了Public Key Retrieval,而Sqoop默认使用的MySQL JDBC驱动版本较低,不支持Public Key Retrieval。解决方法是升级MySQL JDBC驱动版本或者在Sqoop执行语句中添加参数"--disable-key-retrieval"来禁用Public Key Retrieval。
执行sql 报错Public Key Retrieval is not allowed
当使用MySQL 8.x版本连接时,可能会出现“Public Key Retrieval is not allowed”的错误。这是因为MySQL 8.x版本默认情况下禁用了明文密码传输,需要使用加密的方式进行连接。为了解决这个问题,可以尝试以下两种方法:
1.在JDBC连接URL中添加allowPublicKeyRetrieval=true参数,例如:
```java
jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true
```
2.在JDBC连接URL中添加sslMode=DISABLED参数,例如:
```java
jdbc:mysql://localhost:3306/test?useSSL=false&sslMode=DISABLED
```
以上两种方法都可以解决“Public Key Retrieval is not allowed”的错误,具体使用哪种方法取决于你的具体情况。