Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Can';t登录系统用户postgres_Macos_Postgresql_Postgresql 9.2 - Fatal编程技术网

Macos Can';t登录系统用户postgres

Macos Can';t登录系统用户postgres,macos,postgresql,postgresql-9.2,Macos,Postgresql,Postgresql 9.2,我使用brew在mac上安装了postgresql。在安装过程中,没有人问我postgresql的密码。现在我需要创建一个用户,但无法: Alexs-MacBook-Air:mydir alex$ su - postgres Password: su: Sorry 无论我使用什么密码(包括空密码),都是错误的。重置密码最简单的方法是什么?没有默认密码。要以用户身份运行shell,请使用: sudo su - postgres 或者更现代的形式(): 完成后,键入退出。更多信息: 事实证明,

我使用brew在mac上安装了postgresql。在安装过程中,没有人问我postgresql的密码。现在我需要创建一个用户,但无法:

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

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

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

sudo su - postgres
或者更现代的形式():

完成后,键入退出。更多信息:

事实证明,用户根本不是被创建的。看看。

为什么不:

sudo passwd postgres

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

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

也许是
\u postgres
postgres\uu
?我知道OSX上的一些安装程序使用奇怪的名字。或者,您的安装从一开始就没有在您的系统上成功创建过
postgres
用户,因此您无法为其设置密码

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

sudo -u postgres psql
或者作为
postgres
超级用户运行所需的任何命令

注意,对于任何事情

我使用brew在mac上安装了postgresql。我没有被问到这个问题 安装期间postgresql的密码

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

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

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

/usr/local/bin/createdb someusername

或在psql中:

/usr/local/bin/psql-d postgres

然后作为SQL命令:
创建用户someusername密码“somepassword”

因为brew通常在
initdb
时间创建:

  • 与您的操作系统帐户具有相同登录名的数据库超级用户帐户(在您的情况下似乎是
    alex
  • 名为
    postgres
    的数据库,可用于记录管理任务(如创建用户)的信息
使用完整路径
/usr/local/bin
的目的是访问
brew
提供的命令,而不是系统附带并位于
/usr/bin
中的同名命令或其他PostgreSQL提供程序可能安装的同名命令,例如postgres.app或macports或EnterpriseDB。在Mac OS X上安装postgresql有5-6种相互竞争且不兼容的方法


编辑:MacOS X desktop edition的较新版本不再预装postgres客户端命令。至少在MacOS X 10.10(约塞米蒂)和10.9之后似乎是这样。

实际上它说的是“su:unknown login:postgres”为什么每个人都使用
sudo su-postgres
sudo
直接支持用户模拟,而且不会造成
su
带来的可怕的引用混乱。只要
sudo-u postgres psql
或其他任何东西。@CraigRinger:如果我计划作为
postgres
用户做几件事,那么切换到角色并在完成后退出
会方便得多。还有什么“引用混乱”?@ErwinBrandstetter用于登录shell使用
sudo-u postgres-i
。至于引用:
su
将其参数传递给
$SHELL-c
。因此,当
sudo-u-postgres-c psql-c“选择1;”
,sudo-u-postgres psql-c“选择1;”
正常工作时,您将得到不希望的结果。与
su
等效需要另一层引用来保护参数,如
sudo su-postgres-c“psql-c\”select 1\”。使用
su
以及
sudo
只是多余的。最后,如果你有一个
sudoers
,它可以让你成为
postgres
,但不是
root
,它就是不起作用。谢谢,我学到了一些东西。我是出于习惯而使用sudo su的
sudo-u postgres-i
似乎是更好的选择。实际上它说的是“su:unknown login:postgres”,这应该是公认的答案。Brew的安装没有
postgres
用户。有没有办法对该系统级用户进行密码保护?当我运行
psqlpostgres
然后运行
\password
时,它没有任何效果。@bryankennedy:这很可能是因为在本地使用
对等方
信任方
。将其替换为
md5
。此副本的可能副本已作为主题外关闭。因此,在DBA Stack Exchange姐妹站点上。
sudo -u postgres psql