Postgresql:能够使用 psql 进行身份验证但无法使用 pg_dump 进行备份
Postgresql: Able to authenticate using psql but unable to backup with pg_dump
我在备份 PostgreSQL 数据库时遇到问题。当我运行以下命令时:
psql -d cdb -U "$(whoami)"
结果:
cdb=# \c
You are now connected to database "cdb" as user "gub".
所以没问题。然而当我 运行
pg_dump -h localhost -p 5432 -U "$(whoami)" -d cdb -w -C -F p -b -f /home/"$(whoami)"/cdb.sql
我收到以下错误消息:
pg_dump: error: connection to database "cdb" failed: fe_sendauth: no password supplied
我有以下身份验证设置:
cdb=# select * from pg_hba_file_rules;
line_number | type | database | user_name | address | netmask | auth_method | options | error
-------------+-------+---------------+------------+-----------+-----------------------------------------+-------------+---------+-------
89 | local | {all} | {postgres} | | | peer | |
94 | local | {all} | {all} | | | peer | |
96 | host | {all} | {all} | 127.0.0.1 | 255.255.255.255 | md5 | |
98 | host | {all} | {all} | ::1 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | md5 | |
101 | local | {replication} | {all} | | | peer | |
102 | host | {replication} | {all} | 127.0.0.1 | 255.255.255.255 | md5 | |
103 | host | {replication} | {all} | ::1 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | md5 | |
我不确定为什么这不起作用,因为 auth_method peer
不需要密码。有人可以帮忙吗? postgresql.conf 未更改,设置为:psql (PostgreSQL) 12.9 (Ubuntu 12.9-0ubuntu0.20.04.1)
我的目标是无需密码即可备份。
使用 psql
,您正在通过域套接字使用本地连接,因为您没有指定 -h localhost
,所以第一行或第二行 pg_hba.conf
适用,您可以无需密码即可连接。
对于 pg_dump
,您使用的是 TCP 连接,第三或第四行适用,您必须提供密码。
省略 -h localhost
!
我在备份 PostgreSQL 数据库时遇到问题。当我运行以下命令时:
psql -d cdb -U "$(whoami)"
结果:
cdb=# \c
You are now connected to database "cdb" as user "gub".
所以没问题。然而当我 运行
pg_dump -h localhost -p 5432 -U "$(whoami)" -d cdb -w -C -F p -b -f /home/"$(whoami)"/cdb.sql
我收到以下错误消息:
pg_dump: error: connection to database "cdb" failed: fe_sendauth: no password supplied
我有以下身份验证设置:
cdb=# select * from pg_hba_file_rules;
line_number | type | database | user_name | address | netmask | auth_method | options | error
-------------+-------+---------------+------------+-----------+-----------------------------------------+-------------+---------+-------
89 | local | {all} | {postgres} | | | peer | |
94 | local | {all} | {all} | | | peer | |
96 | host | {all} | {all} | 127.0.0.1 | 255.255.255.255 | md5 | |
98 | host | {all} | {all} | ::1 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | md5 | |
101 | local | {replication} | {all} | | | peer | |
102 | host | {replication} | {all} | 127.0.0.1 | 255.255.255.255 | md5 | |
103 | host | {replication} | {all} | ::1 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | md5 | |
我不确定为什么这不起作用,因为 auth_method peer
不需要密码。有人可以帮忙吗? postgresql.conf 未更改,设置为:psql (PostgreSQL) 12.9 (Ubuntu 12.9-0ubuntu0.20.04.1)
我的目标是无需密码即可备份。
使用 psql
,您正在通过域套接字使用本地连接,因为您没有指定 -h localhost
,所以第一行或第二行 pg_hba.conf
适用,您可以无需密码即可连接。
对于 pg_dump
,您使用的是 TCP 连接,第三或第四行适用,您必须提供密码。
省略 -h localhost
!