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
相关推荐
秦老师Q26 分钟前
php入门教程(超详细,一篇就够了!!!)
开发语言·mysql·php·db
橘子131 小时前
MySQL用户管理(十三)
数据库·mysql
Dxy12393102161 小时前
MySQL如何加唯一索引
android·数据库·mysql
我真的是大笨蛋1 小时前
深度解析InnoDB如何保障Buffer与磁盘数据一致性
java·数据库·sql·mysql·性能优化
怣501 小时前
MySQL数据检索入门:从零开始学SELECT查询
数据库·mysql
人道领域2 小时前
javaWeb从入门到进阶(SpringBoot事务管理及AOP)
java·数据库·mysql
千寻技术帮3 小时前
10404_基于Web的校园网络安全防御系统
网络·mysql·安全·web安全·springboot
spencer_tseng4 小时前
MySQL table backup
mysql
Z...........4 小时前
MYSQL进阶查询
数据库·mysql
Dxy12393102165 小时前
MySQL INSERT ... ON DUPLICATE KEY UPDATE 与非主键唯一字段
数据库·mysql