Macos Can';t登录系统用户postgres
我使用brew在mac上安装了postgresql。在安装过程中,没有人问我postgresql的密码。现在我需要创建一个用户,但无法: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 或者更现代的形式(): 完成后,键入退出。更多信息: 事实证明,
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