我正在开发OS X El Capitan版本10.11.3
我下载了Postgres应用程序并运行了该应用程序。
顶部的大象图标显示版本9.6.1.0(9.6.1.0)
当我点击“Open psql”时,我在终端上得到以下输出。

$ '/Applications/Postgres.app/Contents/Versions/9.6/bin'/psql -p5432
psql: FATAL:  role <username> does not exist

我的用户名在哪里。据我所知,应用程序应该用我的用户名创建一个角色,而不是密码。
我试着做:
psql -h localhost -U <username>

也有同样的错误。
下面是我在SO上尝试答案时得到的各种输出。
$ which psql
/Applications/Postgres.app/Contents/Versions/latest/bin/psql

在进一步搜索之后,我运行了以下命令:
psql -h localhost -U postgres
postgres=#

邮筒打开了。有人能解释发生了什么事吗?

最佳答案

在没有任何给定用户名的情况下启动psql(-U ...)会尝试使用与当前OS用户同名的db用户登录。显然,数据库用户尚未创建。
PostgreSQL error: Fatal: role "username" does not exist
使用每个DB集群创建的默认超级用户名为postgres。不要将此与RDBMS的名称或名为postgres的系统数据库的其他用途混淆。
您可以使用userpostgres登录,但没有PW,这说明了两件事:
用户的PASGRIs存在(DUH)。
它是为无密码访问而设置的,可以使用.pgpass文件,也可以在pg_hba.conf中使用其中一种身份验证方法peeridenttrustpeer很可能。
如果是,从外壳快速修复:

createuser -h localhost -U postgres vimarshchaturvedi

vimarshchaturvedi显然是你的操作系统用户名。
Run batch file with psql command without password
登录后,您可以检查哪些登录角色(=用户)退出:
SELECT rolname FROM pg_roles;

关于macos - psql:严重:角色“vimarshchaturvedi”不存在。 Postgres.app安装,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40521698/

10-14 15:56