mysql 已经初始化好,但是用 dbeaver 连接报错:Public Key Retrieval is not allowed
MySQL 已经初始化好,但用 DBeaver 连接时报错 “Public Key Retrieval is not allowed”,这是 MySQL 8 默认认证插件 caching_sha2_password
导致的安全限制问题。解决方法如下:
解决方案
1. 在 DBeaver 中开启 allowPublicKeyRetrieval=true
- 打开 DBeaver,编辑你的 MySQL 连接(右键连接 → Edit Connection)。
- 切换到 Driver Properties 标签页。
- 新增或修改属性
allowPublicKeyRetrieval
,设置值为true
。 - 同时确保
useSSL
根据你的环境设置(开发环境可设为false
,生产环境建议启用 SSL)。 - 保存后重新连接。
这样允许客户端自动从服务器请求公钥,解决连接时的限制问题。
2. JDBC 连接字符串添加参数
如果你用连接字符串配置连接,可以在 URL 后添加:
jdbc:mysql://host:3306/dbname?allowPublicKeyRetrieval=true&useSSL=false
这同样允许公钥检索,避免错误。
3. MySQL 服务器端配置(可选)
如果你有权限修改 MySQL 配置,可以在 my.cnf
或 mysqld
配置块加:
[mysqld]
caching_sha2_password_auto_generate_rsa_keys=OFF
然后重启 MySQL 服务,避免自动生成 RSA 密钥导致的连接问题。
4. 其他注意事项
- 确保网络和防火墙允许 3306 端口访问。
- 如果是首次连接,DBeaver GUI 连接一次后会缓存密钥,CLI 可能需要先用 GUI 连接成功。
- 使用最新版本的 DBeaver 和 MySQL 驱动,避免兼容性问题。
总结
方案 | 说明 |
---|---|
DBeaver Driver Properties | 设置 allowPublicKeyRetrieval=true ,最简单直接 |
JDBC URL 参数 | URL 加 ?allowPublicKeyRetrieval=true |
MySQL 配置修改 | 关闭自动生成 RSA 密钥,减少认证问题 |
通过以上配置,DBeaver 就能成功连接 MySQL,避免 “Public Key Retrieval is not allowed” 错误。