Navicat通过SSH隧道连接数据库,详细步骤

举报
悟空码字 发表于 2025/12/16 10:38:07 2025/12/16
【摘要】 通过SSH隧道连接数据库的本质是建立一个加密的安全通道。你的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隧道方式,因为它提供了加密通道,无需将数据库端口暴露给公网。

谢谢你看我的文章,既然看到这里了,如果觉得不错,随手点个赞、转发、在看三连吧,感谢感谢。那我们,下次再见。

您的一键三连,是我更新的最大动力,谢谢

山水有相逢,来日皆可期,谢谢阅读,我们再会

我手中的金箍棒,上能通天,下能探海

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。