我是博士后的新手
我为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的注释
请注意,错误消息并不是说缺少数据库,而是说缺少角色。在以后的登录过程中,它可能还会遇到丢失的数据库
但是第一步是检查缺少的角色:命令\du的psql中的输出是什么?在我的Ubuntu系统上,相关行如下所示:
角色列表
角色名称|属性|成员
-----------+-----------------------------------+-----------
postgres |超级用户,创建角色,创建数据库|{}
如果没有至少一个角色具有超级用户,则您有一个问题:-)
如果有,您可以使用它登录。查看您的\l命令的输出:template0和template1数据库上的user权限与超级用户postgres在我的Ubuntu系统上的权限相同。因此,我认为您的设置简单地使用user作为超级用户。因此,您可以尝试使用以下命令登录:
sudo-u用户psql用户
如果user确实是DB超级用户,您可以为他创建另一个DB超级用户和一个私有的空数据库:
创建用户postgres SUPERUSER;
创建具有所有者postgres的数据库postgres;
但是,由于您的postgres.app设置似乎没有这样做,您也不应该这样做。简单地修改教程