Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

求达人解决Can't connect to MySQL server on 'localhost' (10048) 问题

[复制链接]
yhjhoo 发表于 2009-2-1 17:15:57 | 显示全部楼层
解决办法参考(网上)
一:
我觉得可能是楼主的某些程序写的有问题,可能占用了连接而没有断开。另外,楼主的MYSQL服务器是不是安装有防火墙?特别是诺顿防火墙,我遇到过,明明是允许我的IP访问被保护的服务器,可是一段时间后,挪顿就认为我的IP是非法攻击,自动就给我IP封了,要么等20分钟(默认的规则),要么从新启动服务器就好了。。。。。。。

二:
您使用的是Windows操作系统,此错误与一个注册表键值TcpTimedWaitDelay有关。减小Windows中TcpTimedWaitDelay时间可解决此类问题,默认情况下为240(未设置的情况下也是这个数值)。 此项设置需要到注册表如下位置进行设置:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersTcpTimedWaitDelay
如果注册表中没有TcpTimedWaitDelay这个项目,请增加这个项目,并设置为双字节(DWORD)类型。数值设置为30 ~ 60 之间即可。

三:
服务器ftp测试完毕,重新启动了一下。就一切稳定了。 不过仍然有几个问题没有搞清楚。心里不放心。

2。上周五的时候,ftp压力并不大的时候,30分钟在线统计900多人的时候,20%的比率出现mysql连接失败的20048错误。
2。我当时使用的连接方法是 mysql_connect()。服务器iis+php+isapi的方式。参考了一些资料以后,我当时马上把 mysql_connect() 方法都改成了 mysql_pconnect() 方法,当时,问题看上去是解决了。
3。周六,服务器开始ftp压力测试。25%的比率出现 mysql连接失败的 20048 20055 错误。比上次多了个20055错误。

关键不知道20048 20055错误代码具体代表的错误信息。应该说,问题仍然没有找到确切的答案。

我开了serv-u,有4个socket连接,mysql马上挂了

四:
Can't connect to MySQL server on 'localhost' (20048)
Can't connect to MySQL server on 'localhost' (20055)
MySQL版本 4.0.23-nt

服务器: windows2000 server + iis5.0 + php isapi + mysql

我用php+mysql开发了一个web站,该站访问量很高。
但是正常运行了一个多星期以后,开始频繁出现Can't connect to MySQL server on 'localhost' (20048) 错误。

统计数据如下:
尝试失败连结数 20,594
每小时总连结数 885.37
% 25.92 %

可以看出,连接失败的比率非常高了。需要强调的是,一周之前,同样的连结数,并没有出现如此高的错误率。

原因分析:利用fport工具查看,你会发现有人在耗尽你的数据库连接。而很明显他们的特征是:有数十个连接来自同一IP,而且都是time-waitk

解决方案:2。建议修改最大连接数,或者把 mysql_connect() 方法都改成了 mysql_pconnect() 方法,
                    2。治标,封锁这些IP,一个IP连接大于3的就有点不正常,封
                    3。治本,修改站点程序,严禁刷新太快!
补充说明:可以直接在防火墙封锁外部连接本地的3306端口!

http://www.flydream.cn/cms/html/ ... /2006/1027/301.html
回复

使用道具 举报

yhjhoo 发表于 2009-2-1 17:16:23 | 显示全部楼层
回复

使用道具 举报

yhjhoo 发表于 2009-2-1 17:39:58 | 显示全部楼层
解决办法参考(网上)
一:
我觉得可能是楼主的某些程序写的有问题,可能占用了连接而没有断开。另外,楼主的MYSQL服务器是不是安装有防火墙?特别是诺顿防火墙,我遇到过,明明是允许我的IP访问被保护的服务器,可是一段时间后,挪顿就认为我的IP是非法攻击,自动就给我IP封了,要么等20分钟(默认的规则),要么从新启动服务器就好了。。。。。。。

二:
您使用的是Windows操作系统,此错误与一个注册表键值TcpTimedWaitDelay有关。减小Windows中TcpTimedWaitDelay时间可解决此类问题,默认情况下为240(未设置的情况下也是这个数值)。 此项设置需要到注册表如下位置进行设置:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersTcpTimedWaitDelay
如果注册表中没有TcpTimedWaitDelay这个项目,请增加这个项目,并设置为双字节(DWORD)类型。数值设置为30 ~ 60 之间即可。

三:
服务器ftp测试完毕,重新启动了一下。就一切稳定了。 不过仍然有几个问题没有搞清楚。心里不放心。

2。上周五的时候,ftp压力并不大的时候,30分钟在线统计900多人的时候,20%的比率出现mysql连接失败的20048错误。
2。我当时使用的连接方法是 mysql_connect()。服务器iis+php+isapi的方式。参考了一些资料以后,我当时马上把 mysql_connect() 方法都改成了 mysql_pconnect() 方法,当时,问题看上去是解决了。
3。周六,服务器开始ftp压力测试。25%的比率出现 mysql连接失败的 20048 20055 错误。比上次多了个20055错误。

关键不知道20048 20055错误代码具体代表的错误信息。应该说,问题仍然没有找到确切的答案。

我开了serv-u,有4个socket连接,mysql马上挂了

四:
Can't connect to MySQL server on 'localhost' (20048)
Can't connect to MySQL server on 'localhost' (20055)
MySQL版本 4.0.23-nt

服务器: windows2000 server + iis5.0 + php isapi + mysql

我用php+mysql开发了一个web站,该站访问量很高。
但是正常运行了一个多星期以后,开始频繁出现Can't connect to MySQL server on 'localhost' (20048) 错误。

统计数据如下:
尝试失败连结数 20,594
每小时总连结数 885.37
% 25.92 %

可以看出,连接失败的比率非常高了。需要强调的是,一周之前,同样的连结数,并没有出现如此高的错误率。

原因分析:利用fport工具查看,你会发现有人在耗尽你的数据库连接。而很明显他们的特征是:有数十个连接来自同一IP,而且都是time-waitk

解决方案:2。建议修改最大连接数,或者把 mysql_connect() 方法都改成了 mysql_pconnect() 方法,
                    2。治标,封锁这些IP,一个IP连接大于3的就有点不正常,封
                    3。治本,修改站点程序,严禁刷新太快!
补充说明:可以直接在防火墙封锁外部连接本地的3306端口!

http://www.flydream.cn/cms/html/ ... /2006/1027/301.html
回复

使用道具 举报

yhjhoo 发表于 2009-2-1 17:40:55 | 显示全部楼层
解决办法参考(网上)
一:
我觉得可能是楼主的某些程序写的有问题,可能占用了连接而没有断开。另外,楼主的MYSQL服务器是不是安装有防火墙?特别是诺顿防火墙,我遇到过,明明是允许我的IP访问被保护的服务器,可是一段时间后,挪顿就认为我的IP是非法攻击,自动就给我IP封了,要么等20分钟(默认的规则),要么从新启动服务器就好了。。。。。。。

二:
您使用的是Windows操作系统,此错误与一个注册表键值TcpTimedWaitDelay有关。减小Windows中TcpTimedWaitDelay时间可解决此类问题,默认情况下为240(未设置的情况下也是这个数值)。 此项设置需要到注册表如下位置进行设置:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersTcpTimedWaitDelay
如果注册表中没有TcpTimedWaitDelay这个项目,请增加这个项目,并设置为双字节(DWORD)类型。数值设置为30 ~ 60 之间即可。

三:
服务器ftp测试完毕,重新启动了一下。就一切稳定了。 不过仍然有几个问题没有搞清楚。心里不放心。

2。上周五的时候,ftp压力并不大的时候,30分钟在线统计900多人的时候,20%的比率出现mysql连接失败的20048错误。
2。我当时使用的连接方法是 mysql_connect()。服务器iis+php+isapi的方式。参考了一些资料以后,我当时马上把 mysql_connect() 方法都改成了 mysql_pconnect() 方法,当时,问题看上去是解决了。
3。周六,服务器开始ftp压力测试。25%的比率出现 mysql连接失败的 20048 20055 错误。比上次多了个20055错误。

关键不知道20048 20055错误代码具体代表的错误信息。应该说,问题仍然没有找到确切的答案。

我开了serv-u,有4个socket连接,mysql马上挂了

四:
Can't connect to MySQL server on 'localhost' (20048)
Can't connect to MySQL server on 'localhost' (20055)
MySQL版本 4.0.23-nt

服务器: windows2000 server + iis5.0 + php isapi + mysql

我用php+mysql开发了一个web站,该站访问量很高。
但是正常运行了一个多星期以后,开始频繁出现Can't connect to MySQL server on 'localhost' (20048) 错误。

统计数据如下:
尝试失败连结数 20,594
每小时总连结数 885.37
% 25.92 %

可以看出,连接失败的比率非常高了。需要强调的是,一周之前,同样的连结数,并没有出现如此高的错误率。

原因分析:利用fport工具查看,你会发现有人在耗尽你的数据库连接。而很明显他们的特征是:有数十个连接来自同一IP,而且都是time-waitk

解决方案:2。建议修改最大连接数,或者把 mysql_connect() 方法都改成了 mysql_pconnect() 方法,
                    2。治标,封锁这些IP,一个IP连接大于3的就有点不正常,封
                    3。治本,修改站点程序,严禁刷新太快!
补充说明:可以直接在防火墙封锁外部连接本地的3306端口!
http://www.flydream.cn/cms/html/caozuoxitong/xitongweihu/2006/1027/301.html
回复

使用道具 举报

PriceCollege 发表于 2009-2-20 21:27:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

zealzhang 发表于 2009-2-25 07:29:25 | 显示全部楼层
楼主解决了吗?   这个问题最近一周才出现,  我一天有时候得重启服务器3 4次,客户损失了很多。
回复

使用道具 举报

四川绵阳 发表于 2009-2-27 15:56:24 | 显示全部楼层
偶也遇到这样的情况。。
回复

使用道具 举报

marco608 发表于 2009-3-1 00:42:20 | 显示全部楼层
您使用的是Windows操作系统,此错误与一个注册表键值TcpTimedWaitDelay有关。
减小Windows中TcpTimedWaitDelay时间可解决此类问题,默认情况下为240(未设置的情况下也是这个数值)
此项设置需要到注册表如下位置进行设置
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay  
如果注册表中没有TcpTimedWaitDelay这个项目,请增加这个项目,并设置为双字节(DWORD)类型
数值设置为30 ~ 60 之间即可

-

资料引用:http://www.knowsky.com/384352.html
回复

使用道具 举报

yushanli 发表于 2009-3-24 14:23:20 | 显示全部楼层
我在进行一次群发通知邮件中就出现这个问题,重启MYSQL不行,再重启了IIS才恢复,感觉是群发邮件占用过多的MYSQL连接
回复

使用道具 举报

8106807 发表于 2009-3-24 14:43:31 | 显示全部楼层
看下服务器里面能上网么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-9-29 21:23 , Processed in 0.187923 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表