PostgreSQL 删除数据库时报错 ERROR: database "test" is being accessed by other users
PostgreSQL About 696 words错误信息
查询出错 (7): ERROR: database "test" is being accessed by other users
DETAIL: There are 10 other sessions using the database.
问题原因
其他进程正在连接此数据库,需要kill
掉正在使用此数据库的连接。
解决方法
方法一(推荐)
强制删除。
适用于PostgreSQL 13
及以上。
备注:都到了删除数据库的地步了,强不强制已经不重要了。
DROP DATABASE test WITH (FORCE);
方法二
通过pg_terminate_backend
结束除了当前进程外的其他进程,然后再执行DROP
命令。
适用于PostgreSQL 12
及以下。
test
替换为需要删除的数据库名字。
步骤一:kill
其他进程。
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 = 'test'
;
步骤二:删除数据库。
DROP DATABASE test;
参考文档
Views: 628 · Posted: 2024-03-14
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...