SELECT *
FROM pg_stat_activity
WHERE usename = 'user_name';
作为同一用户或超级用户,您可以取消用户的所有(其他)连接:
SELECT pg_cancel_backend(pid) -- (SIGINT)
-- pg_terminate_backend(pid) -- the less patient alternative (SIGTERM)
FROM pg_stat_activity
WHERE usename = 'user_name'
AND pid <> pg_backend_pid();
5条答案
按热度按时间093gszye1#
从集群的任何DB内部:
第22条:您需要先连接到数据库。也许您可以以其他用户的身份连接?(默认情况下,某些连接是为具有
superuser_reserved_connections
设置的超级用户保留的。)要获取此用户的每个连接的详细信息,请执行以下操作:
作为同一用户或超级用户,您可以取消用户的所有(其他)连接:
最好确保这样做是可以的。您不希望以这种方式终止重要的查询(或连接)。
pg_cancel_backend()
和pg_terminate_backend()
的值。从Linux shell
你自己启动了那些连接吗?也许是你的挂脚本?你应该可以杀死那些连接(如果你确定可以这么做的话)。
您可以使用
ps
调查哪些进程可能出错:如果您确定要终止某个进程(最好确保您 * 不 * 希望终止服务器):
或者用
SIGKILL
代替SIGTERM
:f1tvaqid2#
我对pgAdmin很陌生,但到目前为止我还没有使用过命令行。我遇到了同样的问题,我发现解决这个问题的最简单方法是删除 Jmeter 板中“Database Activity”(数据库活动)中列出的进程。
(just单击PID左侧的X)
这是一个有点乏味,因为你必须删除每个进程单独,但这样做应该释放您的可用连接。希望这是有用的。
3gtaxfhh3#
您需要连接到postgresql数据库并运行命令:
5f0d552i4#
检查
pool_size
,这可能是太多或太小的设置值在本地psql
设置。你应该首先检查pool_size = 10
(如默认)。这应该修复错误的too_many_connections
。n1bvdmb65#
请检查该用户允许的连接数,您可以取消该用户的其他连接,然后重新登录。但最好增加该用户的连接限制。
这个问题主要出现在PgAdmin上。看起来这么多年过去了,这个问题仍然存在。