Java | The last packet sent successfully to the server was xxx milliseconds ago

最近在部署代码后,后端总是会遇到这个问题,设备通道在访问数据库时经常会报错,在搜集大量资料后我以为是配置问题,首先要保证:

(1)首先确定jdbc.url地址是正确的

(2)修改wait_timeout和interactive_timeout

(3)修改mysql驱动版本,将版本提升,所以建议如果修改timeout不成功的话,一定要将驱动版本升级一下再试试

我这里服务器的版本是mysql5.7.41,JDBC-connect是用的8.0.11,故没有上述问题。

所以我以为是第二个问题,因为我这边总是显示收到数据距上一次收到 一直是120s 左右的时间。

但是在云服务器上更改mysql的配置文件后,根据mysql命令进入命令行还是查询不到更改的timeout值,一直是300.

直到后来!!!我一直看每次的Exception都是间隔120s左右!

我将请求更改到100s就不会出现问题!

所以!我又在 后端代码 使用代码访问数据库发现这里的timeout一个是120,一个是300!

终于破案了!

还是mysql 的 timeout变量的问题。

如果查询时使用的是show variables的话, 会发现设置并没有生效, 除非重新登录再查看.

这是因为使用show variables的话就等同于使用show session variables, 查询的是会话变量, 只有使用show global variables查询的才是全局变量.

如果仅仅想修改会话变量的话, 可以使用

类似set wait_timeout=10;或者set session wait_timeout=10;这样的语法.


附上一些修改的命令:

[root@YousunIOTServer ~]# which mysql

/usr/bin/mysql

[root@YousunIOTServer ~]# mysql --verbose --help|grep -A 1 'Default options'

Default options are read from the following files in the given order:

/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

[root@YousunIOTServer ~]#

rm -f /user/bin/.my.cnf.swp

rm -f /etc/.my.cnf.swp

把my.cnf配置文件加个max_connections包括(插入命令,删除命令,修改命令。退出保存命令)

你要有这个文件写权限,shell下输入:

vi /etc/my.cnf

进入vi后,按i

移动上下左右键到,你想插入的位置,然后打字。这时跟记事本是一样的。

打完字后,按ESC

然后输入

:wq

就保存退出了。

启动数据库服务:systemctl start mysqld.service

重启数据库服务:service mysqld restart

查看数据库运行状态:service mysqld status

查看最大连接数:show variables like '%max_connections%';

查看最大使用连接:show global status like 'Max_used_connections';


部分参考:

了解超时 - JDBC Driver for SQL Server | Microsoft Learn

https://www.cnblogs.com/devcjq/articles/6409470.html

一篇文章彻底理解数据库的各种 JDBC 超时参数 - 知乎

相关推荐
Ryan_Gosling1 分钟前
C++-构造函数-接口
开发语言·c++
10km27 分钟前
java:Apache Commons Configuration2占位符解析异常的正确解法:${prefix:name:-default}
java·apache·configuration2·变量插值·interpolation
customer0827 分钟前
【开源免费】基于SpringBoot+Vue.JS个人博客系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
灰色人生qwer35 分钟前
SpringBoot 项目配置日志输出
java·spring boot·后端
2301_793069821 小时前
Spring Boot +SQL项目优化策略,GraphQL和SQL 区别,Spring JDBC 等原理辨析(万字长文+代码)
java·数据库·spring boot·sql·jdbc·orm
阿华的代码王国1 小时前
【从0做项目】Java搜索引擎(6)& 正则表达式鲨疯了&优化正文解析
java·后端·搜索引擎·正则表达式·java项目·从0到1做项目
服务端相声演员1 小时前
Oracle JDK、Open JDK zulu下载地址
java·开发语言
是姜姜啊!1 小时前
java连接redis
java·redis
hhw1991121 小时前
spring boot知识点5
java·数据库·spring boot
EQUINOX11 小时前
lab4 CSAPP:Cachelab
java·后端·spring