DBeaver 连接数据库时Public Key Retrieval is not allowed
时间: 2025-01-15 20:14:33 浏览: 192
### 解决 DBeaver 连接 MySQL 数据库时遇到 "Public Key Retrieval is not allowed" 错误
当尝试通过 DBeaver 连接到 MySQL 数据库并收到 “Public Key Retrieval is not allowed” 错误提示时,这通常是因为默认的安全策略阻止了公钥检索操作。此行为在 MySQL 8.0 及以上版本中被引入作为增强安全性措施的一部分[^2]。
#### 修改连接配置以允许公钥检索
为了使连接正常工作,在创建或编辑数据库连接的过程中需调整某些参数:
1. **进入驱动程序设置**
- 打开 DBeaver 并导航到要修改的 MySQL 连接。
- 转至 `Driver Properties` 或者类似的选项来访问用于建立连接的具体 JDBC 驱动属性。
2. **添加 allowPublicKeyRetrieval 属性**
- 查找名为 `Connection properties` 的部分。
- 添加一个新的条目命名为 `allowPublicKeyRetrieval`, 将其值设定为 `true`.
3. **保存更改并重新测试连接**
完成上述步骤之后再次尝试连接应该可以解决问题[^3]。
```sql
-- 示例 SQL 查询验证连接状态 (可选)
SELECT VERSION();
```
确保每次更新后的配置都经过充分测试,确认新的设置不会影响系统的整体性能和安全性。
相关问题
dbeaver连接mysql数据库Public Key Retrieval is not allowed Public Key Retrieval is not allowed
### 解决 DBeaver 连接 MySQL 数据库时出现 'Public Key Retrieval is not allowed' 错误
#### 修改用户身份验证插件
对于遇到此问题的情况之一,可以通过更改用户的认证方式来解决问题。具体操作是在命令行模式下进入 MySQL 并执行如下 SQL 语句:
```sql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
```
这条指令会将指定账户的身份验证方法更改为 `mysql_native_password`,从而避免了公钥检索的需求[^3]。
#### 调整 JDBC URL 参数
另一种解决方案涉及调整用于建立连接的 JDBC URL 的参数。可以尝试向现有的 JDBC URL 添加 `allowPublicKeyRetrieval=true` 和其他必要的选项,例如字符编码设置等。完整的 URL 应该看起来像这样:
```plaintext
jdbc:mysql://hostname:port/database_name?useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
```
这样做可以让客户端应用程序接受来自服务器端的公钥请求,进而绕过上述错误消息[^4]。
#### 关闭 SSL 加密功能
如果项目环境并不强制要求安全传输层协议 (SSL),那么可以选择关闭它作为临时措施。只需简单地给 JDBC URL 后面追加 `useSSL=false` 即可实现这一点:
```plaintext
jdbc:mysql://hostname:port/database_name?useSSL=false
```
需要注意的是,在生产环境中应谨慎考虑安全性因素后再决定是否采用这种方法。
通过以上三种途径中的任意一种都可以有效地处理 DBeaver 连接到 MySQL 数据库时报出的 `'Public Key Retrieval is not allowed'` 错误信息。
DBeaver连接数据库报错Public Key Retrieval is not allowed
### DBeaver 连接 MySQL 数据库时遇到 "Public Key Retrieval is not allowed" 错误的解决方案
当尝试通过 DBeaver 连接到 MySQL 8.0 或更新版本的数据库时,可能会遇到 `Public Key Retrieval is not allowed` 的错误提示。此问题源于 MySQL 默认的安全配置,在连接过程中不允许自动检索服务器端的公钥。
#### 修改 JDBC URL 参数
一种常见的解决方法是在 JDBC URL 中显式指定参数来允许公钥检索。具体做法如下:
- 打开 DBeaver 并创建新的 MySQL 连接;
- 在高级设置部分找到并编辑 **JDBC URL** 字段;
- 添加或修改参数 `allowPublicKeyRetrieval=true` 到现有的 URL 后面[^3];
例如完整的 JDBC URL 可能看起来像这样:
```sql
jdbc:mysql://localhost:3306/your_database?useSSL=false&allowPublicKeyRetrieval=true
```
#### 配置驱动属性
另一种方式是直接调整 DBeaver 内部用于建立连接的 MySQL 驱动程序属性:
- 创建一个新的 MySQL 连接或者编辑现有连接;
- 寻找名为 “Driver properties” (驱动属性) 的选项卡;
- 查找名为 `allowPublicKeyRetrieval` 的项并将它的值设为 `true`[^5];
完成上述任一操作之后再次尝试连接应该可以解决问题。需要注意的是启用该功能会降低一定的安全性,因此仅应在受信任环境中使用这种配置。
阅读全文
相关推荐















