云服务器中的数据库总是连接超时

li20201108

现在业务用的数据库是另一个云服务器中的数据库,使用中经常出现busy阻塞的情况,排查后发现是阻塞在数据库调用,已经加了定时器,进程40s查询一下空表,但还是会出现这种情况。阻塞时会一直阻塞在那里,导致后面的请求无法处理。请问大佬们,有没有办法设置一下数据库连接超时,数据库组件是官方提供那个,连接不上直接抛出异常,不要无休止的等下去。备注一下:云服务器是阿里云的,网络是通畅的,数据库没有问题,因为还有另一个项目也在跑着,那个很正常。

2517 3 0
3个回答

朕震惊了

之前我用阿里云数据库也遇到过类似问题。现象是mysql连接过了一段时间(30秒还是60秒记不清了)不管执行什么sql都超时,原因初步判断为阿里云会把空闲mysql连接单向关闭,关闭时并不会通知客户端。后来解决办法是每隔15秒发送一个select 1 维持连接存活,然后就没有问题了,不知道你的是不是这个问题。你定时40秒改成15秒试下吧。

li20201108

截图
就是这种感觉

li20201108

兄弟们,找到原因了,是硬件问题。网线水晶头连接不稳定,会出现偶尔断网的情况,如果在断网期间正好请求了数据库,就会一直阻塞在那里,折腾死,这个功能已经换java重写了,结果找到原因了。为什么断网后,java的连接池不会出问题呢。

  • weijer 2021-02-03

    应该是mysql驱动没有断线重连机制!

年代过于久远,无法发表回答
🔝