我正在尝试从PgAdmin 3中删除数据库,我收到此错误消息:
ERROR: can't delete current database
SQL state: 55006
如何强制删除/修复此数据库的错误?
答案 0 :(得分:8)
PgAdmin中的快速修复:只需创建另一个空数据库。选择它。删除第一个。瞧。
您也可以在不选择特定数据库的情况下连接到命令行,然后删除数据库。
这里的问题不是其他用户连接到数据库,而是你。
答案 1 :(得分:2)
最简单的解决方法是重新启动postgresql 。之后你可以摆脱数据库!
答案 2 :(得分:2)
This post对解决此错误很有帮助。
基本上可以归结为:
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'target_db'
AND pid <> pg_backend_pid();
DROP DATABASE 'target_db';
答案 3 :(得分:1)
而不是创建新的数据库,他可以简单地连接到postgres数据库,这是在所有新的PostgreSQL安装中默认创建的。即使它不存在 - template1应该始终存在。
答案 4 :(得分:0)
删除用户的最佳方法如下所述
就像我的用户名是“X”并且它具有对数据库名称的访问权限:“Test”。 现在我们与“测试”数据库
建立连接如果我们尝试:删除用户“X”,这将是下面提到的错误:
错误:无法删除用户“X”,因为用户对某个对象具有权限SQL State = 55006
首先不应该使用“Test”db创建连接。因为它当前正在使用,所以我们无法删除用户。 创建与任何数据库的连接,例如“Test” 现在再试一次 放弃用户测试 它应该在我这边工作得很好,如果你面临问题,请告诉我
答案 5 :(得分:0)
如果要使用pgAdmin4接口,则必须先删除/删除数据库,然后在等待错误之前,必须立即从同一数据库断开连接,然后将其删除而不会出现问题。