psql:致命:角色“postgres”不存在

我是博士后的新手

我为mac安装了postgres.app。我在玩弄psql命令,无意中丢失了postgres数据库。我不知道里面是什么

我目前正在编写一个教程:http://www.rosslaird.com/blog/building-a-project-with-mezzanine/

我被困在了sudo-u postgres psql postgres

错误消息:psql:FATAL:角色“postgres”不存在

$psql

/Applications/Postgres.app/Contents/MacOS/bin/psql

这是从psql-l

数据库列表
姓名|所有者|编码|校对| Ctype |访问权限
————+————+———-+———+——-+—————————
用户|用户| UTF8 | en|u US | en|u US |
模板0 | user | UTF8 | en|u US | en|u US |=c/user+
|| | | | user=CTc/user
模板1 | user | UTF8 | en|u US | en|u US |=c/user+
|| | | | user=CTc/user
(3排)

那么我应该采取什么步骤呢?是否删除与psql相关的所有内容并重新安装所有内容

谢谢你们的帮助

注意:如果您使用自制软件安装postgres,请参阅下面@user3402754的注释

请注意,错误消息并不是说缺少数据库,而是说缺少角色。在以后的登录过程中,它可能还会遇到丢失的数据库

但是第一步是检查缺少的角色:命令\dupsql中的输出是什么?在我的Ubuntu系统上,相关行如下所示:

角色列表
角色名称|属性|成员
-----------+-----------------------------------+-----------
postgres |超级用户,创建角色,创建数据库|{}

如果没有至少一个角色具有超级用户,则您有一个问题:-)

如果有,您可以使用它登录。查看您的\l命令的输出:template0template1数据库上的user权限与超级用户postgres在我的Ubuntu系统上的权限相同。因此,我认为您的设置简单地使用user作为超级用户。因此,您可以尝试使用以下命令登录:

sudo-u用户psql用户

如果user确实是DB超级用户,您可以为他创建另一个DB超级用户和一个私有的空数据库:

创建用户postgres SUPERUSER;
创建具有所有者postgres的数据库postgres;

但是,由于您的postgres.app设置似乎没有这样做,您也不应该这样做。简单地修改教程

发表评论