我正在尝试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,这是我第一次使用它,所以如果你需要任何其他信息,请问我。
发布于 2020-07-29 23:03:32
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
。如果不是,则将其设置为and,并执行以下操作:
psql -U postgres -d postgres
不要指定-h
。这将通过本地套接字连接您。然后,您可以:
https://www.postgresql.org/docs/12/sql-alteruser.html
ALTER USER postgres WITH PASSWORD 'your_password'
这将为postgres
用户创建一个密码。
仅供参考,您无需登录系统用户postgres帐户即可在数据库中以postgres用户身份工作。您所要做的就是为任何Postgres客户端程序psql, pg_dump, etc
指定-U postgres
。这也意味着您可以作为postgres数据库用户在远程服务器上工作。
https://stackoverflow.com/questions/63156293
复制相似问题