本文主要是介绍【Pg数据库】删除数据库失败,提示有session正在连接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 问题现象
- 原因分析
- 处理方法
- 1.断开所有连接
- 2. 查找相关连接数据库的主机信息
- 3. 再次删除
- 总结
问题现象
Navicat 删除 PostgreSQL 数据库时失败,提示:正在被其他用户访问(有session正在连接)如何处理?
如下所示:
ERROR: database 'xXx' is being accessed by other users
DETAIL: There are 5 other sessions using the database.
原因分析
- 可能当前仍有session正在连接数据库,或者有session在不停地连接该数据库,故删除数据库失败。
- 需要查看数据库中的session,检查是否仍有session在连接,如果有,排查连接数据库的机器,停止连接后再删除数据库。
处理方法
1.断开所有连接
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname='数据库'
AND pid<>pg_backend_pid();
2. 查找相关连接数据库的主机信息
(如果有程序会不停的连的话只能把连的程序停了才能删除)
SELECT *
FROM pg_stat_activity
WHERE datname='数据库'
3. 再次删除
drop database 数据库;
总结
这篇关于【Pg数据库】删除数据库失败,提示有session正在连接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!