(conn:22667) Could not send query: unexpected end of exception, read 0 bytes from 4異常解決記錄

錯誤原文:

java.sql.SQLNonTransientConnectionException: (conn:22667) Could not send query: unexpected end of exception, read 0 bytes from 4 at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:156) at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:118) at org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:245) at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:343) at org.mariadb.jdbc.MariaDbStatement.executeQuery(MariaDbStatement.java:513) ............. at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLException: Could not send query: unexpected end of exception, read 0 bytes from 4 Query is: select 1 at org.mariadb.jdbc.internal.util.LogQueryTool.exceptionWithQuery(LogQueryTool.java:113) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:168) at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:337) ... 160 common frames omitted Caused by: java.io.EOFException: unexpected end of exception, read 0 bytes from 4 at org.mariadb.jdbc.internal.io.input.StandardPacketInputStream.getPacketArray(StandardPacketInputStream.java:246) at org.mariadb.jdbc.internal.io.input.StandardPacketInputStream.getPacket(StandardPacketInputStream.java:214) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1047) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:1028) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:165) ... 161 common frames omitted 2019-06-27 17:00:49.508 [http-nio-8083-exec-10] ERROR druid.sql.Statement - {conn-10034, stmt-20086} execute error. select 1 java.sql.SQLNonTransientConnectionException: (conn:22668) Could not send query: unexpected end of exception, read 0 bytes from 4 at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:156) at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:118) at org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:245) at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:343) at org.mariadb.jdbc.MariaDbStatement.executeQuery(MariaDbStatement.java:513) .............. Caused by: java.sql.SQLException: Could not send query: unexpected end of exception, read 0 bytes from 4 Query is: select 1 at org.mariadb.jdbc.internal.util.LogQueryTool.exceptionWithQuery(LogQueryTool.java:113) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:168) at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:337) ... 160 common frames omitted Caused by: java.io.EOFException: unexpected end of exception, read 0 bytes from 4 at org.mariadb.jdbc.internal.io.input.StandardPacketInputStream.getPacketArray(StandardPacketInputStream.java:246) at org.mariadb.jdbc.internal.io.input.StandardPacketInputStream.getPacket(StandardPacketInputStream.java:214) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1047) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:1028) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:165) ... 161 common frames omitted

原因分析:從錯誤內容分析可能是連接數據庫連接丟失造成的,而連接爲什麼丟失自然就想到可能是連接超時,所以就試着修改數據庫超時時間,然後就真的解決了(意外)。。。在此記錄一下
解決方法:

1: 查看當前數據庫超時時間設置:
SHOW GLOBAL VARIABLES LIKE '%timeout%';
2:修改相關超時時間:
SET GLOBAL net_write_timeout=28800; #寫超時時間
SET GLOBAL net_read_timeout=6000; #讀超時時間
SET GLOBAL wait_timeout=28800; #等待超時時間
3:設置完需要重啓項目異常就消失了。注意是重啓項目,不是重啓數據庫,上面設置如果重啓數據庫需要重新設置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章