我正在使用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
是我的用户名。据我所知,应用程序应该创建一个角色与我的用户名和没有密码。
I tried doing:
psql -h localhost -U <username>
给出相同的错误。
以下是我在SO上尝试答案时得到的各种输出。
$ which psql
/Applications/Postgres.app/Contents/Versions/latest/bin/psql
在进行了更多的搜索之后,我运行了以下命令:
psql -h localhost -U postgres
postgres=#
postgres shell打开。有人能解释一下发生了什么吗?
启动没有任何给定用户名的psql (-U ...
)尝试使用与当前操作系统用户同名的db用户登录。显然DB用户还没有被创建。
- PostgreSQL错误:Fatal: role "username"不存在
为每个DB集群创建的默认超级用户名为postgres
。不要将此与RDBMS的名称或名为postgres
的系统数据库的名称混淆。
您可以使用用户postgres
登录而没有PW这一事实表明了两件事:
- 用户postgres存在(duh).
- 它设置为无密码访问,可以使用
.pgpass
文件,也可以在pg_hba.conf
中使用peer
,ident
或trust
认证方法之一。peer
最有可能。
如果是,作为快速修复从shell:
createuser -h localhost -U postgres vimarshchaturvedi
vimarshchaturvedi
显然是你的操作系统用户名。
- 使用psql命令运行批处理文件,无需密码
登录后,您可以检查哪些登录角色 (= users)退出:
SELECT rolname FROM pg_roles;