Jim*_*ode 65 postgresql ubuntu
当我尝试psql使用此命令打开时:
psql -U postgres
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "postgres"
Run Code Online (Sandbox Code Playgroud)
但当我使用时它连接成功:
sudo -u postgres psql
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下发生了什么以及如何诊断/解决这个问题吗?我的pg_hba.conf包含以下内容:
# 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
Run Code Online (Sandbox Code Playgroud)
小智 45
您可以使用编辑器以特权编辑.conf文件,就我而言,它是 nano。
$sudo nano /etc/postgresql/14/main/pg_ident.conf
Run Code Online (Sandbox Code Playgroud)
通过添加此行来映射您的用户
# MAPNAME SYSTEM-USERNAME PG-USERNAME
user1 <computer-username> postgres
Run Code Online (Sandbox Code Playgroud)
将 替换<computer-username>为系统用户名,可以使用whoami命令找到该用户名。在您的终端中输入:
$whoami
Run Code Online (Sandbox Code Playgroud)
然后以权限进入pg_hba.conf
$sudo nano /etc/postgresql/14/main/pg_hba.conf
Run Code Online (Sandbox Code Playgroud)
使用 method=peer 添加您的 postgres 用户,如下所示:
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
Run Code Online (Sandbox Code Playgroud)
这对我有用。
我试图通过添加这样的地图来回答有关使用 /etc/postgresql/14/main/pg_ident.conf 的问题:
# MAPNAME SYSTEM-USERNAME PG-USERNAME
user1 <computer-username> postgres
Run Code Online (Sandbox Code Playgroud)
然后将以下代码添加到 /etc/postgresql/14/main/pg_hba.conf 中:
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
Run Code Online (Sandbox Code Playgroud)
但这对我不起作用。然后我阅读了这个文档并找到了解决方案!只需使用 map=user1 将映射引用添加到 pg_hba.conf 即可:
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer map=user1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
131863 次 |
| 最近记录: |