#Navicat
#PHP
#MySQL
办公网和内网的网络并不是完全互通的,內网只支持特定端口范围供办公网访问,因此如果数据库的端口不在这个端口范围内,那么就无法在mac上使用mysql客户端连接内网的数据库。
在开发过程中,有很多要连接的数据库,有的端口在特定端口范围,有的不在,平常都是在开发机上开发代码,vscode有一个好使的插件,管理这些数据库以及日常sql操作特别方便。
但是这个插件在不付费的情况下,只能连接3个数据库,大于3个就不行了。
一年需要74元,妥妥的付费上班了。
那么有没有什么办法可以通过办公网穿透到内网,实现数据库登陆了。
客户端直连mysql
:pass 前边已经说了,有些数据库端口不在特定范围内,无法连接
通过ssh隧道连接
:pass 开发机器倒是可以ssh上去,但是只能通过堡垒机接入,且堡垒机不允许ssh隧道,因此不可行
navicat http隧道连接
:我们可以买一个navicat付费账号,然后使用这种方法
开发环境建立mysql代理转发请求
:开发环境机器有一部分端口是开放给办公网的,理论上是可以实现的,但是这个跟http隧道有啥区别了,感觉都是代理请求
内网穿透
:不知道怎么搞,当然可能也很危险
不管怎么说,不管使用什么办法,我们都可以不再付费上班了。
navicat http隧道连接
这种方法是最简单的
上传PHP脚本
Navicat软件自带三个php代理脚本,它在Navicat安装目录下,分别是:ntunnel_mysql.php
、 ntunnel_pgsql.php
、 ntunnel_sqlite.php
这里主要讲MySQL,所以用到的是ntunnel_mysql.php脚本,其他数据库基本同理。
将ntunnel_mysql.php上传到服务器,部署完之后,并测试能否通过浏览器访问到
http://ip:port/ntunnel_mysql.php
Navicat连接设置
在新建或者编辑连接的时候,选项卡里面都会有一个HTTP,切换到HTTP选项卡。然后勾选使用HTTP通道,通道网址处输入ntunnel_mysql.php的网址http://ip:port/ntunnel_mysql.php
。
建议勾选上用base64编码传出查询,不然有可能出现700 Invalid response: 500错误。这个错误主要出现在获取数据库列表和表结构的时候出现,服务器有使用防护软件,也有可能是它捣的鬼。
然后在常规选项卡里,设置好端口、用户名、密码,主机输入127.0.0.1或者对应的内网IP。简单来说就是服务器上项目配置里的数据库连接配置怎么设置的,这里就怎么设置,因为是用php来代替连接数据库
测试连接
最后,测试下连接。如果有错误,按照错误信息修改下对应的配置即可。
原创 poem 怪诞黄叔叔