網(wǎng)站功能升級(jí)后,mysql?每隔幾天就會(huì)出現(xiàn)10055無法連接的錯(cuò)誤提示。?具體表現(xiàn):?1、php運(yùn)行正常?2、運(yùn)行navicat客戶端連接,有時(shí)會(huì)出現(xiàn)正常!大部分情況也是無法正常連接!?3、重啟mysql服務(wù)無效,增大mysql連接數(shù)max_connections?也不正常,而且根據(jù)記錄來看,最大連接數(shù)并沒有超過限制。??運(yùn)行環(huán)境:Windows?2008?server?r2?x64 Mysql:5.5 IIS7?錯(cuò)誤分析:?產(chǎn)生該問題的罪魁禍?zhǔn)撞⒎莔ysql本身,而是windows操作系統(tǒng)!Php程序在每次連接數(shù)據(jù)庫的時(shí)候,都會(huì)產(chǎn)生一個(gè)tcp連接,每次連接windows都會(huì)分配一個(gè)動(dòng)態(tài)端口,連接結(jié)束后該端口不會(huì)馬上釋放,而是變?yōu)門IME_WAIT狀態(tài),方便其他連接復(fù)用。當(dāng)TIME_WAIT狀態(tài)的端口過多,操作系統(tǒng)就無法為新的連接分配動(dòng)態(tài)端口,從而出現(xiàn)10055錯(cuò)誤!?用命令netstat?-an?可以查看當(dāng)前所有的動(dòng)態(tài)端口使用情況。???Windows2008操作系統(tǒng)默認(rèn)的動(dòng)態(tài)端口連接數(shù)是16384個(gè)??赏ㄟ^命令netsh?int?ipv4?show?dynamicport?tcp?進(jìn)行查看 ???處于TIME_WAIT狀態(tài)的動(dòng)態(tài)端口存活時(shí)間默認(rèn)是30s,可通過注冊(cè)表查看?[HKEY_LOCAL_MACHINE]?[SYSTEM]?[CurrentControlSet]?[Services]?[Tcpip] [Parameters]?[TcpTimedWaitDelay] ? TcpTimedWaitDelay描述:確定?TCP/IP?可釋放已關(guān)閉連接并重用其資源前,必須經(jīng)過的時(shí)間。關(guān)閉和釋放之間的此時(shí)間間隔通稱?TIME_WAIT?狀態(tài)或兩倍最大段生命周期(2MSL)狀態(tài)。此時(shí)間期間,重新打開到客戶機(jī)和服務(wù)器的連接的成本少于建立新連接。減少此條目的值允許?TCP/IP?更快地釋放已關(guān)閉的連接,為新連接提供更多資源。如果運(yùn)行的應(yīng)用程序需要快速釋放和創(chuàng)建新連接,而且由于?TIME_WAIT?中存在很多連接,導(dǎo)致低吞吐量.??解決方案:?1、減少TcpTimedWaitDelay?字段的值,網(wǎng)上的說法是30-60之間比較好。?2、增大動(dòng)態(tài)端口的個(gè)數(shù),命令如下:netsh?int?ipv4?set?dynamicport?tcp?start=10000?num=50000 執(zhí)行后,用查看命令確認(rèn)一下:???參考資料:?1、mysql?10055錯(cuò)誤說明:http://dev.mysql.com/doc/refman/5.6/en/can-not-connect-to-server.html?2、Windows更改動(dòng)態(tài)端口說明:http://support.microsoft.com/kb/929851/zh-cn
來源:http://x.shufa99.com/?post=5