The last packet successfully received from the server was 10,047 milliseconds ago.

在这里插入图片描述

此报错信息往往与mysql数据库服务器设置的wait_timeout时间参数有关。

  • 查看服务器wait_timeout 连接参数(单位:秒)
 show global variables like 'wait_timeout';
  • 设置最大连接时长
set global wait_timeout=10; 

当程序里的Connection超过数据库指定的时长以后,如果还没有会话信息,则服务器会断开此连接,但是客户端是无感知的,当客户端拿着这个断开的连接再去访问时,就会报这个错误信息。

  • 基于mybatis的连接池方式设置连接参数
				<property name="poolMaximumIdleConnections" value="0"/>
				<property name="poolMaximumActiveConnections" value="10"/>
				<property name="poolPingEnabled" value="true" />
				<property name="poolPingQuery" value="select 1"/>
				<property name="poolPingConnectionsNotUsedFor" value="3500"/>

poolMaximumActiveConnections:设置最大连接数
poolMaximumIdleConnections:设置空闲时间的连接数
poolPingEnabled:开启连接检测
poolPingQuery:连接检测sql
poolPingConnectionsNotUsedFor:连接活跃检测的间隔时间,这个时间一定要小于mysql服务器的wait_timeout。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐