postgresql – 如何在不停止服务器的情况下删除与特定数据库的所有连接?

我想删除当前打开到特定Postgresql数据库但没有重新启动服务器或断开与其他数据库的连接的所有连接(会话).

我怎样才能做到这一点?

这是我在StackOverflow上对 very similar question的回答.

根据您的postgresql版本,您可能会遇到错误,这会使pg_stat_activity省略被删除用户的活动连接.这些连接也未在pgAdminIII中显示.

如果您正在进行自动测试(您也在其中创建用户),这可能是一种可能的情况.

在这种情况下,您需要恢复以下查询

SELECT pg_terminate_backend(pg_stat_activity.procpid) 
 FROM pg_stat_get_activity(NULL::integer) 
 WHERE datid=(SELECT oid from pg_database where datname = 'your_database');

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...