报错 “Public Key Retrieval is not allowed” 出现的原因和之前分析的一样:MySQL 用户使用了caching_sha2_password认证,而 DBeaver 默认不允许自动获取公钥。
解决方法:
方法 A:在 DBeaver 中修改连接属性
点击编辑驱动设置 → 驱动属性(Driver Properties)。
找到或新增属性:
allowPublicKeyRetrieval→trueuseSSL→false(如果你不使用 SSL)
保存后再测试连接。
示例 JDBC URL 形式(DBeaver 可以自动拼接):
jdbc:mysql://10.0.71.31:3306/dbname?allowPublicKeyRetrieval=true&useSSL=false方法 B:修改 MySQL 用户认证方式
如果你可以修改数据库:
ALTER USER 'dzm'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES;然后在 DBeaver 里直接连接即可,无需修改额外参数。
💡 总结:
- 最快解决:在 DBeaver 驱动属性里加
allowPublicKeyRetrieval=true - 更安全:把用户改成
mysql_native_password