Postgresql Can';由于身份验证失败,无法访问psql

Postgresql Can';由于身份验证失败,无法访问psql,postgresql,Postgresql,我正在尝试django的教程,它使用postgresql,但我在设置DB时遇到了一些问题。我确实使用sudo passwd postgres更改了postgres密码,我可以使用su postgres或sudo su-postgres登录到postgres帐户,但之后我无法使用pqsl访问postgres提示。它给了我以下错误: psql: FATAL: password authentication failed for user "postgres" 我也更改了pg_

我正在尝试django的教程,它使用postgresql,但我在设置DB时遇到了一些问题。我确实使用
sudo passwd postgres
更改了postgres密码,我可以使用
su postgres
sudo su-postgres
登录到postgres帐户,但之后我无法使用
pqsl
访问postgres提示。它给了我以下错误:

psql: FATAL:  password authentication failed for user "postgres"
我也更改了
pg_hba.conf
文件(从peer更改为md5),但没有更改任何内容。
我从未使用过postgresql,这是我第一次使用它,因此如果您需要任何其他信息,请询问我。

sudo passwd postgres
是针对系统用户postgres的,这就是为什么您可以su到系统用户postgres shell的原因。当您执行psql-U postgres时,您是作为数据库用户postgres登录的。那是另一种说法。按照惯例,Postgres服务器运行的系统用户通常称为Postgres。按照惯例,Postgres服务器数据库“root/superuser”是服务器运行时的用户名称,因此通常也是Postgres。如果要使用密码作为postgres用户登录到服务器,则需要为数据库用户postgres创建密码。为此,我将查看pg_hba.conf中的local(非localhost)行是否设置为
trust
。如果未设置为该值,请执行以下操作:

psql-U postgres-d postgres

不要指定
-h
。这将通过本地插座连接您。然后你可以:

使用密码“您的密码”更改用户postgres

这将为
postgres
用户创建密码


仅供参考,您不必登录系统用户postgres帐户就可以在数据库中作为postgres用户工作。您只需将
-U postgres
指定给任何postgres客户端程序、
psql、pg\U dump等
。这也意味着您可以作为postgres数据库用户在远程服务器上工作。

非常感谢。我对这个问题非常着迷:-)