MySQL 连接未关闭

Roy*_*ley 5 java mysql connection jdbc

我有一个在 Tomcat7 上运行的 Web 应用程序,连接到 MySQL 5.5。

我有两台运行相同代码的服务器:

  • 乌班图

  • 红帽

Ubuntu 运行良好,保持稳定的 8-16 个连接,但 Red Hat 会泄漏连接,并且连接计数不断增加,永远不会减少。服务器最终重置了约 152 个连接。

正在调用关闭连接的代码:

try {
    conn.close();           
} catch (SQLException e) {
    exceptionController.logException(this.getClass().getSimpleName(), "finalize Db", e.getMessage(), false);
}finally{
    conn = null;
}
Run Code Online (Sandbox Code Playgroud)

所有与 MySQL 的连接都来自此应用程序。

为什么行为上有差异? 是否有我应该考虑的配置设置 - 例如关闭休眠连接设置

Ubuntu 服务器状态:

在此输入图像描述

红帽服务器状态:

MySQLWorkbench 服务器状态屏幕

连接列表的部分屏幕: MySQLWorkbench 服务器连接列表

我发现这篇文章,它似乎已经减慢了操作系统连接,但它们仍然在缓慢增长。

编辑

研究表明连接未正确关闭。为什么连接会在一种环境中关闭,而在另一种环境中却不会?

我已my.cnf使用以下设置进行编辑:

wait_timeout=30
Run Code Online (Sandbox Code Playgroud)

然而,客户端连接正在休眠并且永远不会被杀死。服务器已使用新设置重新启动。

我不明白什么?

Roy*_*ley 1

我找到了解决方案。XP 上的SO 数据库管理员

RedHat有自己的mysql文件夹:

[root@localhost ~]# locate my.cnf
/etc/my.cnf
/opt/rh/mysql55/root/etc/my.cnf
Run Code Online (Sandbox Code Playgroud)

这是一个配置问题,我的配置文件没有被使用!