dbeaver打开mysql链接显示Public Key Retrieval is not allowed
时间: 2024-10-15 08:02:10 浏览: 54
当你在DBeaver(一个数据库管理工具)尝试连接到MySQL服务器时,出现"Public Key Retrieval is not allowed"这样的错误,通常是因为MySQL安全设置阻止了客户端通过SSH(Secure Shell)公钥方式进行无密码登录。这可能是出于安全性考虑,因为默认情况下,MySQL服务器并不允许直接从远程机器上获取并验证用户的公钥。
解决这个问题,你可以按照以下步骤操作:
1. **生成SSH密钥对**:如果你还没有这样做过,可以在本地生成一对SSH密钥,通常在`~/.ssh`目录下,主私钥分别名为`id_rsa`和`id_rsa.pub`。
2. **将公钥添加到MySQL用户**:登录到你的MySQL服务器,然后运行命令行工具(如`mysql`、`mysqlsh`或`ssh`),使用具有`GRANT`权限的账户,输入:
```
mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User = 'your_username';
mysql> FLUSH PRIVILEGES;
```
然后把`id_rsa.pub`文件的内容复制到MySQL用户的`authorized_keys`文件里。例如:
```
mysql> ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@your_host
```
3. **更改MySQL配置**:编辑MySQL的配置文件`my.cnf`(或`my.ini`,取决于操作系统),在`[mysqld]`部分添加以下行,允许无密码认证:
```
[mysqld]
allow_root_login=without-password
```
4. **重启MySQL服务**:确保更改生效后,重启MySQL服务。
5. **尝试重新连接DBeaver**:现在你应该可以使用DBeaver无密码连接到MySQL了。
如果以上步骤无法解决问题,确认你的MySQL版本支持SSL/TLS加密,并检查防火墙规则是否允许SSH连接。
阅读全文