内容纲要
问题
DBeacer连接MySQL8.0 报错
Public Key Retrieval is not allowed
原因
在使用 DBeaver 连接 MySQL 8 时,遇到 "Public Key Retrieval is not allowed" 错误,通常是由于 MySQL 8 引入的默认身份验证插件 caching_sha2_password 导致的。在某些情况下,DBeaver 或其他客户端无法正确获取 MySQL 的公钥进行身份验证。
解决方案
在使用 DBeaver 连接 MySQL 8 时,遇到 "Public Key Retrieval is not allowed" 错误,通常是由于 MySQL 8 引入的默认身份验证插件 caching_sha2_password
导致的。在某些情况下,DBeaver 或其他客户端无法正确获取 MySQL 的公钥进行身份验证。
你可以尝试以下几种方法解决这个问题:
方法一:修改连接配置
- 打开 DBeaver 并选择你的 MySQL 连接。
- 在“连接设置”中,找到
SSL
或Connection settings
(具体名称可能会略有不同)。 - 在连接 URL 中加入以下参数:
useSSL=false&allowPublicKeyRetrieval=true
这样 MySQL 会允许公钥检索并关闭 SSL 连接。你的连接字符串应如下所示:
jdbc:mysql://localhost:3306/your_database?useSSL=false&allowPublicKeyRetrieval=true
或者直接修改DBeaver连接配置
- 重新连接看看问题是否解决。
方法二:修改 MySQL 配置文件
- 打开 MySQL 配置文件
my.cnf
(Linux 通常在/etc/mysql/my.cnf
或/etc/my.cnf
,Windows 通常在安装目录)。 - 在
[mysqld]
部分添加以下行:[mysqld] default_authentication_plugin=caching_sha2_password
- 重新启动 MySQL 服务。
方法三:更改 MySQL 用户的身份验证插件
- 如果你使用的是
caching_sha2_password
插件,可以将其更改为mysql_native_password
插件,方法如下:ALTER USER 'your_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
- 执行此命令后,重新尝试连接。