dbeaver 测试连接提示: Public Key Retrieval is not allowed Public Key Retrieval is not allowed
时间: 2025-04-22 11:01:41 浏览: 37
### 解决 DBeaver 连接数据库报错 'Public Key Retrieval is not allowed'
当遇到 `Public Key Retrieval is not allowed` 错误时,通常是因为 MySQL 服务器配置或客户端连接参数设置不当所致。以下是几种可能的原因及对应的解决方案。
#### 修改 JDBC URL 参数
一种常见的解决方法是在 JDBC URL 中添加特定的参数来禁用公钥检索功能。具体来说,在 DBeaver 数据源配置中的 JDBC URL 后面追加如下参数:
```plaintext
?allowPublicKeyRetrieval=true&useSSL=false
```
这会告诉驱动程序允许公钥检索并关闭 SSL 验证[^1]。
#### 更新 MySQL 用户权限
如果问题是由于新创建的用户引起,则可能是该用户的权限不够充分。可以尝试通过执行 SQL 命令授予更多必要的权限给对应账户,并确保其拥有访问所需资源的能力[^5]。
#### 调整 MySQL Server 设置
对于某些情况下的错误发生,也有可能是由于 MySQL server 版本升级带来的默认安全策略变化所引起的。特别是从较早版本迁移到 MySQL 8.0 及以上版本时,需要注意检查全局变量 `default_authentication_plugin` 是否被设为了更严格的认证方式(例如 caching_sha2_password)。如果是这样的话,可以通过修改 my.cnf 文件或者直接运行 SET GLOBAL 来调整此选项至 mysql_native_password 或其他兼容模式[^4]。
#### 使用旧版身份验证插件
另一种可行的办法就是让新的 MySQL 客户端继续沿用传统的密码加密算法而不是最新的 SHA-256 加密法。可以在创建用户的时候指定使用老式的 native password 插件来进行身份验证:
```sql
CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
ALTER USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'new-password';
FLUSH PRIVILEGES;
```
上述命令分别用于新建带有传统密码哈希机制的新用户以及更改现有用户的认证方式为同样的形式[^3]。
通过实施这些措施之一应该能够有效消除 “Public Key Retrieval is not Allowed” 的警告信息从而恢复正常的数据交互流程。
阅读全文
相关推荐

















