如何杀死我所有的postgresql连接?

我试着耙db:下降,但我得到:

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

当前回答

答案隐藏在上面的一条评论中:brew服务重新启动postgresql

其他回答

关于运行进程的所有信息:

SELECT *, pg_terminate_backend(pid)
FROM pg_stat_activity 
WHERE pid <> pg_backend_pid()
AND datname = 'my_database_name';

在PG管理中,您可以断开您的服务器(右键单击服务器)&所有会话将在重新启动时断开

如果你需要断开一个特定用户的会话,这有助于我:

检查当前所有连接:

select * from pg_stat_activity; 

授予你的用户一个角色(不重要):

set role "db_admin";

杀死届:

select pg_terminate_backend(pid)
from pg_stat_activity
where usename = '*** USER NAME TO DISCONNECT ***';

MacOS,如果postgresql安装了brew:

brew services restart postgresql

UBUNTU,

首先用这个检查(在后台运行的kill服务器)

sudo kill -9 $(lsof -i :3000 -t)

如果你没有找到pid,那么你只需要重新启动 Postgresql服务的命令如下所示:

sudo service postgresql restart

答案隐藏在上面的一条评论中:brew服务重新启动postgresql