top
Loading...
A.2.2.1.在Windows上與MySQL服務器的連接失敗
A.2.2.1. 在Windows上與MySQL服務器的連接失敗
當你在具有很多TCP/IP連接的Windows上運行MySQL服務器,并經常在客戶端上遇到“無法連接到MySQL服務器”錯誤時,可能是因為Windows不允許足夠的臨時(短命)端口用于這類連接。

默認情況下,Windows允許用于使用5000個臨時(短命)TCP端口。任何端口關閉后,它將在TIME_WAIT狀態保持120秒。與重新初始化全新的連接相比,該狀態允許以更低的開銷重新使用連接。但是,在該時間逝去前,無法再次使用該端口。

對于小的可用TCP端口堆棧(5000),以及具有TIME_WAIT狀態的大量在短時間內打開和關閉的TCP端口,你很可能遇到端口耗盡問題。處理該問題的方法有兩種:

·         通過調查連接池以及可能的持久連接,減少快速消耗的TCP端口數。

·         調整Windows注冊表中的某些設置(請參見下面)。

要點:下述步驟涉及更改Windows 注冊表。更改注冊表之前,請備份注冊表,并確認你已掌握在出現問題時恢復注冊表的方法。關于備份年、恢復和編輯注冊表的更多信息,請請參見Microsoft知識庫中的下述文獻:http://support.microsoft.com/kb/256986/EN-US/

·         啟動注冊表編輯器(Regedt32.exe)。

·         在注冊表中確定下述鍵值的位置:

·                HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters

·         在“編輯”菜單上點擊“添加值”,然后增加下述注冊值:

·                Value Name: MaxUserPort
·                Data Type: REG_DWORD
·                Value: 65534

它用于設置為任何用戶提供的臨時端口數。有效范圍介于500065534之間(十進制)。默認值為0x13885000,十進制)。

·         在“編輯”菜單上點擊“添加值”,然后增加下述注冊值:

·                Value Name: TcpTimedWaitDelay
·                Data Type: REG_DWORD
·                Value: 30

它用于設置關閉之前將TCP端口連接保持在TIME_WAIT狀態的秒數。有效范圍介于0秒和300秒之間。默認值為0x78120秒)。

·         退出注冊表編輯器。

·         重新引導機器。

注釋:撤銷上述設置十分簡單,就像刪除你創建的注冊表一樣。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/problems.html
北斗有巢氏 有巢氏北斗