Navicat通过SSH隧道连接数据库,详细步骤
通过SSH通道连接数据库是Navicat一项非常实用的功能,它能帮助我们安全地访问远程服务器上的数据库。下面详细介绍操作步骤、要点以及常见问题的解决方法。
基本原理
通过SSH隧道连接数据库的本质是建立一个加密的安全通道。你的Navicat会先通过SSH协议登录到你的远程服务器,然后再通过这个加密的隧道连接服务器上的数据库服务。这样做的好处是无需直接暴露数据库端口到公网,大大增强了安全性,特别适合访问云服务器上的数据库。
准备工作
Navicat软件:确保你已安装适用于你数据库类型的Navicat产品(如MySQL、PostgreSQL等)。
连接信息:
SSH连接信息:远程服务器的IP地址/主机名、SSH端口(通常为22)、服务器操作系统用户名及密码(或SSH私钥文件)。
数据库连接信息:数据库用户名、密码、数据库名(如需)、数据库端口(如MySQL通常为3306,PostgreSQL为5432)。
网络权限:确保你的本地网络允许出站SSH连接(通常端口22),并且远程服务器防火墙已放行SSH端口和数据库端口(如果数据库配置需要)。
详细步骤
打开新建连接窗口:
启动Navicat。
点击左上角的“连接”按钮,选择你需要的数据库类型(例如MySQL、PostgreSQL)。
配置SSH隧道参数:
在弹出窗口中选择 “SSH”选项卡。
勾选 “使用SSH隧道” 。
填写SSH连接信息:
主机:远程服务器的公网IP地址或域名。
端口:SSH端口,默认为22。
用户名:用于登录远程服务器的系统用户名(如root或拥有权限的其他用户)。
认证方法:
密码认证:选择“密码”,并输入服务器用户的密码。
私钥认证(更安全):选择“公钥”,然后点击“…”按钮选择你的私钥文件(如Putty生成的.ppk文件或OpenSSH格式的私钥)。请注意,Navicat for Windows也支持通过Pageant等ssh agent进行认证,具体配置可参考官方文档。

配置数据库连接参数:
选择 “常规”选项卡。
填写数据库连接信息:
连接名:为此连接设置一个易于识别的名称(如“生产环境MySQL”)。
主机名/IP地址:此处非常重要。因为此时连接已经通过SSH隧道“进入”了远程服务器,所以应填写服务器本地的数据库地址,通常是 localhost 或 127.0.0.1 。(许多初学者误填服务器公网IP会导致连接失败)
端口:数据库的实际监听端口,如MySQL为3306,PostgreSQL为5432。
用户名:数据库用户的用户名(非服务器系统用户名)。
密码:数据库用户的密码(非服务器系统密码)。
如果需要,可在“高级”选项卡中配置其他参数(如字符集)。
测试并保存连接:
点击 “测试连接” 按钮。

如果所有信息填写正确,应弹出“连接成功”的提示。
点击“确定”保存连接配置。
开始使用:
保存后,该连接会出现在左侧连接列表中。
双击此连接名称即可建立连接并开始管理数据库。
连接参数详解
以下是SSH连接和常规连接中需要填写的关键信息及其说明:

常见问题与解决方法
“无法连接到目标主机”或SSH认证失败:
原因:SSH连接信息错误、服务器SSH服务未运行、网络防火墙阻止了SSH端口、或私钥格式不正确。
解决:检查服务器IP、SSH端口、用户名和密码/私钥是否正确。确认服务器SSH服务是否正常启动(如通过systemctl status sshd)。检查本地和服务器防火墙/安全组规则是否放行了SSH端口。
“无法连接到数据库”错误:
原因:数据库连接信息错误、数据库服务未运行、或数据库用户权限不足。
解决:
确保常规选项卡中的“主机”字段填写的是localhost或127.0.0.1,而不是服务器的公网IP。
检查数据库用户名和密码是否正确。
登录服务器,确认数据库服务是否正在运行(如systemctl status mysql)。
确认该数据库用户是否允许从本地(localhost)连接,并且具有相应权限。
测试连接成功,但保存后提示“connection is being used”:
原因:有时在已有连接上修改配置可能会遇到此问题。
解决:尝试创建一个全新的连接,而不是在原有连接上修改。
连接缓慢:
原因:网络延迟或SSH隧道加密开销。
解决:确保网络稳定。如果数据库性能要求极高且处于安全内网,可考虑在安全环境下使用直接TCP/IP连接(但通常SSH隧道更安全)。
重要安全提示
强密码与密钥:为服务器账户和数据库账户使用强密码。优先选择SSH密钥对认证而非密码认证,因为它更安全。
最小权限原则:为数据库连接账户授予其所需的最小权限,不要直接使用root或超级用户账户进行日常操作。
保护连接信息:妥善保管你的SSH私钥和数据库密码,不要泄露。
修改默认SSH端口:为提高安全性,可以考虑修改服务器的默认SSH端口(22),并在Navicat中相应修改端口号。但请注意,修改端口号需要相应的服务器配置和防火墙规则调整。
其他连接方式简介
除了SSH隧道方式,Navicat也支持直接TCP/IP连接(在“常规”选项卡中直接填写数据库服务器的公网IP和端口)。这种方式通常需要:
数据库服务监听在公网IP或0.0.0.0上。
服务器防火墙和安全组规则明确放行数据库端口(如3306)。
数据库用户授权允许从你的本地IP地址连接(如’user’@‘your_local_ip’)。
通常情况下,出于安全考虑,更推荐使用SSH隧道方式,因为它提供了加密通道,无需将数据库端口暴露给公网。

谢谢你看我的文章,既然看到这里了,如果觉得不错,随手点个赞、转发、在看三连吧,感谢感谢。那我们,下次再见。
您的一键三连,是我更新的最大动力,谢谢
山水有相逢,来日皆可期,谢谢阅读,我们再会
我手中的金箍棒,上能通天,下能探海
- 点赞
- 收藏
- 关注作者
评论(0)