首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL连接超时

问MySQL连接超时
EN

Stack Overflow用户
提问于 2010-04-08 01:34:50
回答 3查看 17.4K关注 0票数 2

我在apache tomcat服务器上运行程序,它应该是永久打开的,但是每天早上(客户端部分在晚上是不可访问的)我收到错误消息(在apache tomcat控制台中),MySQL服务器关闭。那么,有什么方法可以防止这种情况发生吗?提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2010-04-11 04:34:31

是的,我也遇到过同样的问题。尝试向您的DataSource添加validationQuery。

下面是我如何定义我的:

代码语言:javascript
复制
<Resource auth="Container"
          type="javax.sql.DataSource"
          name="jdbc/gporder"
          driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost/mydb"
          maxActive="10"
          maxIdle="5"
          validationQuery="SELECT 1"
          testOnBorrow="true"
          testWhileIdle="true"
          timeBetweenEvictionRunsMillis="10000"
          minEvictableIdleTimeMillis="60000"
          username="..." password="..."/>
票数 10
EN

Stack Overflow用户

发布于 2010-04-08 03:29:43

mysql服务器会在一段时间后连接超时,默认情况下是28800秒,很可能就是您遇到的这个超时。

您可以通过向jdbc url添加autoreconnect=true参数(例如jdbc:mysql://localhost/mydb?autoreconnect=true )来指示mysql驱动程序在连接丢失的情况下重新连接。

票数 9
EN

Stack Overflow用户

发布于 2010-04-08 02:51:48

我想你可以直接在你的web应用代码中打开连接。您可以尝试引入一个使用超时的connection pool,应该重新建立连接。

如果这不起作用,请询问网络管理员他是否有状态过滤器来检测超时(当您的客户端空闲时)并关闭连接。

如果您正在使用数据库池,如c3p0或dbcp,请查看其文档,其中应该有配置空闲超时或定期检查连接的设置(这将使连接保持打开,而不会在服务器端超时)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2594583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档