无法登录系统用户postgres

アレッ*_*ックス 10 postgresql macos postgresql-9.2

我使用brew在mac上安装了postgresql.在安装过程中我没有被问及postgresql的密码.现在我需要创建一个用户而不能:

Alexs-MacBook-Air:mydir alex$ su - postgres
Password:
su: Sorry
Run Code Online (Sandbox Code Playgroud)

无论我使用什么密码(包括空),都是错的.重置它的最简单方法是什么?

Dan*_*ité 33

我使用brew在mac上安装了postgresql.在安装过程中我没有被问及postgresql的密码.

这是正常的,因为brew不需要或创建任何postgres帐户.PostgreSQL进程在您自己的帐户下运行.到目前为止,其他3个答案在这方面都是错误的.

有关brew info postgres信息,请参阅输出.

要创建新的数据库帐户,您可以从自己的操作系统帐户启动:

/usr/local/bin/createdb someusername

或者在psql中:

/usr/local/bin/psql -d postgres

然后作为SQL命令: CREATE USER someusername PASSWORD 'somepassword';

这应该有效,因为brew通常会在以下initdb时间创建:

  • 一个数据库超级用户帐户,其登录名与您的操作系统帐户相同(alex在您的情况下似乎如此)
  • 一个名为的数据库postgres,可用于记录管理任务的信息,例如创建用户.

使用完整路径的目的/usr/local/bin是到达由提供的命令brew,而不是与系统/usr/bin附带的同名命令,或者由其他PostgreSQL提供程序可能安装的具有相同名称的命令,例如作为postgres.app或macports或entreprisedb.在Mac OS X上安装postgresql有5-6种竞争和不兼容的方式.

编辑:较新版本的MacOS X桌面版不再预安装postgres客户端命令.至少从MacOS X 10.10(Yosemite)开始就是这种情况,可能是10.9.

  • 这应该是公认的答案.Brew的安装没有`postgres`用户. (2认同)

Cra*_*ger 14

您正在尝试访问名为的系统用户postgres.根据您在其他答案上留下的评论,没有这样的用户.您无法更改不存在的用户的密码.

也许是_postgres或者postgres_?我知道OS X上的一些安装程序使用了奇怪的名称.或者您的安装从未postgres在系统上成功创建过用户,因此您无法为其设置密码?

通常,您永远不需要为此用户设置密码.你可以

sudo -u postgres psql
Run Code Online (Sandbox Code Playgroud)

或者您需要以postgres超级用户身份运行的任何命令.

请注意,您不需要su任何东西.


Erw*_*ter 6

没有默认密码.要在用户postgres使用时运行shell :

sudo su - postgres
Run Code Online (Sandbox Code Playgroud)

或更现代的形式(由克雷格建议):

sudo -u postgres -i
Run Code Online (Sandbox Code Playgroud)

输入exit完成后.更多:
PostgreSQL错误:致命:角色"用户名"不存在

事实证明,根本没有创建用户.看看@Daniel的回答.