Re: psql connection via localhost or 127.0.0.1 - Mailing list pgsql-general

From Tom Lane
Subject Re: psql connection via localhost or 127.0.0.1
Date
Msg-id 28319.1415286487@sss.pgh.pa.us
Whole thread Raw
In response to psql connection via localhost or 127.0.0.1  (Edoardo Panfili <edoardo@aspix.it>)
Responses Re: psql connection via localhost or 127.0.0.1  (Edoardo Panfili <edoardo@aspix.it>)
List pgsql-general
Edoardo Panfili <edoardo@aspix.it> writes:
> I am using postgres 9.4beta3 (Debian jessie)
> this is my pg_hba.conf
> ----------------------
> local    all    postgres    peer
> local    all    all    md5
> host    all    all    127.0.0.1/32    md5
> host    all    all    ::1/128    md5
> ----------------------

> but if I use psql to connect via tcp to the server (on the same machine)
> I can see two differente behaviours if I use "localhost" or "127.0.0.1"
> If I understand correctly the first two lines are useful only for Unix
> sockets and not for tcp-ip connection.

Yeah.  On modern Linux distros it's quite likely that "localhost" is
resolving as IPv6 ::1, not 127.0.0.1, but in neither case would it match
your "local" lines.  In any case, your first connection attempt is
definitely not connecting over a Unix socket because we never use SSL
with Unix sockets.

I can think of two plausible theories:

1. The postmaster isn't actually using the pg_hba.conf you think it is.
(Maybe you modified the file and forgot to do a "pg_ctl reload"?)

2. You have a "service file" active that is capturing the server name
"localhost" and redefining it to mean something other than the obvious
meaning.
http://www.postgresql.org/docs/9.3/interactive/libpq-pgservice.html

A useful test would be to try "psql -h ::1" and see which way that
behaves.  If it does the same thing as "-h localhost" then we can
eliminate the service-file theory.

            regards, tom lane


pgsql-general by date:

Previous
From: John R Pierce
Date:
Subject: Re: psql connection via localhost or 127.0.0.1
Next
From: Adrian Klaver
Date:
Subject: Re: psql connection via localhost or 127.0.0.1