You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决DBeaver角色连接数过多问题:如何删除所有连接?

解决PostgreSQL "too many connections for role dbeaver" 错误

一、修复pg_stat_activity访问权限问题

要终止连接必须能查询pg_stat_activity视图,先解决权限问题:

  • 用超级用户登录PostgreSQL,执行授权语句(替换x为你的用户名):
    GRANT SELECT ON pg_stat_activity TO x;
    
  • 若你本身是超级用户,直接用超级用户会话执行后续终止语句,普通用户默认无法查看所有连接的进程ID。

二、强制终止目标角色的所有连接

使用超级用户会话执行以下SQL(根据PostgreSQL版本选择):

-- PostgreSQL 10及以上版本
SELECT pg_terminate_backend(pid) FROM pg_stat_activity 
WHERE usename = 'dbeaver' AND pid != pg_backend_pid();

-- PostgreSQL 10以下旧版本
SELECT pg_terminate_backend(procpid) FROM pg_stat_activity 
WHERE usename = 'dbeaver' AND procpid != pg_backend_pid();

注:pid != pg_backend_pid()用于避免终止当前执行这条语句的连接,防止会话中断。

三、清理DBeaver本地连接缓存

  • 彻底关闭DBeaver(包括托盘进程,确保完全退出)
  • 找到DBeaver的连接缓存目录:
    • Windows:C:\Users\<你的用户名>\AppData\Roaming\DBeaverData\workspace6\.metadata\.plugins\org.jkiss.dbeaver.core\connections
    • macOS:~/Library/DBeaverData/workspace6/.metadata/.plugins/org.jkiss.dbeaver.core/connections
    • Linux:~/.local/share/DBeaverData/workspace6/.metadata/.plugins/org.jkiss.dbeaver.core/connections
  • 删除该目录下的所有文件(这些是历史连接会话的缓存数据)
  • 重新启动DBeaver,重新建立数据库连接

四、临时调整最大连接数(应急方案)

当前最大连接数10过小,可临时调整:

-- 临时生效,重启PostgreSQL后失效
ALTER SYSTEM SET max_connections = 30;
SELECT pg_reload_conf();

若需永久生效,找到PostgreSQL配置文件postgresql.conf,修改max_connections参数后重启数据库服务。

内容的提问来源于stack exchange,提问作者student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:52:15