安装mysql 10055_Can’t connect to MySQL server on ‘localhost’ (10055) | 学步园
服务器:windows2000server+iis5.0+phpisapi+mysql我用php+mysql开发了一个web站,该站访问量很高。但是正常运行了一个多星期以后,开始频繁出现Can'tconnecttoMySQLserveron'localhost'(10048)错误。统计数据如下:尝试失败...
服务器: windows2000 server + iis5.0 + php isapi + mysql
我用php+mysql开发了一个web站,该站访问量很高。
但是正常运行了一个多星期以后,开始频繁出现Can't connect
to MySQL server on 'localhost' (10048) 错误。
统计数据如下:
尝试失败连结数 10,594
每小时总连结数 885.37
%
15.91 %
可以看出,连接失败的比率非常高了。需要强调的是,一周之前,同样的连结数,并没有出现如此高的错误率。
原因分析:利用fport工具查看,你会发现有人在耗尽你的数据库连接。而很明显他们的特征是:有数十个连接来自同一IP,而且都是time-wait
解决方案,1。建议修改最大连接数,或者把 mysql_connect() 方法都改成了 mysql_pconnect() 方法,
2。治标,封锁这些IP,一个IP连接大于3的就有点不正常,封
3,治本,修改站点程序,严禁刷新太快!
链接数的修改:
此错误与一个注册表键值TcpTimedWaitDelay有关。减小Windows中
TcpTimedWaitDelay时间可解决此类问题,默认情况下为240(未设置的情况下也是这个数值)。此项设置需要到注册表如下位置进行设置:[HKEY_LOCAL_MACHINE]
[SYSTEM] [CurrentControlSet] [Services] [Tcpip] [Parameters]
[TcpTimedWaitDelay]如果注册表中没有TcpTimedWaitDelay这个项目,请增加这个项目,并设置为双字节(DWORD)类型。数值设置为30
~ 60 之间即可。
TcpTimedWaitDelay描述:确定 TCP/IP
可释放已关闭连接并重用其资源前,必须经过的时间。关闭和释放之间的此时间间隔通称 TIME_WAIT
状态或两倍最大段生命周期(2MSL)状态。此时间期间,重新打开到客户机和服务器的连接的成本少于建立新连接。减少此条目的值允许 TCP/IP
更快地释放已关闭的连接,为新连接提供更多资源。如果运行的应用程序需要快速释放和创建新连接,而且由于 TIME_WAIT
中存在很多连接,导致低吞吐量,则调整此参数。 如何查看或设置: 使用 regedit 命令访问
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/ Services/TCPIP/Parameters
注册表子键并创建名为 TcpTimedWaitDelay 的新 REG_DWORD 值。 将此值设置为十进制 30,其为十六进制
0×0000001e。该值将等待时间设置为 30 秒。 停止并重新启动系统。 缺省值:0xF0,它将等待时间设置为 240 秒(4 分钟)。建议值:最小值为
0×1E,它将等待时间设置为 30 秒。
http://adamghost.com/2008/11/mysql-10055-%E9%94%99%E8%AF%AF%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/?jdfwkey=gkden3
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)