注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

文刀三皮的博客

专注于运行维护

 
 
 

日志

 
 
 
 

解决Can't connect to MySQL server on 'localhost' (10048)  

2011-03-03 09:30:00|  分类: Mysql数据库 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

解决Can't connect to MySQL server on 'localhost' (10048), 一般见于使用mysql的windows 2003服务器.

c:>netstat -ano 可查看到 本机有不少端口连接到 mysql的 3308,状态都是LAST_ACK,所以导致discuz论坛 刷新会出现 不能连接数据库的报错。
  协议       本地地址                      外部地址                 状态         PID
  TCP    127.0.0.1:4994         127.0.0.1:3308         LAST_ACK  1400
  TCP    127.0.0.1:4996         127.0.0.1:3308         LAST_ACK  1400
  TCP    127.0.0.1:4999         127.0.0.1:3308         LAST_ACK  1400

错误出现的原因:

应用程序需要快速释放和创建新连接, 但是由于 TIME_WAIT 中存在的连接超过默认值,导致较低吞吐量.
微软技术支持知识库中指出 :当您试图从大于 5000 的 TCP 端口连接时收到错误 http://support.microsoft.com/kb/q196271/
我从本地端口可以看到 127.0.0.1:4999 已经到了5000

解决方案:
和本错误密切相关的两个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, 十六进制为 0x0000001e
该值等待时间将是 30 秒。设置范围30-60秒
本项的默认值:0xF0(16进制), 等待时间设置为 240 秒

MaxUserPort 设置(增加最大值端口连接):
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键
并创建名为 MaxUserPort 的新 REG_DWORD 值
设置到 65535
该值等待时间将是前面所设置的 30 秒。本项的默认值:5000(十进制)
关闭注册表编辑器, 在方便的时刻重启Windows系统。
建议以上操作现在测试环境中测试之后再调整生产线上的服务器

问题得到解决。这个是治标。

如果要治本,还需要查看PID值,我这里出现状态为LAST_ACK 的PID值是1400,从任务管理器中可以看到这个PID对应的是tomcat6.exe,可见问题出在tomcat下某个程序。

  评论这张
 
阅读(19)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018