Public Key Retrieval is not allowed

"Public Key Retrieval is not allowed" 解决方法 (SQLark + MySQL 9.7)

mysql_native_password

caching_sha2_password

Public Key Retrieval is not allowed

该错误通常由 MySQL 8.0+ 的 `caching_sha2_password` 认证方式与客户端默认安全策略冲突导致。以下是三种解决方案,推荐优先尝试 方案一

方案一:修改 SQLark 连接参数(推荐)

无需改动数据库,仅修改 SQLark 中的连接属性即可。

  1. 打开 SQLark,右键点击报错的数据库连接,选择 **编辑连接**。

  2. 切换到 **驱动属性** 标签页。

  3. 添加或修改以下两个参数:

  • `allowPublicKeyRetrieval` → 值设为 `true`

  • `useSSL` → 值设为 `false`

  1. 点击 **确定**,重新尝试连接。

> 若属性列表中无这两项,尝试点击"添加参数"手动加入。

🔑 方案二:降级用户认证插件(兼容性好,安全性略低)

通过 SQL 将用户的认证插件改为 `mysql_native_password`,MySQL 9.7 强制使用 caching_sha2_password 插件作为唯一的认证方式。完全废弃mysql_native_password插件。

  1. 用其他客户端(如MySQL命令行)连接到数据库。

  2. 执行以下 SQL,将 `'username'`、`'host'`、`'your_password'` 替换为实际值:

sql 复制代码
ALTER USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;
相关推荐
linmoo19865 个月前
Langchain4j 系列之十九 - RAG之Retrieval
人工智能·langchain·retrieval·rag·langchain4j
奥尔特星云大使8 个月前
CentOS 7 安装 MySQL 8
mysql·centos·mysql 8
独上西楼影三人2 年前
【MySQL】Linux Yum 安装 MySQL 8.x
linux·数据库·mysql·安装部署·mysql 8
独上西楼影三人2 年前
10.5.8 优化 InnoDB 磁盘 I/O
数据库·mysql·innodb·优化·mysql 8
小何才露尖尖角3 年前
LangChain(4)检索增强 Retrieval Augmentation
人工智能·python·langchain·检索增强·retrieval·pinecone