Mysql连接问题,求助!!

riyuecao316 2010-04-16 08:30:16
各位好,我是mysql新手,最近遇到一个问题,实在是解决不了了,在这里求助各位!先谢过了~~
我的开发环境是XP,在XP下装的mysql5.0(使用的端口3306),B/S应用跑在tomcat5.5上,在这个环境下,通过ie进入我的系统,进行频繁的查询,tomcat后台不会报错。但是,在另一个环境下就不行。
另一个环境:操作系统windows2003,装的也是mysql5.0(使用的端口3308,因为那台机器的3306被占用了),B/S应用跑在tomcat5.5上,这个环境下,通过ie进入我的系统,进行频繁的查询操作时,tomcat后台就会报错,错误如下:..address already in use:connect..
会是什么原因造成的呢?之前我怀疑是更改端口引起的,但是我在开发环境下,把mysql的端口换成3308后,进行测试,没有问题出现。会不会是另一个环境的网络问题??急呀~~~
谢谢大家!!
...全文
55 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
riyuecao316 2010-04-16
  • 打赏
  • 举报
回复
谢谢各位,但是我还是不大理解,为啥两个环境基本一样,我的应用是完全一样的,但是结果会这么不一样呢
ACMAIN_CHM 2010-04-16
  • 打赏
  • 举报
回复
参考下贴

http://topic.csdn.net/u/20090920/22/14d4f597-b7d4-4c24-b0db-abb2956e66c3.html
[收集]mysql 无法联接故障现象及原因
永生天地 2010-04-16
  • 打赏
  • 举报
回复
大概原因是短时间内new socket操作很多,而socket.close()操作并不能立即释放绑定的端口,而是把端口设置为TIME_WAIT状态,过段时间(默认240s)才释放,(用netstat -na可以看到),最后系统资源耗尽(windows上是耗尽了pool of ephemeral ports ,这段区间在1024-5000之间; )

apache httpclient与close_wait



最近做httpclient做转发服务,发现服务器上总是有很多close_wait状态的连接,而且这些连接都不会关闭,最后导致服务器没法建立新的网络连接,从而停止响应。
后来在网上搜索了一下,发现解决的方法也很简单,如果想重用连接,那就使用连接管理器,从连接管理器里获取连接,然后定时的用连接管理器来释放空闲连接。httpclient自带了SimpleHttpConnectionManager,提供了Java代码
closeIdleConnections(long idleTimeout)

closeIdleConnections(long idleTimeout) 这样的方法。
如果不需要重用链接,则直接在httpmethod创建时,设置一个http头信息就可以了
Java代码
httpmethod.setRequestHeader("Connection", "close");

httpmethod.setRequestHeader("Connection", "close");
这样就不会有恼人的close_wait了。

iihero_ 2010-04-16
  • 打赏
  • 举报
回复
看看3308端口是不是也被占用?或者说它用的还是3306端口

netstat -ano |findstr 3308 (3306)
tasklist | findstr <pid>

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧