外网如何访问内网SQL数据库

外网如何访问内网SQL数据库,第1张

使用nat123动态域名解析,可用自主域名或提示免费二级域名,将域名实时解析到本地IP。然后,通过域名访问数据库

如数据库主机有经过路由,需要在路由做端口映射。

二. 内网等所有环境

使用nat123端口映射,添加数据库应用端口映射。然后,在外网通过经过映射的外网地址端口访问。

以oracle数据库为例:

1.在内网安装nat123客户端软件。

2.登录nat123软件,添加映射。选择“其他非网站”应用类型,内网地址端口是数据库应用地址端口,外网端口可自定义。

3.保存映射后,查看映射状态。状态提示正常表示映射成功。

4.测试外网地址访问。数据库连接客户端配置用映射后的外网地址端口。连接数据库成功。

其中,注意端口映射,或者叫内网映射吧。可以上网即可使用,连通内外网应用。不同的应用走不同的映射类型。80映射穿透后,可以配置本地加速,让网站数据如图片JS等直接读本地IP,发挥本地带宽优势。全端口映射支持广播式通信等所有协议,使用的是p2p穿透,穿透后没有速度限制,完全由本地和访问端二者之间网络决定。https映射可以发布SVN等应用到外网访问。游戏开服联机可以使用其他非网站应用映射或全端口映射。

服务器放在局域网内进行测试时,数据库的访问速度还是很快。但当服务器放到外网后,数据库的访问速度就变得非常慢。

后来在网上发现解决方法,my.ini里面添加

[mysqld]

skip-name-resolve

这样速度就快了!

skip-name-resolve

选项就能禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

就MySQL本身而言,问题出在在mysql dns反解析

mysql>show processlist

| 20681949 | unauthenticated user | 10.10.4.193:52497 | NULL | Connect | | Reading from net | NULL |

| 20681948 | unauthenticated user | 10.10.4.193:52495 | NULL | Connect | | Reading from net | NULL

发现有非常多的 unauthenticated user 尝试做登入使用 mysql 的情况 ,当这种情况无限制发生时就会造成系统十分缓慢。

查阅mysql官方网站得知,这属于官方一个系统上的特殊设定,就把他当成mysql的一个bug算了,不管链接的的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查。mysqld 会尝试去反查 IP ->dns ,由于反查解析过慢,就会无法应付过量的查询。

1,明确MySQL数据库内网访问地址端口,确保MySQL数据库服务正常,在内网可以正常访问连接。如我本机MySQL数据库访问地址是localhost:3306。

2.内网使用花生壳动态域名解析,内网服务器安装花生壳,并使用它。

3.使用自己的帐号登录。如没有帐号,“注册帐号”进入网站进行注册帐号。正常登录后,会显示登录帐号下的域名。

4.做映射。在默认域名的地方点击花生壳管理添加映射。点击当前主机。内网任何端口映射,获取外网随机端口,点击确认。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9729734.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存