我和kryshah一样,当我使用su - postgres
和sudo -u postgres psql
时,会出现完全相同的错误。DanielM的答案也给出了错误信息。
错误设置时的输出
然而,从przbabu的评论中可以得到答案。
masi$ psql
psql: FATAL: database "masi" does not exist
masi$ psql -U postgres
psql: FATAL: role "postgres" does not exist
masi$ psql postgres
psql (9.4.1)
Type "help" for help.
我认为这个问题的某些部分可能与OSX中的所有者设置有关。
masi$ ls -al /Users/
total 0
drwxr-xr-x 7 root admin 238 Jul 3 09:50 .
drwxr-xr-x 37 root wheel 1326 Jul 2 19:02 ..
-rw-r--r-- 1 root wheel 0 Sep 10 2014 .localized
drwxrwxrwt 7 root wheel 238 Apr 9 19:49 Shared
drwxr-xr-x 2 root admin 68 Jul 3 09:50 postgres
drwxr-xr-x+ 71 masi staff 2414 Jul 3 09:50 masi
但是执行sudo chown -R postgres:staff /Users/postgres
会出现chown: invalid user: ‘postgres:staff’
的错误。
简而言之,这并不是解决问题的方法。
使用postgres安装提供的工具来创建用户和数据库。
获取正确的设置和输出
在postgres安装后,有特定的命令可以向数据库系统添加新用户。
在initdb之后,按照这里的描述运行以下命令。
createuser --pwprompt postgres
createdb -Opostgres -Eutf8 masi_development
psql -U postgres -W masi_development
为了避免频繁要求密码,您有三个选择,如此处所述。请参考
此处。
postgres
用户身份运行。 - krystahpostgres_
。请注意下划线。此外,您确定您(或安装程序)实际上已创建了PostgreSQL实例并启动了数据库吗? - Craig Ringerpostgresql-server
包后,我终于解决了无法切换到postgres
用户的问题。 - builder-7000