mysql 10055 错误解决方案
纠结,非常纠结~弄这个问题几天了,都没解决,官方有人提出这问题,但是很少看到解决方案。
最后是在一哥们的BLOG里面看到了,感谢了!
Description:
环境:Windows 2003 + IIS + PHP + MYSQL,服务器运行一段时间后,提示Can’t connect to MySQL server on ‘localhost’(10055)错误。
无法重启mysql 服务,提示端口被占。
检查发现端口并没被占。
重起服务器后恢复正常。
但过一段时间以后,又出现此错误。
查看MYSQL日志,并无不正常记录。
Solution:
此错误与一个注册表键值TcpTimedWaitDelay有关。
减小Windows中TcpTimedWaitDelay时间可解决此类问题,默认情况下为240(未设置的情况下也是这个数值)。
此项设置需要到注册表如下位置进行设置:
[HKEY_LOCAL_MACHINE] [SYSTEM] [CurrentControlSet] [Services] [Tcpip] [Parameters] [TcpTimedWaitDelay]如果注册表中没有TcpTimedWaitDelay这个项目,请增加这个项目,并设置为双字节(DWORD)类型。
数值设置为30 ~ 60 之间即可。
PostScript:
TcpTimedWaitDelay描述:确定 TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间。
关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍最大段生命周期(2MSL)状态。
此时间期间,重新打开到客户机和服务器的连接的成本少于建立新连接。
减少此条目的值允许 TCP/IP 更快地释放已关闭的连接,为新连接提供更多资源。
如果运行的应用程序需要快速释放和创建新连接,而且由于 TIME_WAIT 中存在很多连接,导致低吞吐量,则调整此参数。
如何查看或设置:使用 regedit 命令访问
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\TCPIP\Parameters 注册表子键并创建名为 TcpTimedWaitDelay 的新REG_DWORD 值。
将此值设置为十进制 30,其为十六进制 0x0000001e。
该值将等待时间设置为 30 秒。
停止并重新启动系统。
缺省值:0xF0,它将等待时间设置为 240 秒(4 分钟)。
建议值:最小值为 0x1E,它将等待时间设置为 30 秒。