Spring mysql连接长时间断掉的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring mysql连接长时间断掉的问题相关的知识,希望对你有一定的参考价值。

参考技术A

维护一个toB智能制造项目的时候,发现mysql偶尔会报错:

这个错误发生时,重新调用接口即可重新连接上,倒是没有特别大的阻碍,但是偶尔跳出还是烦人。所以我花了点时间研究了下。

这个问题很明显,就是mysql连接断了。
网上查到的解决方案无非以下几种:

试过了,但是后来发现,这个参数仅针对mysql4.x有效果,现如今的mysql稳定版大多是5.7,还有很多同行直接使用mysql8.x,所以这个方法没有效果。

这个都不用试,标准的spring项目谁会没事只开一个连接😂,所以也没啥用。

这个默认就是换了的,因为外网ip不稳定,自己内部链接还少些资源。但是并不能从根本性上解决这个问题。

这是我现在使用的方法。等我测试几天,再回来在评论区告诉大家答案。原理很简单,spring的连接池默认走的是dbcp,据说这个玩意内部有硬伤,长期空闲连接mysql是会有问题的,所以换成阿里的druid试一试。

还有一点需要各位明白的是,连接池配置是全局有效的,除非你引用的第三方包自己写死了,但是一般正常的第三方包或者开源包这些配置都是跟着主系统的,或者说主系统的配置是能够覆盖的。我这个系统使用了activiti,作为工作流引擎,引入其他的连接池也没啥问题,照常使用。

综上,等结果吧~

在此感谢这篇博客:
https://blog.csdn.net/qq_27471405/article/details/80921846
它总结的很全了。

保持ssh连接长时间不断开的技巧

我经常用ssh连接服务器,过段时间不用, 需要恢复一下断开的连接, 原因是NAT防火墙喜欢对空闲的会话进行超时处理,以确保它们状态表的干净和内存的低占用率,因为 长时间保持连接, 会长期占用部分系统资源, 为了节省系统资源,NAT防火墙就会把长时间的ssh连接断掉;频繁重连ssh总归是有些麻烦,下边是我对部分ssh工具解决方法:
  1.SecureCRT:
    Optins -> Session Options...
    技术分享图片

 

  2.Xshell  我的是汉化版 英文的也一样

    文件 -》属性

    技术分享图片

  

  3.使用命令参数进行ssh连接时加一个参数 -o ServerAliveInterval=30  来保持活动状态

    ssh -o ServerAliveInterval=30 用户名@IP

 

以上是关于Spring mysql连接长时间断掉的问题的主要内容,如果未能解决你的问题,请参考以下文章

securtCRT如何保持长时间连接

保持ssh连接长时间不断开的技巧

关于MySQL用户会话及连接线程

关于MySQL用户会话及连接线程

为啥我的 mysql 简单外连接需要这么长时间?

Spring Boot:在长时间运行的存储过程中检测到明显的连接泄漏