如何使用DataGrip通过SSH连接数据库

9
要使用命令行进行连接和设置,我只需执行以下操作:
  1. ssh <MY_USERNAME>@<URL> -L 1139:arcade:139
  2. 输入 <MY_PASSWORD>
  3. psql -h postgres
  4. \c ift2935
  5. set search_path to inscriptions_devoir;
然而,我想使用比命令行更复杂的工具来探索数据库并尝试不同的SQL命令。作为JetBrains的粉丝,我决定尝试一下DataGrip。
我确实阅读了实际帮助页面,但它没有提供我所需的信息。
我缺乏理解术语的能力,无法知道我必须输入哪些实际字段名称以对应于我输入的不同行。

DataGrip connection

我的问题很简单:我应该在哪里输入这些内容?

1
似乎DataGrip跟踪器出现了问题。现在第二个端口是随机选择的:https://youtrack.jetbrains.com/issue/DBE-6668 - moscas
第二个端口是什么? - payne
我是指转发端口。 - moscas
在正确配置了一切之后,我仍然收到一个“密码不正确”的消息。后来,我意识到我需要设置数据库用户密码。alter user postgres password 'postgres'此后,一切都神奇地工作起来了。 - taari
2个回答

21

我也遇到了这个问题,所以我想向其他人解释我是如何解决它的。假设您的远程服务器IP地址为192.128.11.120。在大多数情况下,在隧道连接本地主机/127.0.0.1时,localhost IP会被设置为mysql配置文件中的绑定地址。

以下是使用SSH隧道连接MySQL的逐步指南:

1 - 转到SSH/SSL选项卡,然后选择“使用SSH隧道”

输入图像描述

2 - 单击并且按Shift+Enter或单击三个点[…]来打开SSH配置。从那里点击+号添加新的配置。使用您的远程服务器SSH配置填写表单。

  • 如果您只使用一对SSH密钥,请选择“OpenSSH配置和身份验证代理”作为身份验证类型。如果您使用多个密钥对或想要使用特定的文件,请选择“密钥对(OpenSSH或Putty)”作为身份验证类型,并选择用于连接到远程服务器的私钥文件。

之后,单击“测试连接”以测试SSH配置是否正确。如果正常工作,请单击“应用”和“确定”以保存它。

这里输入图片描述

现在, DataGrip 已经配置好 SSH。

这里输入图片描述

3 - 转到“常规”选项卡以添加与 MySQL 相关的条目。需要记住的一件事是,大多数情况下,在 MySql 中将绑定地址设置为 localhost/127.0.0.1 以使其在远程服务器上保持安全以仅启用 ssh 连接。在这种情况下,远程 ip(在本例中为192.128.11.120)将无法使用。因此,请使用 127.0.0.1。单击“测试连接”检查是否通过 SSH 连接运行了 MySQL 连接。

这里输入图片描述

4 - 如果成功,请单击“应用”和“确定”以保存设置。


1
感谢您提供的简单解决方案。 - Ismail Sahin
我该如何将Unix套接字连接添加到SSH隧道中? - Chris Sum
我的问题是设置中的mysql用户都被设置为localhost。即使我尝试使用localhost作为主机进行上述操作,似乎服务器端仍然会使用127.0.0.1。MySQL对此有不同的处理方式(显然localhost使用套接字连接,而127.0.0.1使用tcp/ip连接)。除了在mysql端更改用户之外,还有其他解决方法吗? - Bachi

7

问题解决了!

SSH设置正确。但是顶部的 Name 字段填错了。

对于名为 <DB_NAME>MySQL 数据库,输入应该是这样的(第一张图片是关于 SSH 信息的,第二张图片是关于常规信息的):

SSH inputs

General inputs

(忽略最初的问题与 PostGreSQL 有关的事实。总体思路保持不变。)


1
看起来不像是解决方案,你的截图显示了不同的主机,我不知道为什么名称会有影响。 - exts
@exts 它是在“SSH/SSL”选项卡中列出的相同主机。您现在正在查看“常规”选项卡。 - payne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接