我刚刚安装了Postgres,并且一直在1-2小时内修改它和各种配置。
我坚持无法更改为postgres用户
$ su - postgres 产生以下错误: su: unknown login: postgres
$ sudo -u postgres psql 产生以下错误: sudo: unknown user: postgres
这些尝试是作为普通用户进行的。以root身份尝试具有完全相同的结果。我已经在OS X上通过Homebrew安装了postgres,并且已经阅读了多次说明。
我刚刚安装了Postgres,并且一直在1-2小时内修改它和各种配置。
我坚持无法更改为postgres用户
$ su - postgres 产生以下错误: su: unknown login: postgres
$ sudo -u postgres psql 产生以下错误: sudo: unknown user: postgres
这些尝试是作为普通用户进行的。以root身份尝试具有完全相同的结果。我已经在OS X上通过Homebrew安装了postgres,并且已经阅读了多次说明。
postgres用户身份运行。
postgres_。注意尾随下划线。另外,您确定您(或安装程序)确实创建了PostgreSQL实例并启动了数据库吗?
postgres用户了。解决了安装postgresql-server软件包后的问题。
Answers:
psql:使用我的默认用户名登录
psql -U postgres:以postgres用户身份登录
我似乎不需要Sudo。
我将Postgres.app用于我的OS X postgres数据库。它消除了确保安装正常运行和数据库服务器正常启动的麻烦。在这里查看:http : //postgresapp.com
编辑:感谢@Erwin Brandstetter纠正我对参数的使用。
psql postgres和psql -d postgres。
通过psql --help,当您未设置数据库名称的-d选项(不带选项)时,它将是您的用户名;如果未设置-U,则数据库用户名也将是您的用户名,依此类推。
但是通过initdb(创建第一个数据库)命令,您的用户名没有任何数据库名称。它有一个名为的数据库postgres。初始化数据存储区时,始终由initdb命令创建第一个数据库。该数据库称为postgres。
因此,如果您没有另一个名为用户名的数据库,则需要执行psql -d postgrespsql命令。而且似乎它-d默认提供选项,psql postgres也可以工作。
如果您创建了另一个与您的用户名相同的数据库名称(应该使用来完成createdb),那么您只能执行命令psql。而且似乎第一个数据库用户名由brew设置为您的计算机用户名。
psql -d <first database name> -U <first database user name>
要么,
psql -d postgres -U <your machine username>
psql -d postgres
将默认工作。
OS X倾向于在系统帐户名称前加上“ _”;您没有说使用什么版本的OS X,但是至少在10.8和10.9中,_postgres用户存在于默认安装中。请注意su,由于该帐户没有密码,因此您将无法使用该帐户(root用户除外)。sudo -u _postgres另一方面,应该可以正常工作。
这里的讨论和答案对我有很大帮助:
我得到完全相同的错误与kryshahsu - 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
为了始终避免输入密码,您可以按照此处所述选择三个选项。
对我来说,这是macOS上的解决方案重新安装psql
brew install postgres
启动PostgreSQL服务器
pg_ctl -D /usr/local/var/postgres start
初始化数据库
initdb /usr/local/var/postgres
如果此命令抛出错误,则rm旧数据库文件并重新运行以上命令
rm -r /usr/local/var/postgres
创建一个新的数据库
createdb postgres_test
psql -W postegres_test
您将登录到该数据库,并可以在此处创建用户进行登录