问题
我正在开发一个使用 Apache Tomcat 中的连接池与 MySQL 进行通信的应用程序。我想知道为什么要使用比默认值 28,800 秒更小的wait_timeout ?我发现减少等待超时有很多缺点,但是有什么优点呢?
背景
参数wait_timeout定义为
服务器在关闭非交互式连接之前等待该连接上的活动的秒数。
问题
如果我将 wait_timeout 设置得太小,那么 MySQL 将终止我的 Web 应用程序正在使用的连接池中仍然有效的连接。在我的情况下,我是当前在任何时候使用该应用程序的唯一人,因此当我不测试它时,数据库连接自然会处于空闲状态。我可以通过简单地将 MySQL 上的 wait_timeout 延长到非常大的值来解决这个问题,这样即使我离开办公桌 2 周,池也永远不会返回死连接。