欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2013年03月31日 13:37:39   作者:  
從其它地方連接MySQL數(shù)據(jù)庫的時候,有時候很慢。慢的原因有可能是MySQL進行反向DNS解析造成的,這里簡單介紹下原理,需要的朋友可以參考下
MySQL數(shù)據(jù)庫收到一個網(wǎng)絡(luò)連接后,首先拿到對方的IP地址,然后對這個IP地址進行反向DNS解析從而得到這個IP地址對應(yīng)的主機名。用主機名在權(quán)限系統(tǒng)里面進行權(quán)限判斷。反向DNS解析是耗費時間的,有可能讓用戶感覺起來很慢。甚至有的時候,反向解析出來的主機名并沒有指向這個IP地址,這時候就無法連接成功了。

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

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

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

1、Telnet端口驗證

通過設(shè)備和虛擬機(Linux系統(tǒng))分別Telnet Mysql服務(wù)的端口,會出現(xiàn)一下現(xiàn)象:

設(shè)備(UAG/SCANNER): telnet后,等待Mysql的服務(wù)器端回應(yīng)大概需要等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服務(wù)器的返回

[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、通過程序進行驗證

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

在設(shè)備上和虛擬機中的結(jié)果分別如下:
設(shè)備:

[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

可以發(fā)現(xiàn),設(shè)備上大約比Linux服務(wù)器多耗時9s,其中10秒鐘可能是recv本身超時的時間。

3、通過不同操作系統(tǒng)進行Telnet驗證

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

Mysql論壇的提問:

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

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

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

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

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

再次通過設(shè)備和虛擬機或者Windows系統(tǒng)進行Telnet,可以發(fā)現(xiàn)連接超時的現(xiàn)象明顯不存在了。

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

設(shè)備:

[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時候發(fā)現(xiàn)速度也比較慢,消耗的時間基本上和設(shè)備中相當(dāng),可能是由于虛擬機和宿主主機之前不需要進行反向域名解析,或者說是應(yīng)為系統(tǒng)本身就知道虛擬機IP地址(NAT模式)對應(yīng)的主機名,所以不需要進行DNS反向解析,導(dǎo)致在虛擬機中出現(xiàn)了特殊情況。
最后得出結(jié)論,可能這個問題實際上和設(shè)備或者虛擬機,Linux系統(tǒng)、Windows系統(tǒng)沒有多大關(guān)系,主要由于服務(wù)器的反向DNS解析導(dǎo)致該問題。無法從客戶端途徑去解決,也就是說我們設(shè)備無法處理這種情形。

相關(guān)文章

  • MySQL復(fù)制之GTID復(fù)制的具體使用

    MySQL復(fù)制之GTID復(fù)制的具體使用

    從MySQL 5.6.5開始新增了一種基于GTID的復(fù)制方式,本文主要介紹了MySQL復(fù)制之GTID復(fù)制的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • MySQL單表ibd文件恢復(fù)方法詳解

    MySQL單表ibd文件恢復(fù)方法詳解

    隨著innodb的普及,innobackup也成為了主流備份方式。物理備份對于新建slave,全庫恢復(fù)的需求都能從容應(yīng)對;但當(dāng)面臨單表數(shù)據(jù)誤刪,或者單表誤drop的情況,如果使用物理全備進行恢復(fù)呢
    2012-11-11
  • win2008 R2 WEB環(huán)境配置之MYSQL 5.6.22安裝版安裝配置方法

    win2008 R2 WEB環(huán)境配置之MYSQL 5.6.22安裝版安裝配置方法

    這篇文章主要介紹了win2008 R2 WEB環(huán)境配置之MYSQL 5.6.22安裝版安裝配置方法,需要的朋友可以參考下
    2016-06-06
  • 一文帶你深入了解并掌握MySQL的DML和DCL

    一文帶你深入了解并掌握MySQL的DML和DCL

    在數(shù)據(jù)庫管理中,數(shù)據(jù)操作語言(DML)和數(shù)據(jù)控制語言(DCL)是至關(guān)重要的概念,DML使我們能夠?qū)?shù)據(jù)庫中的數(shù)據(jù)進行增加、修改和刪除操作,本文將深入探討這兩個關(guān)鍵領(lǐng)域的核心概念和操作方法,幫助您更好地理解和應(yīng)用數(shù)據(jù)庫管理技術(shù)
    2024-02-02
  • MySQL查看主從狀態(tài)的命令實現(xiàn)

    MySQL查看主從狀態(tài)的命令實現(xiàn)

    本文主要介紹了MySQL查看主從狀態(tài)的命令實現(xiàn),我們可以使用SHOW SLAVE STATUS命令來查看主從狀態(tài),本文就來詳細的介紹一下如何實現(xiàn),感興趣的可以了解一下
    2023-10-10
  • Mysql Limit 分頁查詢優(yōu)化詳解

    Mysql Limit 分頁查詢優(yōu)化詳解

    這篇文章主要介紹了Mysql Limit 分頁查詢優(yōu)化的相關(guān)資料,非常不錯,介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • MySQL入門(二) 數(shù)據(jù)庫數(shù)據(jù)類型詳解

    MySQL入門(二) 數(shù)據(jù)庫數(shù)據(jù)類型詳解

    這個數(shù)據(jù)庫所遇到的數(shù)據(jù)類型今天統(tǒng)統(tǒng)在這里講清楚了,以后在看到什么數(shù)據(jù)類型,咱度應(yīng)該認識,對我來說,最不熟悉的應(yīng)該就是時間類型這塊了。但是通過今天的學(xué)習(xí),已經(jīng)解惑了。下面就跟著我的節(jié)奏去把這個拿下吧
    2018-07-07
  • 一文帶你了解MySQL的左連接與右連接

    一文帶你了解MySQL的左連接與右連接

    在MySQL中,左查詢和右查詢是通過使用LEFT?JOIN和RIGHT?JOIN關(guān)鍵字來執(zhí)行的,本文通過詳細的代碼示例簡單介紹這兩種查詢方法的語法,需要的朋友可以參考下
    2023-07-07
  • Mac系統(tǒng)下源碼編譯安裝MySQL 5.7.17的教程

    Mac系統(tǒng)下源碼編譯安裝MySQL 5.7.17的教程

    這篇文章主要介紹了Mac系統(tǒng)下源碼編譯安裝MySQL 5.7.17的教程詳解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • 深入理解MySQL5.7數(shù)據(jù)目錄結(jié)構(gòu)

    深入理解MySQL5.7數(shù)據(jù)目錄結(jié)構(gòu)

    本文主要簡單介紹一下MySQL數(shù)據(jù)文件目錄的物理結(jié)構(gòu)和作用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08

最新評論