无法登录系统用户postgres

时间:2014-06-01 17:02:46

标签: macos postgresql postgresql-9.2

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

Alexs-MacBook-Air:mydir alex$ su - postgres
Password:
su: Sorry

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

4 个答案:

答案 0 :(得分: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。

答案 1 :(得分:12)

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

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

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

sudo -u postgres psql

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

请注意you shouldn't need su

答案 2 :(得分:6)

没有默认密码。要以用户postgres运行shell,请使用:

sudo su - postgres

或更现代的形式(as advised by Craig):

sudo -u postgres -i

完成后输入exit。更多:
PostgreSQL error: Fatal: role "username" does not exist

原来,根本没有创建用户。请@Daniel's answer

答案 3 :(得分:3)

为什么不:

sudo passwd postgres

这将提示您输入当前帐户的密码。然后它会要求您为postgres用户输入新密码(两次)。