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

谢谢你们的帮助!


当前回答

这篇文章帮助我解决了psql: FATAL: role“postgres”不存在的问题。

我使用的是mac,所以我在终端输入了这个命令:

创建用户 -s postgres

这对我很有效。

其他回答

通过homebrew安装了新的mac (M1)和最新的postgres(14.0),没有什么对我的这个主题有帮助,但我只是重新安装了postgres,它帮助了我:

brew services stop postgresql
rm -rf /opt/homebrew/var/postgres/*
brew reinstall postgresql
initdb --locale=C -E UTF-8 /opt/homebrew/var/postgres
brew services restart postgresql

所以,这是一个奇迹之类的……

然后:

psql -d postgres

在Mac上,执行

createuser -s postgres

在一个终端工作。

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

Brew服务启动postgresql

then

echo $ USER

您将看到您的postgres用户名。

这篇文章帮助我解决了psql: FATAL: role“postgres”不存在的问题。

我使用的是mac,所以我在终端输入了这个命令:

创建用户 -s postgres

这对我很有效。

对于m1芯片,如果您还没有通过homebrew安装postgresql包,请在终端中安装:

brew install postgre

然后手动创建用户名:

/opt/homebrew/bin/createuser -s <username> 

你的错误可能已经解决了;但是如果出现错误

FATAL:数据库“databasename”不存在

然后你必须手动创建你的数据库:

/opt/homebrew/bin/createdb -U <username>  <databasename>