我使用brew在mac上安装了postgresql。在安装过程中我没有被问到postgresql的密码。现在我需要创建一个用户并且不能:
Alexs-MacBook-Air:mydir alex$ su - postgres
Password:
su: Sorry
无论我使用什么密码(包括空),都是错的。什么是重置它的最简单方法?
答案 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
的系统用户。根据您在其他答案上留下的评论,没有这样的用户。您无法更改不存在的用户的密码。
也许是_postgres
或postgres_
?我知道OS X上的一些安装程序使用了奇怪的名称。或者您的安装从未在您的系统上成功创建postgres
用户,因此您无法为其设置密码?
通常,您永远不需要为此用户设置密码。你可以
sudo -u postgres psql
或您需要以postgres
超级用户身份运行的任何命令。
答案 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
用户输入新密码(两次)。