错误:必须是数据库所有者

11

我想要删除一个名为 'mysitedb' 的特定数据库,所以我打开了终端并输入了命令 'dropdb mysitedb',然后出现了错误提示 'ERROR: must be owner of database mysitedb'。我知道这个特定数据库的用户名和密码,但不知道如何删除它。我是postgresql的新手,请温柔一点 :P


1
显然,您不知道具有删除数据库权限的Postgresql用户的用户名/密码。这就是您需要获取的内容。 - paulsm4
5
这将向您展示如何查找拥有数据库的用户。 - Philip Couling
注意:我知道拥有它的用户。 - mal danel
我知道密码,但不知道如何登录。 - mal danel
dropdb <database_name> -U <owner_username> -W 它会要求您输入密码。 - Ildar Musin
谢谢@PhilipCouling,那就是解决方案。我以为我知道谁拥有这个表,但在执行了那个查询之后,我真正弄清楚了是谁拥有它。 - Noitidart
2个回答

2
我想删除一个名为'mysitedb'的特定数据库,所以我打开了终端并输入了命令'dropdb mysitedb',然后出现错误消息'ERROR: must be owner of database mysitedb'...
好的 - 这意味着您可能没有正确的凭据。您需要一个具有删除该数据库权限的PostgreSQL用户的用户名/密码。
注意:我知道拥有该数据库的用户。而且我知道密码。
那么在发生权限错误时,你登录的是哪个用户?
无论如何,您需要使用dropdb命令: dropdb -U db_owner_username -i [-h host] mysitedb 这是PostgreSQL文档页面
以下是确认所有权的方法:
SELECT d.datname as "Name",
pg_catalog.pg_get_userbyid(d.datdba) as "Owner"
FROM pg_catalog.pg_database d
WHERE d.datname = 'database_name'
ORDER BY 1;

0

首先切换cli用户:

sudo su postgres

然后正常连接到您的数据库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接