MySQL连接超时

Nik*_*yGS 2 java mysql tomcat

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

Mau*_*rry 10

是的,我遇到了同样的问题.尝试将validationQuery添加到DataSource.

这是我如何定义我的:

<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="..."/>
Run Code Online (Sandbox Code Playgroud)


nos*_*nos 9

一段时间后,mysql服务器超时连接,默认情况下它是28800秒,这可能是你正在达到的超时.

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

  • 值得注意的是[MySQL Connector/J文档]不推荐这种方法(http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html#idm140446220006144)*"因为当应用程序无法正确处理SQLExceptions时,它具有与会话状态和数据一致性相关的副作用,并且仅在您无法配置应用程序以正确处理因死亡和过时连接而导致的SQLExceptions时使用"*. (2认同)