国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - Mysql DNS反向解析導致連接超時過程分析(skip-name-resolve)

Mysql DNS反向解析導致連接超時過程分析(skip-name-resolve)

2019-12-21 15:36MYSQL教程網 Mysql

從其它地方連接MySQL數據庫的時候,有時候很慢。慢的原因有可能是MySQL進行反向DNS解析造成的,這里簡單介紹下原理,需要的朋友可以參考下

MySQL數據庫收到一個網絡連接后,首先拿到對方的IP地址,然后對這個IP地址進行反向DNS解析從而得到這個IP地址對應的主機名。用主機名在權限系統里面進行權限判斷。反向DNS解析是耗費時間的,有可能讓用戶感覺起來很慢。甚至有的時候,反向解析出來的主機名并沒有指向這個IP地址,這時候就無法連接成功了。 

可以在配置文件里面禁止MySQL進行反向DNS解析,只需在my.cnf的[mysqld]段落中加入如下行即可: 

skip-name-resolve (windows與linux下一樣的)

設備在連接mysql時候,等待服務器的banner信息需要4s左右,影響了Mysql服務的連接速度。
通過如下方式進行驗證:

1、Telnet端口驗證

通過設備和虛擬機(Linux系統)分別Telnet Mysql服務的端口,會出現一下現象:

設備(UAG/SCANNER): telnet后,等待Mysql的服務器端回應大概需要等10s左右。

[DPtech-Developer-Shell]telnet 10.101.0.206 3308
Trying 10.101.0.206...
Connected to 10.101.0.206.
Escape character is '^]'.
E
5.0.67-community-nt-log?Hc95
虛擬機(Ubuntu):telnet后,立即得到了Mysql服務器的返回

[root]~# telnet 10.101.0.206 3308
Trying 10.101.0.206...
Connected to 10.101.0.206.
Escape character is '^]'.
E
5.0.67-community-nt-log?D%(;1$]+,¢!Zdh`'?G)6r]YConnection closed by foreign host.   //這里耗時很短

2、通過程序進行驗證

具體源代碼見附件:驗證程序源代碼
源代碼基本上是設置了Recv超時后,建立socket連接之后接受數據,收到后計時并輸出。

在設備上和虛擬機中的結果分別如下:
設備:

[DPtech-Developer-Shell]/tcpclient_mips 10.101.0.1 3306
花費時間:19553
Recved 68 bytes
@
5.5.2-m2-community%uD3q`n)

虛擬機:

[root]tcp_demo# ./tcpclient 10.101.0.1 3306
花費時間:10525
Recved 68 bytes
@
5.5.2-m2-communitd~k~Y";B

可以發現,設備上大約比Linux服務器多耗時9s,其中10秒鐘可能是recv本身超時的時間。

3、通過不同操作系統進行Telnet驗證

通過Windows系統和Linux虛擬機、設備,分別通過Telnet進行連接嘗試,通過抓包分析得知,只有設備的耗時比較長,其他的耗時都比較短。
抓包時發現設備中的socket建立之后,MYSQL服務器需要發送很多次的NBNS報文后,才會傳輸banner信息,而Linux虛擬機和Windows系統的主機在這個過程中都沒有出現這個問題。
查找了一些資料,關于MYSQL NBNS報文的問題:

Mysql論壇的提問:

http://forums.mysql.com/read.php?11,250982,250982#msg-250982

該問題的答復 
http://forums.mysql.com/read.php?11,250982,254683#msg-254683

從答復中來看,貌似是某些版本的問題,臨時的解決方案是對Mysql服務器進行配置,不啟用Named Pipes,即 命名管道 功能即可解決這個問題。

后經查找相關資料得知,遠程連接超時可能由于Mysql默認開啟了DNS反向解析的緣故,每次連接時服務器都嘗試解析連接客戶端的主機名,導致時間比較長。

解決方法是在服務器端的my.ini文件中,[mysqld]這個節下配置一個skip-name-resolve以關閉Mysql默認開啟的DNS反向解析就可以了。

再次通過設備和虛擬機或者Windows系統進行Telnet,可以發現連接超時的現象明顯不存在了。

另外通過自己寫的C代碼進行連接的時候也存在同樣的問題,修改skip-name-resolve以后,實際上就可以發現該問題已經不存在了:

設備:

[DPtech-Developer-Shell]/tcpclient_mips 10.101.0.1 3306 
花費時間:10520
Recved 68 bytes
@
5.5.2-m2-community[Z44E>G)
虛擬機:
[root]tcp_demo# ./tcpclient 10.101.0.1 3306
花費時間:10521
Recved 68 bytes
@
5.5.2-m2-community7evE5wyx

通過虛擬機Telnet連接另外一個ip 10.101.0.206時候發現速度也比較慢,消耗的時間基本上和設備中相當,可能是由于虛擬機和宿主主機之前不需要進行反向域名解析,或者說是應為系統本身就知道虛擬機IP地址(NAT模式)對應的主機名,所以不需要進行DNS反向解析,導致在虛擬機中出現了特殊情況。
最后得出結論,可能這個問題實際上和設備或者虛擬機,Linux系統、Windows系統沒有多大關系,主要由于服務器的反向DNS解析導致該問題。無法從客戶端途徑去解決,也就是說我們設備無法處理這種情形。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品免费视频 | 精品国产免费看 | 一区视频在线 | 欧美一区二区三区四区不卡 | 亚洲成av人片在线观看 | 欧美日韩在线电影 | 在线a视频网站 | 国产欧美精品一区二区三区 | 亚洲高清电影 | 国产乱码精品一区二区三区忘忧草 | 国产大学生援交视频在线观看 | 色婷婷综合久久久中文字幕 | 日本久久久久久 | 91精彩视频在线观看 | 求av网站| 成人a视频片观看免费 | 中国大陆高清aⅴ毛片 | 国产成人精品一区二区三区视频 | 久久亚洲综合 | 激情视频网| 欧美成人精品一区二区 | 久久一区二区三 | 日韩成人免费av | 欧美视频在线播放 | 人人澡人人射 | 成人精品久久久 | 91中文在线 | 综合久久久久 | 欧美国产日韩一区 | 国产剧情一区 | 日韩有码一区 | 一区二区三区国产 | 久久久久久久久久久精 | 成人精品国产免费网站 | 欧美精品 在线观看 | 国产精品福利在线观看 | 久久视频精品 | 亚洲欧洲自拍 | 欧美日韩在线一区 | 亚洲精品成人 | 久久久久综合视频 |