我是postgres的新手。

我安装了postgres。我在玩psql命令,我不小心掉了postgres数据库。我不知道里面有什么。

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

我被困在sudo -u postgres psql postgres

错误信息:psql: FATAL: role "postgres"不存在

$ which 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和重新安装一切?

谢谢你们的帮助!


当前回答

这对我很有效

创建用户 -s postgres

注意:我用的是mac catalina

其他回答

如果你从brew安装了postgres,在你的终端上运行:

/usr/local/opt/postgres/bin/createuser -s postgres

我认为这里不需要sudo,因为psql -l返回一个数据库列表。这告诉我initdb是在用户的当前用户下运行的,而不是在postgres用户下运行的。

你可以:

psql

并继续本教程。

我建议A.H创建postgres用户和数据库的一般要点,因为许多应用程序可能希望存在这一点。

简要说明:

PostgreSQL不会在对操作系统的管理访问下运行。相反,它与普通用户一起运行,为了支持对等身份验证(询问操作系统谁正在尝试连接),它创建了一个用户和运行初始化过程的用户的db。在这种情况下,它是您的普通用户。

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

请注意,错误消息不是关于缺少数据库,而是关于缺少角色。在稍后的登录过程中,它可能还会发现丢失的数据库。

但是第一步是检查缺少的角色:命令\du在psql中的输出是什么?在我的Ubuntu系统中,相关的行是这样的:

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

如果没有至少一个超级用户的角色,那么你有一个问题:-)

如果有的话,你可以用它来登录。查看\l命令的输出:template0和template1数据库的用户权限与我的Ubuntu系统中超级用户postgres的权限相同。我认为你的设置简单地使用user作为超级用户。所以你可以试试这个命令来登录:

sudo -u user psql user

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

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

但自从你毕业后。应用程序设置似乎不这样做,你也不应该这样做。简单调整教程。

MAC:

安装自酿酒 酿造安装postgres initdb /usr/local/var/postgres /usr/local/ cellar /postgresql/<version>/bin/createuser -s postgres或/usr/local/opt/ postgress /bin/createuser -s postgres只使用最新版本。 手动启动postgres服务器:pg_ctl -D /usr/local/var/postgres start


在启动时启动服务器

mkdir -p ~/库/启动代理 Ln -sfv /usr/local/opt/postgresql/*。plist ~ /图书馆/ LaunchAgents launchctl load ~/Library/LaunchAgents/homebrew.mx .postgresql.plist


现在,它已经设置好了,使用psql -U postgres -h localhost或使用PgAdmin进行GUI登录。

默认情况下,postgres用户没有任何登录密码。

查看此站点以获取更多类似文章:https://medium.com/@Nithanaroy/ installing-postgre-on -mac-18f017c5d3f7

我今天遇到了类似的问题,实际上我不知道用户名是什么。这里有2件事,如果你在企业和没有系统管理员访问postgres将创建你的企业用户名作为postgres管理用户名。如果你通过Homebrew安装,肯定会发生这种情况。在这种情况下,只需使用brew运行psql服务,并对用户名进行回显

Brew服务启动postgresql

then

echo $ USER

您将看到您的postgres用户名。