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