DataGrip通过ssh连接远程主机mysql,mac、windows通用

本文介绍了一种通过SSH隧道连接远程MySQL数据库的方法,适用于Datagrip等数据库管理工具。通过在本地建立SSH隧道,可以安全地将远程主机上的MySQL端口映射到本地,从而实现从本地应用程序或工具直接访问远程数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

1.想通过datagrip直接连接远程主机上的mysql。

困难

1.出于安全考虑,远程主机上的mysql 3306端口并没有对外开放,因此不能像本地连接数据库那么方便。

解决过程

1.在windows下通过xshell 建立ssh隧道连接数据库,即可将远程主机上的mysql端口进行映射到本地指定端口,这样与需要连接数据库时,都需要进行使用xshell登陆远程主机,否则数据库是连接不上的。

2.通过windows下的xshell,联想到在mac下通过ssh 登陆远程主机并将远程主机上的mysql 3306端口映射到本地的特定端口上,譬如47036。

ssh -i ./id_rsa.pub dev@xx.xxx.xx.xxx -p5837 -CfNg -L 127.0.0.1:47036:xx.xxx.xx.xxx:3306

通过上面命令即可将远程主机的3306端口映射到本地的47036端口。

3.在datagrip进行常规的数据库连接操作,如下图
在这里插入图片描述
会出现密码/账户不正确,尝试过自己所知道的所有密码和用户之后,还是依然提示这个页面。因此这个方法行不通,就另辟蹊径吧。(后面问了同事才知道是自己密码记错了,因此该方法还是可行的,但是缺点就是,每次连接数据库时,都需要使用ssh建立端口的转换,比较麻烦,因此推荐步骤4的方式连接)

4.既然使用Navicat进行ssh通道连接MySQL数据库,那么DataGrip应该也就可以。DataGrip通过ssh连接远程MySQL的方式如下图:
(1)先切到“SSH/SSL”页面,使用ssh连接上远程主机,如果登陆远程主机是私钥文件,则Auth type 选择 Key pair(OpenSSH or PuTTY)。(输入完成先不要点击 Test Connection)

(2)切回“General”页面,在该页面输入数据库相应的信息。注意:该页面上的填写的信息是基于远程主机的。因此Host是localhost而不是远程主机的外网ip。(点击Test Connection 即可)
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值