如何在DataGrip中配置替代终端命令的多端口转发SSH隧道?
在DataGrip中配置SSH隧道替代终端命令连接数据库
我目前通过以下SSH终端命令来实现DataGrip访问数据库:
ssh -L IP1:Port1:IP11:Port11 -L IP2:Port2:IP22:Port22 -L IP3:Port3:IP33:Port33 username@IP4
执行命令后需要输入密码,再从列表选择目标站点,完成连接后才能在DataGrip里查看数据库。想知道怎么在DataGrip的SSH隧道里直接配置这些步骤,不用再用终端连接。
步骤1:打开数据库连接配置
- 打开DataGrip,调出右上角的Database工具窗口(没显示的话按
Alt+1)。 - 点击左上角的
+按钮,选Data Source,再挑你要连接的数据库类型(比如MySQL、PostgreSQL)。
步骤2:配置SSH隧道基础信息
- 在数据库连接窗口切到SSH/SSL标签页,勾选Use SSH tunnel。
- 填SSH服务器信息:
- Host:填命令里的
IP4 - Port:默认22,环境改了就填对应端口
- User name:填命令里的
username - Auth type:选Password,然后在Password栏输SSH密码(可以勾选保存,省得每次输)
- Host:填命令里的
步骤3:添加多端口转发规则
命令里的3个-L转发规则,要逐个加进去:
- 在SSH隧道的Port forwarding区域,点
+按钮添加:- 第一条转发:
- Local port:填
Port1 - Host:填
IP11 - Port:填
Port11
- Local port:填
- 第二条转发:
- Local port:填
Port2 - Host:填
IP22 - Port:填
Port22
- Local port:填
- 第三条转发:
- Local port:填
Port3 - Host:填
IP33 - Port:填
Port33
(注:命令里的IP1是本地绑定IP,DataGrip默认绑定本地所有IP,不用额外填)
- Local port:填
- 第一条转发:
步骤4:自动处理站点选择
如果SSH登录后要选目标站点(交互式操作),这么配置:
- 找SSH隧道的Advanced选项,找到Post-login command(不同版本位置可能有差)。
- 把自动选择站点的命令填进去,比如选站点是输数字1,就写
echo 1;如果是其他交互提示,就把你手动输入的内容转成命令。 - 不确定的话,先在终端里走一遍选站点的流程,把输入内容记下来改成脚本命令就行。
步骤5:测试并保存连接
- 切回General标签页,填数据库连接信息:
- Host:填
localhost(因为端口转发到本地了) - Port:填对应数据库的本地转发端口(比如Port1、Port2,看你要连哪个库)
- 填数据库的用户名和密码
- Host:填
- 点Test Connection测连接,成功的话会提示。
- 点Apply和OK保存配置,之后直接在DataGrip里用这个连接访问数据库就行,不用再跑终端的SSH命令了。
内容的提问来源于stack exchange,提问作者Ali Ashja'
相关产品推荐
相关产品推荐

