关闭pgAdmin4浏览器标签时未关查询工具,如何自动关闭其连接?
解决pgAdmin4关闭浏览器标签后查询工具连接残留问题
临时清理方案
- 重新打开pgAdmin4后,执行SQL定位所有pgAdmin查询工具的活跃连接:
SELECT pid, usename, application_name, state FROM pg_stat_activity WHERE application_name LIKE 'pgAdmin 4 - Query Tool%'; - 针对查询结果中残留的连接,执行终止命令(替换
{pid}为实际进程ID):SELECT pg_terminate_backend({pid});
长期预防方案
- 配置连接自动超时
- 找到pgAdmin4的
config.py配置文件(路径因系统不同有所差异:Windows一般在C:\Program Files\pgAdmin 4\vX\web,Linux在/usr/pgadmin4/web,macOS在/Applications/pgAdmin 4.app/Contents/Resources/web) - 修改以下参数,设置闲置连接自动超时时间(示例为300秒,即5分钟):
# 查询工具连接超时时间(秒) QUERY_TOOL_CONNECTION_TIMEOUT = 300 # 用户会话超时时间(秒) SESSION_TIMEOUT = 300 - 重启pgAdmin4服务使配置生效
- 找到pgAdmin4的
- 规范操作流程
- 关闭浏览器标签前,先手动关闭所有打开的查询工具窗口(点击查询工具右上角关闭按钮)
- 闲置查询工具时,点击工具栏的断开连接按钮主动释放PostgreSQL连接
问题原理
pgAdmin4的查询工具连接依赖HTTP会话,直接关闭浏览器标签时,浏览器不会向pgAdmin4服务器发送连接关闭信号,导致PostgreSQL端的连接持续处于活跃状态。配置超时参数后,pgAdmin4会定期检测闲置连接并自动终止,避免连接堆积。
内容的提问来源于stack exchange,提问作者Heindrick Dumdum
相关产品推荐
相关产品推荐

