删除其他用户访问的数据库?

时间:2009-03-19 21:11:40

标签: database postgresql

我正在尝试从PgAdmin 3中删除数据库,我收到此错误消息:

ERROR: can't delete current database
SQL state: 55006

如何强制删除/修复此数据库的错误?

6 个答案:

答案 0 :(得分:8)

PgAdmin中的快速修复:只需创建另一个空数据库。选择它。删除第一个。瞧。

您也可以在不选择特定数据库的情况下连接到命令行,然后删除数据库。

这里的问题不是其他用户连接到数据库,而是

答案 1 :(得分:2)

最简单的解决方法是重新启动postgresql 。之后你可以摆脱数据库!

答案 2 :(得分:2)

Leeladharan Achar的

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接口,则必须先删除/删除数据库,然后在等待错误之前,必须立即从同一数据库断开连接,然后将其删除而不会出现问题。