在 DBeaver 中使用 ssh 隧道连接到远程数据库

Posted

技术标签:

【中文标题】在 DBeaver 中使用 ssh 隧道连接到远程数据库【英文标题】:Connect to remote db with ssh tunneling in DBeaver 【发布时间】:2021-04-05 10:51:45 【问题描述】:

我知道之前已经有人问过这个问题(例如 here),但我仍然找不到解决方案,而且这些帖子已经很老了。

所以我可以通过 ssh 连接到远程数据库,然后使用如下命令行:

// Putty SSH Connection
host: ssh.strato.de
port: 22
username: xxxxxxx 
password: xxxxxxx 

// connect to mysql with terminal
mysql -h rdbms -u xxxxxxx -p xxxxxxxx

如果我在 DBeaver 中使用 ssh-tunneling 尝试相同的操作,我会收到连接错误

ssh 隧道本身似乎可以工作。如果我使用与上述相同的凭据并按“测试隧道配置”,我会收到一条成功消息。

我尝试了其他几个端口和主机选项(localhost、rdbms.strato.de 等),我通过 mysql show variables; show processlist; show user(); 找到了这些选项,但它们都不起作用。 Strato Support 告诉我,我只能在内部使用 phpmyadmin 或使用 putty 和 mysql 远程连接到数据库,但是由于最后一种方法有效,ssh-tunneling 不应该也有效吗?

【问题讨论】:

我遇到了同样的问题,来自服务器的响应相同。我设法通过使用 MariaDb 驱动程序而不是 MySQL 驱动程序创建一个新连接来获得正常运行的连接。 你也用 Strato 吗?你能告诉我你的连接设置吗?我不知道如何正确设置连接。 不,抱歉。我几乎使用了 DBeaver 的所有默认值。我唯一改变的是我设置的主机端口,然后选择驱动程序就可以了。 【参考方案1】:

Dbeaver - 使用 SSH 隧道连接数据库

打开 dbeaver 点击“新建数据库连接”,在下面的“ma​​in”窗口中输入相对于SSH服务器的MySQL服务器主机,以及MySQL运行端口,我的设置默认 (localhost, 3306) 指定要连接的 MySQL 用户和用户密码。 在“SSH”部分,指定 SSH 主机、端口、用户以及使用的身份验证方法,如 SSH 私钥 测试连接和使用。

【讨论】:

【参考方案2】:

在共享主机设置(例如 IONOS)上,尝试从外部客户端连接到 MySQL 时可能会受到限制

https://www.ionos.com/help/hosting/troubleshooting-mysql-databases/connection-and-access-problems-with-mysql-databases/

【讨论】:

以上是关于在 DBeaver 中使用 ssh 隧道连接到远程数据库的主要内容,如果未能解决你的问题,请参考以下文章