为了安全起见,数据库服务器一般只部署在内网;或者如果部署在公网,但只对某些指定的IP开放。但如果数据最终是给公网用户查询的,总会有一条通道可以访问到数据库。下面利用Navicat和SecureCRT实现对两种不同情景下的数据库访问。
情景一:数据库服务器在公网开放了SSH服务
方法一:利用Navicat的SSH Tunnel
Navicat中的配置:
- General选项卡:
Host Name/IP Address:数据库服务器的域名或IP地址
Port:数据库端口(如MySQL:3306)
User Name:数据库连接用户名
Password:数据库连接密码
- SSH选项卡:
勾选“Use SSH Tunnel”
Host Name/IP Address:数据库服务器的域名或IP地址
Port:SSH端口号(如22)
User Name:SSH的用户名
Password:SSH用户的密码
勾选“Save Password”
点击“Test Connection”连接成功。
方法二:利用SecureCRT的端口转发功能
SecureCRT配置:
1、新建一个会话,SSH连接到数据库服务器
2、会话选项 -> 端口转发 -> 添加...
本地->端口:输入1024~65535之间的数字,用于监听本地Navicat的请求
远程->端口:输入数据库服务的端口(如MySQL:3306)
Navicat配置:
- General选项卡:
Host Name/IP Address:填localhost
Port:填SecureCRT中的“本地->端口”数值
User Name:数据库连接用户名
Password:数据库连接密码
点击“Test Connection”连接成功。
情景二:数据库服务器C在内网,公网服务器B开放了SSH服务,公网服务器可以连接C,本地机器A需要用Navicat连接C
配置方法类似于情景一中的方法二,不同之处:
SecureCRT配置:
远程:勾选“目的主机不同于SSH服务器”,主机名:填C的IP地址