我正在开发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
中使用其中一种身份验证方法peer
、ident
或trust
。peer
很可能。
如果是,从外壳快速修复:
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/