每当我尝试删除数据库,我得到以下错误:

ERROR:  database "pilot" is being accessed by other users
DETAIL:  There is 1 other session using the database.

当我使用:

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB';

我终止了来自该数据库的连接,但如果我试图在此之后删除数据库,则有人以某种方式自动连接到该数据库并给出此错误。那是什么? 除了我,没人用这个数据库。


当前回答

对我来说,我只是重新启动postgresql。

systemctl restart postgresql

其他回答

我找到了这个问题的解决方案,尝试在终端运行这个命令

ps -ef | grep postgres

使用此命令终止进程

sudo kill -9 PID

只需检查连接是什么,它来自哪里。你可以看到这些:

SELECT * FROM pg_stat_activity WHERE datname = 'TARGET_DB';

也许这是你们之间的联系?

对我来说,我只是重新启动postgresql。

systemctl restart postgresql

第一:

sudo systemctl restart postgresql

然后:

drop database DATABASE_NAME;

解决方案: 1. 关闭Pg服务器 2. 它将断开所有活动连接 3.重启Pg服务器 4. 试试你的命令