首页 文章

Java MySQL JDBC通信链接失败

提问于
浏览
0

我有一个JDBC mysql连接的服务器,但每天早上我检查服务器时出现此错误:

java.sql.SQLException:通信链接失败:java.io.EOFException,底层原因:null ** BEGIN NESTED EXCEPTION ** java.io.EOFException STACKTRACE:com.mysql.jdbc.MysqlIO.readFully中的java.io.EOFException (MysqlIO.java:1395)com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1539)位于com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1930)com.mysql.jdbc.MysqlIO的com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1539) . sendCommand(MysqlIO.java:1168)在com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279)的com.mysql.jdbc.Connection.execSQL(Connection.java:2281)com.mysql.jdbc.PreparedStatement上.executeQuery(PreparedStatement.java:1634)在hu.craftbox.Server.CraftboxServerHandler.messageReceived(CraftboxServerHandler.java:158)在org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)在org.jboss . org.jboss.netty.channel.DefaultChannelPipeline上的netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)$ DefaultChannelHandlerContext.sendUpst令(DefaultChannelPipeline.java:791)在org.jboss.netty.handler.timeout.ReadTimeoutHandler.messageReceived(ReadTimeoutHandler.java:184)在org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)在组织.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)在org.jboss.netty.channel.DefaultChannelPipeline $ DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)在org.jboss.netty.channel.Channels.fireMessageReceived (Channels.java:296)在org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70)在org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)在org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)在org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)在org.jboss.netty.channel.Channels.fireMessageReceived( Channels.java:255)org.jboss.netty.c hannel.socket.nio.NioWorker.read(NioWorker.java:88)位于org.jboss.netty.channel.socket的org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108) . nio.AbstractNioSelector.run(AbstractNioSelector.java:318)位于org.jboss.netty.channel.socket.nio.NioWorker的org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) . 运行(NioWorker.java:178)org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)org.jboss.netty.util.internal.DeadLockProofWorker $ 1.run(DeadLockProofWorker.java:42)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)在java.lang.Thread.run(Thread.java:744) 结束嵌套异常在com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1714)
在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1930)
在com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1168)
在com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279)
在com.mysql.jdbc.Connection.execSQL(Connection.java:2281)
在com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1634)
在hu.craftbox.Server.CraftboxServerHandler.messageReceived(CraftboxServerHandler.java:158)
在org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
在org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
在org.jboss.netty.channel.DefaultChannelPipeline $ DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
在org.jboss.netty.handler.timeout.ReadTimeoutHandler.messageReceived(ReadTimeoutHandler.java:184)
在org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
在org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
在org.jboss.netty.channel.DefaultChannelPipeline $ DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
在org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
在org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70)
在org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
在org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
在org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
在org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
在org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
在org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
在org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)
在org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
在org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
在org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
在org.jboss.netty.util.internal.DeadLockProofWorker $ 1.run(DeadLockProofWorker.java:42)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)
在java.lang.Thread.run(Thread.java:744)

什么可能导致这个问题,我该如何解决?

1 回答

  • 1

    MySQL会在一段时间后丢弃未使用的连接,因为它假定对方忘记关闭它 .

    您需要做的是根据您的业务正确配置MySQL,检查here如何配置您的MySQL .

相关问题