在 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 隧道连接到远程数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 通过 SSH 隧道连接到远程 PostgreSQL 数据库

如何以编程方式连接到需要 SSH 隧道的远程数据库服务器?

使用隧道 ssh 通过 nodeJS 中的 mongoose 通过 ssh 连接到远程服务器 mongoDB

在具有特定 mysql 主机的远程主机上使用 SSH 隧道连接到 MySql 数据库

无法通过 python 中的 ssh 隧道连接到远程数据库

如何使用 Fabric 通过 2 个网关将 SSH 隧道连接到远程主机?