Re: pgpass file in postresql.auto.conf? - Mailing list pgsql-general

From Ron Johnson
Subject Re: pgpass file in postresql.auto.conf?
Date
Msg-id CANzqJaAfxs6ip+8mbriqiqiqCj8nk28_SxdeyxLb6Tnmf9CuoA@mail.gmail.com
Whole thread Raw
In response to pgpass file in postresql.auto.conf?  ("Dan Mahoney (Gushi)" <postgres@gushi.org>)
List pgsql-general
On Fri, Sep 26, 2025 at 8:06 AM Dan Mahoney (Gushi) <postgres@gushi.org> wrote:
Hey folks,

In the interest of automation, I've set up a pgpass file for my
pg_basebackup between master and standby.  This all works, thusly:

pg_basebackup -d
'postgres://repuser@10.1.1.1:5432/foo?sslmode=verify-ca' -F p
--wal-method=stream -P -R -D /var/db/postgres/data17-test3

However, instead of the password getting baked into the pgsql.auto.conf,
the reference to the passfile gets put in, instead:

It's still early in the morning, so I might still be fuzzy-brained, but are you asking why the repuser password is not hard-coded into postresql.auto.conf?
 
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
primary_conninfo = 'user=repuser passfile=''/var/db/postgres/.pgpass''
channel_binding=prefer host=10.1.1.1 port=5432 sslmode=''verify-ca''
sslnegotiation=postgres sslcompression=0 sslcertmode=allow sslsni=1
ssl_min_protocol_version=TLSv1.2 gssencmode=disable krbsrvname=postgres
gssdelegation=0 target_session_attrs=any load_balance_hosts=disable
dbname=foo'

But it seems postgres won't actually read the passfile.

Sep 26 12:01:27 hostname postgres[42455]: [7-1] 2025-09-26 12:01:27.658
UTC [42455] FATAL:  could not connect to the primary server: connection to
server at "10.1.1.1", port 5432 failed: fe_sendauth: no password supplied

Am I doing something wrong here?

*When* do you get that message?  And what does "for my
pg_basebackup between master and standby" mean?
 
I'm loathe to hand-edit the file, because of that warning there.

Why does pg_basebackup put a reference to a file it it won't read it?

Because you have a subtle bug in the .pgpass file.  It's case sensitive, and requires the domain name of that's part of $HOSTNAME.
 
Is there an alter system command that can be used to properly populate the
password into this file?

Does the .pgpass file work for "regular" connections?

--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!

pgsql-general by date:

Previous
From: Ashish Mukherjee
Date:
Subject: Downgrade pgsql 17 to pgsql 12 question
Next
From: Laurenz Albe
Date:
Subject: Re: pgpass file in postresql.auto.conf?