dbeaver本低数据库报错Public Key Retrieval is not allowed
时间: 2025-03-17 17:03:06 浏览: 53
### 解决方案
此问题通常发生在尝试通过 DBeaver 连接 MySQL 数据库时,原因是客户端无法检索公钥。以下是详细的解决方法:
#### 修改驱动设置
在 DBeaver 中调整连接配置可以解决问题。具体操作如下:
- 打开 **连接设置** 页面。
- 转到 **编辑驱动设置** 部分。
- 定位至 **连接属性** 或 **高级选项**[^2]。
#### 添加 `allowPublicKeyRetrieval` 属性
为了允许客户端检索公钥,在连接属性中添加一个新的参数并将其值设为 `true`:
- 参数名称:`allowPublicKeyRetrieval`
- 参数值:`true`
完成上述更改后保存设置,并重新测试连接。如果一切正常,应该能够成功建立数据库连接。
#### 检查 MySQL 版本兼容性
有时该错误也可能由 JDBC 驱动版本与 MySQL 服务器版本之间的不兼容引起。因此建议确认所使用的 JDBC 驱动程序是最新的稳定版。可以从官方 Maven 存储库下载最新驱动器文件[^3]。
```bash
# 下载MySQL Connector/J (JDBC Driver)
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.33.tar.gz
tar -xzf mysql-connector-java-8.0.33.tar.gz
```
将解压后的 JAR 文件路径指定给 DBeaver 使用以替代默认内置的驱动版本。
---
### 注意事项
尽管启用 `allowPublicKeyRetrieval=true` 可以快速修复这一问题,但从安全性角度考虑,应尽量避免在生产环境中开启此功能,除非确实必要[^1]。
```java
// 示例代码展示如何手动创建带有自定义属性的 JDBC URL
String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase?allowPublicKeyRetrieval=true&useSSL=false";
Connection conn = DriverManager.getConnection(jdbcUrl, username, password);
```
阅读全文
相关推荐


















