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://learn.microsoft.com/zh-cn/sql/connect/jdbc/understand-timeouts?view=sql-server-ver16#:~:text=%E5%A6%82%E6%9E%9C%E8%B6%85%E5%87%BA%E6%AD%A4%E6%97%B6%E9%97%B4%EF%BC%8C%E5%B0%86%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF%EF%BC%8C%E5%B9%B6%E4%B8%94%E4%B8%8D%E4%BC%9A%E5%BB%BA%E7%AB%8B%E5%BC%80%E6%94%BE%E8%BF%9E%E6%8E%A5%E3%80%82%20%E9%9B%B6%E5%80%BC%E8%A1%A8%E7%A4%BA%E8%AF%A5%E8%B6%85%E6%97%B6%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%B3%BB%E7%BB%9F%E8%B6%85%E6%97%B6%EF%BC%8C%E5%9C%A8%2011.2%20%E5%8F%8A%E6%9B%B4%E9%AB%98%E7%89%88%E6%9C%AC%E4%B8%AD%E9%BB%98%E8%AE%A4%E4%B8%BA%2030,%E7%A7%92%E3%80%82%20%E5%9C%A8%E7%89%88%E6%9C%AC%2010.2%20%E5%8F%8A%E6%9B%B4%E4%BD%8E%E7%89%88%E6%9C%AC%E4%B8%AD%EF%BC%8C%E9%BB%98%E8%AE%A4%E8%B6%85%E6%97%B6%E4%B8%BA%2015%20%E7%A7%92%E3%80%82 "了解超时 - JDBC Driver for SQL Server | Microsoft Learn") [https://www.cnblogs.com/devcjq/articles/6409470.html](https://www.cnblogs.com/devcjq/articles/6409470.html "https://www.cnblogs.com/devcjq/articles/6409470.html") [一篇文章彻底理解数据库的各种 JDBC 超时参数 - 知乎](https://zhuanlan.zhihu.com/p/582551494 "一篇文章彻底理解数据库的各种 JDBC 超时参数 - 知乎")

相关推荐
有谁看见我的剑了?15 小时前
Python更换依赖包下载源
开发语言·python
Java程序员威哥15 小时前
云原生Java应用优化实战:资源限制+JVM参数调优,容器启动快50%
java·开发语言·jvm·python·docker·云原生
多多*15 小时前
程序设计工作室1月21日内部训练赛
java·开发语言·网络·jvm·tcp/ip
Engineer邓祥浩15 小时前
设计模式学习(15) 23-13 模版方法模式
java·学习·设计模式
茶本无香15 小时前
设计模式之四:建造者模式(Builder Pattern)详解
java·设计模式·建造者模式
毕设源码-赖学姐15 小时前
【开题答辩全过程】以 高校素拓分管理系统的设计与开发为例,包含答辩的问题和答案
java·eclipse
AI殉道师15 小时前
从0开发大模型之实现Agent(Bash到SKILL)
开发语言·bash
计算机学姐15 小时前
基于SpringBoot的社区互助系统
java·spring boot·后端·mysql·spring·信息可视化·推荐算法
skywalk816315 小时前
介绍一下 Backtrader量化框架(C# 回测快)
开发语言·c#·量化
源代码•宸15 小时前
Leetcode—3314. 构造最小位运算数组 I【简单】
开发语言·后端·算法·leetcode·面试·golang·位运算