如数据库主机有经过路由,需要在路由做端口映射。
二. 内网等所有环境
使用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.做映射。在默认域名的地方点击花生壳管理添加映射。点击当前主机。内网任何端口映射,获取外网随机端口,点击确认。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)