gpt4 book ai didi

database - 杀死一个 postgresql session /连接

转载 作者:太空狗 更新时间:2023-10-30 01:36:39 28 4
gpt4 key购买 nike

如何终止我所有的 postgresql 连接?

我正在尝试 rake db:drop 但我得到:

ERROR:  database "database_name" is being accessed by other users
DETAIL: There are 1 other session(s) using the database.

我已经尝试关闭从 ps -ef | 中看到的进程grep postgres 但这也不起作用:

kill: kill 2358 failed: operation not permitted

最佳答案

您可以使用 pg_terminate_backend()杀死一个连接。您必须是 super 用户才能使用此功能。这在所有操作系统上都一样。

SELECT 
pg_terminate_backend(pid)
FROM
pg_stat_activity
WHERE
-- don't kill my own connection!
pid <> pg_backend_pid()
-- don't kill the connections to other databases
AND datname = 'database_name'
;

在执行此查询之前,您必须 REVOKE避免新连接的 CONNECT 权限:

REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;

If you're using Postgres 8.4-9.1 use procpid instead of pid

SELECT 
pg_terminate_backend(procpid)
FROM
pg_stat_activity
WHERE
-- don't kill my own connection!
procpid <> pg_backend_pid()
-- don't kill the connections to other databases
AND datname = 'database_name'
;

关于database - 杀死一个 postgresql session /连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5108876/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com