首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >psql: error:连接到套接字上的服务器"/var/run/postgresql/.s.PGSQL.5432“失败:致命:用户"postgres”的对等身份验证失败(Ubuntu)

psql: error:连接到套接字上的服务器"/var/run/postgresql/.s.PGSQL.5432“失败:致命:用户"postgres”的对等身份验证失败(Ubuntu)
EN

Stack Overflow用户
提问于 2021-10-22 11:22:23
回答 2查看 38.5K关注 0票数 28

当我尝试用以下命令打开psql时:

代码语言:javascript
复制
psql -U postgres

我知道这个错误:

代码语言:javascript
复制
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer authentication failed for user "postgres"

但是当我使用:

代码语言:javascript
复制
sudo -u postgres psql

有人能解释一下发生了什么事,以及如何诊断/解决这个问题吗?我的pg_hba.conf包含以下内容:

代码语言:javascript
复制
# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-18 00:26:04

您可以使用编辑器以特权编辑.conf文件,在我的例子中,它是nano。

代码语言:javascript
复制
$sudo nano /etc/postgresql/14/main/pg_ident.conf

通过添加以下行来映射用户

代码语言:javascript
复制
# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
user1             <computer-username>               postgres

<computer-username>替换为System,这可以使用命令找到。键入您的终端:

代码语言:javascript
复制
$whoami

那就去pg_hba.conf吧

代码语言:javascript
复制
$sudo nano /etc/postgresql/14/main/pg_hba.conf

使用method=peer添加postgre用户,如下所示:

代码语言:javascript
复制
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             postgres                                peer

这对我有用。

票数 20
EN

Stack Overflow用户

发布于 2021-10-22 14:36:47

对等认证意味着,只有当数据库用户的名称与操作系统用户名相同时,才允许连接。

因此,如果您将psql -U postgres作为操作系统用户rootjimmy运行,它将无法工作。

可以在操作系统用户和数据库用户之间在映射中指定pg_ident.conf

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

https://stackoverflow.com/questions/69676009

复制
相关文章

相似问题

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