问题描述
大家好!我最近做网站tomcat会报下面的错误信息**BEGINNESTEDEXCEPTION**com.mysql.jdbc.CommunicationsExceptionMESSAGE:Communicationslinkfailureduetounderlyingexception:**BEGINNESTEDEXCEPTION**java.io.EOFExceptionSTACKTRACE:java.io.EOFExceptionatcom.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1905)atcom.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2351)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2862)atcom.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)atcom.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)atcom.mysql.jdbc.Connection.execSQL(Connection.java:2988)atcom.mysql.jdbc.Connection.execSQL(Connection.java:2917)atcom.mysql.jdbc.Statement.executeQuery(Statement.java:824)atcom.zycy.db.DbTrans.executeQuery(DbTrans.java:127)atorg.apache.jsp.deal_jsp._jspService(deal_jsp.java:106)atorg.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:802)atorg.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)atorg.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)atorg.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:802)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)atorg.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)atorg.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)atorg.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)atorg.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)atjava.lang.Thread.run(UnknownSource)**ENDNESTEDEXCEPTION**Lastpacketsenttotheserverwas0msago.STACKTRACE:com.mysql.jdbc.CommunicationsException:Communicationslinkfailureduetounderlyingexception:**BEGINNESTEDEXCEPTION**每次重启tomcat后就好了,重启mysql数据库不行,重启后白天一天项目运行正常,但是第二天早上又会报同样的错误,我在网上查了很多信息但是还是无法解决请高手帮忙,不胜感激!我做的是网站前台,前台用的技术是jsp+Tomcat+mysql后台用的是struts+hibernate+spring后台没有问题前台显示没有问题,但是前台有个用户登陆系统,就是这个系统进入时总是出现上面报的错误,前台用的都是一个数据库,这是什么原因呢?请高手指点!急!谢谢了!
解决方案
解决方案二:
关注中。。。也想要解决这个问题呢。自己做的新网站http://www.maidatongkai.com经常报这个错误,楼主知道解决办法的话给公布一下,多谢多谢!!!
解决方案三:
mark
解决方案四:
mark
解决方案五:
忘了问楼主了你的数据库链接怎么写的?加?autoReconnect=true了吗?
解决方案六:
是的,加autoReconnect=true了,谢谢各位的帮助,后来用了一种比较笨的方法将mysql的默认链接时间修改的更长就好了。
解决方案七:
如果修改mysql的默认链接时间呢?
解决方案八:
.....
解决方案九:
hibernate.cfg.xml中加入如下内容:<!--当数据库连接异常中断时,是否自动重新连接--><propertyname="connection.autoReconnect">true</property><!--是否使用针对数据库连接池的重连策略--><propertyname="connection.autoReconnectForPools">true</property><propertyname="connection.is-connection-validation-required">true</property>