mac上的用户“postgres”密码验证失败

时间:2013-09-01 04:50:12

标签: macos postgresql psql

我在创建新的psql用户时遇到问题,因为我无法以“postgres”身份登录psql,我试过了

1. sudo -u postgres psql

2. sudo -u postgres createuser img_site -P -s -e

他们都要求我知道“postgres”的密码。我试图更改用户“postgres”的unix密码(我知道它很危险)它仍然告诉我:用户“postgres”的密码验证失败。我也尝试了GUI pgAdmin,但它也是一样的错误。

我不知道它是否相关:我创建了一个符号链接

sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

为了摆脱错误

createuser: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

4 个答案:

答案 0 :(得分:1)

检查pg_hba.conf。它应该在顶部有一条这样的行(在所有其他条目之前):

local   all             postgres                                peer

这允许postgres db用户对所有数据库进行本地unix套接字访问,而不需要密码。

同时清除并重新定义postgres系统用户的密码:

sudo passwd -d postrges
sudo su postgres -c passwd

然后运行:

su postgres -c psql template1
psql> ALTER USER postgres WITH PASSWORD '<password>';

键入\q以退出psql,您已完成重置postgres用户的密码。

答案 1 :(得分:1)

sudo不需要您要切换到的帐户的密码,它需要您从切换的帐户的密码。它还要求您成为管理员(或者在/ etc / sudoers中使用其他方式)。另一方面,su需要您将转换为的帐户的密码。

答案 2 :(得分:0)

我正在尝试为Ruby on Rails设置postgres,并且因为用户错误而导致密码验证失败。检查服务器是否实际运行:

pg_ctl -D /usr/local/var/postgres status

如果你得到

pg_ctl: no server running

运行

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

此外,您必须在psql中包含localhost。

psql -U postgres -h localhost

答案 3 :(得分:0)

这对我有用:

使用密码“ my_password”更改用户my_user;