Mysql 报错 “Public Key Retrieval is not allowed”

报错 "Public Key Retrieval is not allowed" 出现的原因和之前分析的一样:MySQL 用户使用了 caching_sha2_password 认证,而 DBeaver 默认不允许自动获取公钥。

解决方法:


方法 A:在 DBeaver 中修改连接属性

  1. 点击 编辑驱动设置 → 驱动属性(Driver Properties)

  2. 找到或新增属性:

    • allowPublicKeyRetrievaltrue
    • useSSLfalse(如果你不使用 SSL)
  3. 保存后再测试连接。

示例 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
相关推荐
布莱克6055 小时前
理解 MySQL 架构:从连接层到存储引擎
mysql
灯澜忆梦10 小时前
【MySQL18】进阶篇 | MySQL管理
数据库·mysql
lv__pf11 小时前
spring之整合mybatis【TL spring 12】
mysql·spring·mybatis
Alex Gram14 小时前
数据库同步工具PanguSync图文教程
java·mysql·postgresql·sqlserver·c#·数据库同步软件·数据库同步工具
Lethehong15 小时前
MySQL迁移如何做到零改造?四层兼容方案详解
数据库·mysql·adb
竹枝溪17 小时前
MySQL进阶:约束、多表设计、多表查询与事务
java·数据库·mysql·事务·子查询·acid·多表查询
技术长镜头17 小时前
别再只会“加索引”:从磁盘页到 B+Tree,彻底理解 MySQL 索引的设计与运行
后端·mysql
城管不管18 小时前
MySQL 慢查询完整排查
java·服务器·jvm·数据库·mysql·spring·面试
树码小子18 小时前
MySQL 的事务隔离级别(重点面试题)
数据库·mysql
01_ice18 小时前
MySQL表的约束
数据库·sql·mysql