无法在 Postgres 中删除数据库

Posted

技术标签:

【中文标题】无法在 Postgres 中删除数据库【英文标题】:Unable to drop database in Postgres 【发布时间】:2019-06-02 02:18:15 【问题描述】:

我是一般数据库的新手,尤其是 Postgres。 我做错了,因为我无法删除数据库。

我搜索过类似的问题,但总是有人丢失或不知道 ID/密码。在这种情况下,所有者和超级用户是 postgres,但我仍然无法删除我的测试数据库。

test 是一个空数据库,test_creation 是一个表。

【问题讨论】:

请edit您的帖子并将数据显示为文本,而不是图像。此外,您的用户 fmavianemac 不属于任何组,也没有权限。因此,作为该用户,您无法对 test 数据库执行任何操作。你的确切问题是什么?也许你想问如何恢复/重置数据库的root/postgres密码? ***.com/questions/10845998/… 【参考方案1】:

您需要使用以下方式连接到psql

PGPASSWORD=your_password_here psql -h localhost -U your_usename;

然后尝试删除数据库。对于 UI,您可以使用任何软件,例如 pgAdmin III,因为您是 Postgres 新手,所以对您来说会更容易

【讨论】:

【参考方案2】:

只有超级用户或数据库所有者才能删除它。

您的提示显示您没有以超级用户身份连接,并且您显然不是数据库所有者。

要删除数据库,您还必须确保没有人连接到它。

【讨论】:

我不明白。我作为 postgress 连接,在角色中被标记为超级用户。 现在我得到它 '>' for user '#' for root @Treizh:psql postgres 将您连接到名为 postgres 的数据库,而不是作为用户 postgres。要以超级用户身份连接,您需要使用 psql -U postgres ... @a_horse_with_no_name:谢谢,所以如果我连接了一个类型 psql postgres 作为我连接的哪个用户? 如果不指定数据库用户,默认取自PGUSER环境变量,如果没有设置,则使用操作系统用户名

以上是关于无法在 Postgres 中删除数据库的主要内容,如果未能解决你的问题,请参考以下文章

从 Mac 中删除旧的 Postgres 版本 [重复]

从 postgres 数据库中删除重复条目

如何从 Postgres 数据库中删除用户 [重复]

如何在 postgres 9.4 中删除复制槽

在一个命令中删除所有表而不删除 django dbshel​​l 中的 postgres 中的数据库?

如果用户有依赖对象,如何在 postgres 中删除用户