在 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 点击“新建数据库连接”,在下面的“main”窗口中输入相对于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 通过 nodeJS 中的 mongoose 通过 ssh 连接到远程服务器 mongoDB