mysql 連線錯誤(10048)

2021-09-01 04:38:32 字數 1168 閱讀 1883

解決can't connect to mysql server on 'localhost' (10048), 一般見於使用mysql的windows 2003伺服器.

錯誤的出現的原因:

應用程式需要快速釋放和建立新連線, 但是由於 time_wait 中存在的連線超過預設值,導致較低吞吐量.

解決方案:

和本錯誤密切相關的兩個windows的登錄檔項:tcptimedwaitdelay和maxuserport的值.

tcptimedwaitdelay 確定 tcp/ip 可釋放已關閉連線並重用其資源前, 必須經過的時間. 關閉和釋放之間的此時間間隔通稱 time_wait 狀態或兩倍最大段生命週期(2msl)狀態. 此時間期間, 重新開啟到客戶機和伺服器的連線的成本少於建立新連線. 減少此條目的值允許 tcp/ip 更快地釋放已關閉的連線, 為新連線提供更多資源.

maxuserport 確定從系統請求任何可用使用者埠時所用最大埠數,tcp/ip 可指定的最高埠號. 如果建立 tcp 連線最大埠連線大於 5000, 本地計算機響應以下錯誤資訊wsaenobufs (10055): 因為系統缺乏足夠緩衝區或者因為佇列已滿而無法執行套接字上操作, 從而導致應用程式的10048錯誤.

開啟登錄檔編輯器regedit

tcptimedwaitdelay 設定:

找到 hkey_local_machine\system\currentcontrolset\ services\tcpip\parameters 登錄檔子鍵

並建立名為 tcptimedwaitdelay 的新 reg_dword 值

設定此值為十進位制 30, 十六進製制為 0×0000001e

該值等待時間將是 30 秒。

本項的預設值:0xf0(16進製制), 等待時間設定為 240 秒

maxuserport 設定(增加最大值埠連線):

找到 hkey_local_machine\system\currentcontrolset\ services\tcpip\parameters 登錄檔子鍵

並建立名為 maxuserport 的新 reg_dword 值

設定此值為十進位制最低 32768

該值等待時間將是 30 秒。

重啟windows系統。

本項的預設值:5000(十進位制)

關閉登錄檔編輯器, 重啟windows系統。

WCF呼叫TCP 10048錯誤

呼叫編寫了緩衝功能的wcf,看上去一切正常。結果沒多久忽然發現 幾乎不能訪問了,偶爾會可以用一下,然後又抽風了 把 的錯誤日誌拉下來一看,統統都是這個錯 查了很多資料,也想了很多辦法,甚至用截包軟體分析了tcp資料流,最後發現,好白痴啊 當沒有設定過tcp引數的時候,windows伺服器預設定義使用...

mysql的連線錯誤 Mysql連線錯誤

function getmysqlconnection host,user,pass,database else mysqlerror false 我已經建立了乙個上面的函式,它實現了給定mysql使用者憑據的連線 我通過使用實現了這個功能 require myfunc.php getmysqlco...

mysql連線錯誤碼 Mysql連線錯誤

function getmysqlconnection host,user,pass,database else mysqlerror false 我已經建立了乙個如上所述的函式,它在給定的mysql使用者憑證上實現連線 我通過使用實現了這個功能 require myfunc.php getmysq...