8

我在创建新 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

5 回答 5

3

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

local   all             postgres                                peer

postgres这允许db 用户无需密码即可访问所有数据库的本地 Unix 域套接字。

现在清除并重新定义postgres系统用户的密码(在 PostgreSQL 安装期间自动创建):

sudo passwd -d postrges
sudo su postgres -c passed

这个用户帐户的特别之处在于,postgres 服务器允许它连接到数据库,没有任何问题。

现在,要为postgresdb 用户定义一个显式密码,您可以使用该密码通过本地 Unix 域套接字连接以外的其他方式登录,运行:

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

postgres在运行此命令之前,系统会要求您输入系统用户帐户密码。成功完成后,键入\q退出psqlshell,您就完成了为postgresdb 用户重置密码。

于 2013-09-01T05:51:11.610 回答
2

sudo不想要您要切换到的帐户的密码,它想要您要切换的帐户的密码。它还要求您是管理员(或 /etc/sudoers 中的其他名称)。su,另一方面,需要您切换的帐户的密码。

于 2013-09-01T10:38:06.970 回答
1

我试图为 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

于 2014-07-08T08:27:50.907 回答
0

我在我的 Macbook 上尝试了很多不同的技巧。这是对我有帮助的一个。在屏幕上,右键单击 PostgreSQL14 的“属性”,然后在“连接”选项卡中尝试将端口号从 5432 更改为 5433(反之亦然)-> 保存。并尝试再次打开,密码使用“postgres”。应该管用

屏幕

于 2021-11-22T13:28:42.200 回答
0

这对我有用:

ALTER USER my_user WITH PASSWORD 'my_password';

于 2019-09-30T07:48:56.893 回答