Postgresql Can';由于身份验证失败,无法访问psql
我正在尝试django的教程,它使用postgresql,但我在设置DB时遇到了一些问题。我确实使用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_
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数据库用户在远程服务器上工作。非常感谢。我对这个问题非常着迷:-)