gpt4 book ai didi

macos - psql : FATAL: role "postgres" does not exist

转载 作者:行者123 更新时间:2023-11-29 11:03:53 24 4
gpt4 key购买 nike

我是一个 postgres 新手。

我为 mac 安装了 postgres.app。我在玩 psql 命令时不小心删除了 postgres 数据库。我不知道里面是什么。

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

我卡在 sudo -u postgres psql postgres

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

$ 哪个 psql

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

这是 psql -l

的打印结果
                                List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------+------------+----------+---------+-------+---------------------------
user | user | UTF8 | en_US | en_US |
template0 | user | UTF8 | en_US | en_US | =c/user +
| | | | | user =CTc/user
template1 | user | UTF8 | en_US | en_US | =c/user +
| | | | | user =CTc/user
(3 rows)

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

谢谢大家的帮助!

最佳答案

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

请注意,错误消息不是谈论缺少的数据库,而是谈论缺少的角色。稍后在登录过程中,它也可能偶然发现丢失的数据库。

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

                              List of roles
Role name | Attributes | Member of
-----------+-----------------------------------+-----------
postgres | Superuser, Create role, Create DB | {}

如果 superuser 没有至少一个角色,那么你就有问题了:-)

如果有,您可以使用它登录。并查看 \l 命令的输出:usertemplate0template1 数据库上的权限是与 super 用户 postgres 在我的 Ubuntu 系统上一样。所以我认为您的设置很简单,使用 user 作为 super 用户。所以你可以试试这个命令来登录:

sudo -u user psql user

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

CREATE USER postgres SUPERUSER;
CREATE DATABASE postgres WITH OWNER postgres;

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

关于macos - psql : FATAL: role "postgres" does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15301826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com