(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:设置完需要重启项目异常就消失了。注意是重启项目,不是重启数据库,上面设置如果重启数据库需要重新设置。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ect to display 这是一个错误信息,意思是无法连接到显示器。可能是由于以下原因导致的: 1. 显示器没有正确连接或已损坏。 2. 显示器驱动程序没有正确安装或已损坏。 3. 操作系统或应用程序出现了问题,导致无法连接到显示器。 如果您遇到了这个问题,可以尝试以下解决方法: 1. 检查显示器是否正确连接,是否有信号输入。 2. 检查显示器驱动程序是否正确安装,是否需要更新。 3. 尝试重新启动操作系统或应用程序,看看是否能够解决问题。 如果以上方法都无法解决问题,建议联系技术支持或专业人士进行处理。 ### 回答2: "qxcbconnection: could not conn"是指在使用Qt库进行程序开发过程中,出现了无法连接到X server的错误。这个错误通常发生在尝试使用GUI界面的代码时,因为Qt需要连接到X server来显示图形界面。 出现这个错误的原因可能有以下几种情况: 1. Qt库找不到X server:在Unix/Linux操作系统中,X server是用来管理图形界面的服务。如果Qt库无法找到X server或者无法连接到X server,就会出现这个错误。这可能是因为X server没有正确运行, 或者Qt库的路径配置有误。 2. 权限问题:连接到X server需要相应的权限。如果当前用户没有足够的权限来连接到X server,就会出现这个错误。可以通过提升当前用户的权限或者更改X server的配置来解决。 3. 显示设备不可用:有时候,因为电源管理或其他原因,显示设备可能会被关闭或者未正常连接,导致Qt无法连接到X server。此时,需要检查显示设备的连接状态或者重新启动系统来解决问题。 解决这个错误的方法有以下几种: 1. 检查X server的运行状态:确认X server已经正确运行。可以通过运行`ps aux | grep X`命令来查看X server的运行情况。 2. 检查Qt库的路径配置:确保Qt库的路径正确配置并且能够找到X server。 3. 检查当前用户的权限:确保当前用户有足够的权限来连接到X server。可以通过更改用户权限或者提升用户权限来解决问题。 4. 检查显示设备的连接状态:确保显示设备已经正确连接并且处于可用状态。可以尝试重新连接显示设备或者重新启动系统来解决问题。 总之,出现"qxcbconnection: could not conn"错误时,需要检查X server的运行状态、Qt库的路径配置、用户权限和显示设备的连接状态,以找到解决问题的方法。 ### 回答3: `QXcbConnection: Could not connect` 是一个Qt库的错误信息,表示无法连接到X server(X 服务器),它通常在尝试运行使用Qt库编写的GUI程序时出现。 这个错误通常由以下几个原因引起: 1. X server 未运行:X server 是Linux和Unix系统上的一个图形窗口管理器。如果没有启动X server,Qt程序将无法连接。请确保X server 正在运行,并检查X Window System 是否正常工作。 2. 缺少权限:有时候,Qt程序无法连接到X server 是由于权限问题造成的。当使用以root身份登录并切换到普通用户时,可能会出现该情况。在这种情况下,可以尝试使用`xhost`命令来允许其他用户连接到X server。 3. 环境变量问题:在某些情况下,Qt程序找不到正确的X server。可以通过设置`DISPLAY`环境变量来解决此问题。使用`export DISPLAY=:0`命令将DISPLAY设置为正确的X server显示器。 4. 错误的X server地址:如果在程序中指定了错误的显示器地址,也会导致连接失败。确定运行时指定的显示器地址是否正确。 需要注意的是,`QXcbConnection: Could not connect` 错误可能还有其他原因,具体问题需要根据具体情况进行排查。在解决此错误时,可以查看具体的错误日志,以获取更多有关错误原因的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值