10048 mysql_MySQL 的 10048问题,如何解决?
匿名用戶
1級
2019-01-07 回答
解決Can't connect to MySQL server on 'localhost' (10048), 一般見于使用mysql的windows 2003服務(wù)器.
錯誤的出現(xiàn)的原因:
應(yīng)用程序需要快速釋放和創(chuàng)建新連接, 但是由于 TIME_WAIT 中存在的連接超過默認(rèn)值,導(dǎo)致較低吞吐量.
解決方案:
和本錯誤密切相關(guān)的兩個windows的注冊表項:TcpTimedWaitDelay和MaxUserPort的值.
TcpTimedWaitDelay 確定 TCP/IP 可釋放已關(guān)閉連接并重用其資源前, 必須經(jīng)過的時間. 關(guān)閉和釋放之間的此時間間隔通稱 TIME_WAIT 狀態(tài)或兩倍最大段生命周期(2MSL)狀態(tài). 此時間期間, 重新打開到客戶機和服務(wù)器的連接的成本少于建立新連接. 減少此條目的值允許 TCP/IP 更快地釋放已關(guān)閉的連接, 為新連接提供更多資源.
MaxUserPort 確定從系統(tǒng)請求任何可用用戶端口時所用最大端口數(shù),TCP/IP 可指定的最高端口號. 如果建立 TCP 連接最大端口連接大于 5000, 本地計算機響應(yīng)以下錯誤信息WSAENOBUFS (10055): 因為系統(tǒng)缺乏足夠緩沖區(qū)或者因為隊列已滿而無法執(zhí)行套接字上操作, 從而導(dǎo)致應(yīng)用程序的10048錯誤.
打開注冊表編輯器regedit
TcpTimedWaitDelay 設(shè)置:
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注冊表子鍵
并創(chuàng)建名為 TcpTimedWaitDelay 的新 REG_DWORD 值
設(shè)置此值為十進(jìn)制 30, 十六進(jìn)制為 0×0000001e
該值等待時間將是 30 秒。
本項的默認(rèn)值:0xF0(16進(jìn)制), 等待時間設(shè)置為 240 秒
MaxUserPort 設(shè)置(增加最大值端口連接):
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注冊表子鍵
并創(chuàng)建名為 MaxUserPort 的新 REG_DWORD 值
設(shè)置此值為十進(jìn)制最低 32768
該值等待時間將是 30 秒。
重啟windows系統(tǒng)。
本項的默認(rèn)值:5000(十進(jìn)制)
關(guān)閉注冊表編輯器, 重啟windows系統(tǒng)
總結(jié)
以上是生活随笔為你收集整理的10048 mysql_MySQL 的 10048问题,如何解决?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: psid mysql_MySQL数据双向
- 下一篇: linux cmake编译源码,linu