首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >鉴权失败,无法访问psql

鉴权失败,无法访问psql
EN

Stack Overflow用户
提问于 2020-07-29 22:48:03
回答 1查看 18关注 0票数 0

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

代码语言:javascript
运行
复制
psql: FATAL:  password authentication failed for user "postgres"

我也更改了pg_hba.conf文件(从peer到md5),但它没有更改任何内容。我从来没有使用过postgresql,这是我第一次使用它,所以如果你需要任何其他信息,请问我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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数据库用户在远程服务器上工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63156293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档