IPV6 issue
I have postgres 12 running in centos 7 on my two machines, recently I
changed the authentication of entries of pg_hba.conf to scram-sha-256 for
localhost.
Since then in my one machine, I have started getting the below error when I
use command "psql postgres"
no pg_hba.conf entry for host "::1", user "postgres", database "postgres
I found that localhost is resolve to IPV6 by using below command:
getent hosts localhost
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
Then I tested the same issue in my second machine
getent hosts localhost
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
but in my second machine I didn't face any such issue while using command
"psql postgres", I was able to login into the database without such error.
The pg_hba.conf on both machines are identical without having any IPV6
entry in it.
The entry of pg_hba.conf is like below:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all
scram-sha-256
# IPv4 local connections:
host all postgres 127.0.0.1/32 scram-sha-256
I am not able to understand that my both machines are resolved to IPV6 then
why is my first machine is throwing this error ?
Please help.
Regards.
Am 23.11.23 um 20:18 schrieb Atul Kumar:
I am not able to understand that my both machines are resolved to IPV6
then why is my first machine is throwing this error ?
Andreas
--
Andreas Kretschmer - currently still (garden leave)
Technical Account Manager (TAM)
www.enterprisedb.com
On 11/23/23 11:18, Atul Kumar wrote:
I have postgres 12 running in centos 7 on my two machines, recently I
changed the authentication of entries of pg_hba.conf to
scram-sha-256 for localhost.Since then in my one machine, I have started getting the below error
when I use command "psql postgres"no pg_hba.conf entry for host "::1", user "postgres", database "postgres
I found that localhost is resolve to IPV6 by using below command:
getent hosts localhost
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
I don't think this is telling you the whole story.
See what is in
/etc/hosts
and in
/etc/nsswitch.conf
on each machine.
host all postgres 127.0.0.1/32
<http://127.0.0.1/32> scram-sha-256I am not able to understand that my both machines are resolved to IPV6
then why is my first machine is throwing this error ?
Change this 127.0.0.1/32 to localhost and then be covered for both
situations.
Please help.
Regards.
--
Adrian Klaver
adrian.klaver@aklaver.com
Hi,
I found that localhost was set to .bash_profile and when I removed it and
then re-attempted to connected the database using "psql postgres", I got
this new error:
psql postgres -p 5432
psql: error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket
"/var/run/postgresql/.s.PGSQL.5432"?
So DO I need to restart the postgres service or is there any other
workaround?
Regards.
On Fri, Nov 24, 2023 at 1:08 AM Ron Johnson <ronljohnsonjr@gmail.com> wrote:
Show quoted text
On Thu, Nov 23, 2023 at 2:18 PM Atul Kumar <akumar14871@gmail.com> wrote:
I have postgres 12 running in centos 7 on my two machines, recently I
changed the authentication of entries of pg_hba.conf to scram-sha-256 for
localhost.Since then in my one machine, I have started getting the below error when
I use command "psql postgres"no pg_hba.conf entry for host "::1", user "postgres", database "postgres
I found that localhost is resolve to IPV6 by using below command:
getent hosts localhost
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6Then I tested the same issue in my second machine
getent hosts localhost
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6but in my second machine I didn't face any such issue while using command
"psql postgres", I was able to login into the database without such error.The pg_hba.conf on both machines are identical without having any IPV6
entry in it.The entry of pg_hba.conf is like below:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all
scram-sha-256# IPv4 local connections:
host all postgres 127.0.0.1/32
scram-sha-256I am not able to understand that my both machines are resolved to IPV6
then why is my first machine is throwing this error ?That *is *curious.
Have you exported PGHOST on either server (in, for example,
.pgsql_profile, .bash_profile or .bashrc)? If it is set to localhost on
the primary server then psql will complain like you noticed. If it is
unset on the secondary server, then psql will use the domain socket and not
complain.
Import Notes
Reply to msg id not found: CANzqJaAV7Tyahwrms=iRLR-_A1uMHgwWjMHMhpMYLgiyNT8iGQ@mail.gmail.com
On 11/27/23 12:11, Atul Kumar wrote:
Hi,
I found that localhost was set to .bash_profile and when I removed it
and then re-attempted to connected the database using "psql postgres", I
got this new error:psql postgres -p 5432
psql: error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket
"/var/run/postgresql/.s.PGSQL.5432"?So DO I need to restart the postgres service or is there any other
workaround?
In postgresql.conf or any include *.conf it points to does
port = 5432
and what is
listen_addresses
set to?
How did you install Postgres?
Do you have more then one version of psql installed?
--
Adrian Klaver
adrian.klaver@aklaver.com
Adrian Klaver <adrian.klaver@aklaver.com> writes:
On 11/27/23 12:11, Atul Kumar wrote:
I found that localhost was set to .bash_profile and when I removed it
and then re-attempted to connected the database using "psql postgres", I
got this new error:psql postgres -p 5432
psql: error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket
"/var/run/postgresql/.s.PGSQL.5432"?
Do you have more then one version of psql installed?
Yeah, that. You're apparently using a version of psql/libpq that
thinks the default Unix socket location is /var/run/postgresql;
but the postmaster you are using did not create a socket there.
(Probably it put one in /tmp instead, which is the out-of-the-box
default location. But some distros consider that insecure so they
override it, typically to /var/run/postgresql/.)
The easiest workaround if you have a mishmash of Postgres libraries
is to tell the postmaster to create sockets in both places.
See "unix_socket_directories" parameter.
regards, tom lane
listen_address is set to '*',
version= psql (12.15, server 12.15.19)
Regards.
On Tue, Nov 28, 2023 at 2:01 AM Adrian Klaver <adrian.klaver@aklaver.com>
wrote:
Show quoted text
On 11/27/23 12:11, Atul Kumar wrote:
Hi,
I found that localhost was set to .bash_profile and when I removed it
and then re-attempted to connected the database using "psql postgres", I
got this new error:psql postgres -p 5432
psql: error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket
"/var/run/postgresql/.s.PGSQL.5432"?So DO I need to restart the postgres service or is there any other
workaround?In postgresql.conf or any include *.conf it points to does
port = 5432
and what is
listen_addresses
set to?
How did you install Postgres?
Do you have more then one version of psql installed?
--
Adrian Klaver
adrian.klaver@aklaver.com
Hi,
unix_socket_directories is set to default i.e. /tmp and I could see the
socket in /tmp directory.
Regards.
On Tue, Nov 28, 2023 at 2:11 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Show quoted text
Adrian Klaver <adrian.klaver@aklaver.com> writes:
On 11/27/23 12:11, Atul Kumar wrote:
I found that localhost was set to .bash_profile and when I removed it
and then re-attempted to connected the database using "psql postgres",I
got this new error:
psql postgres -p 5432
psql: error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket
"/var/run/postgresql/.s.PGSQL.5432"?Do you have more then one version of psql installed?
Yeah, that. You're apparently using a version of psql/libpq that
thinks the default Unix socket location is /var/run/postgresql;
but the postmaster you are using did not create a socket there.
(Probably it put one in /tmp instead, which is the out-of-the-box
default location. But some distros consider that insecure so they
override it, typically to /var/run/postgresql/.)The easiest workaround if you have a mishmash of Postgres libraries
is to tell the postmaster to create sockets in both places.
See "unix_socket_directories" parameter.regards, tom lane
On 11/27/23 16:42, Atul Kumar wrote:
Hi,
unix_socket_directories is set to default i.e. /tmp and I could see the
socket in /tmp directory.
You have not answered:
How did you install Postgres?
Do you have more then one version of psql installed?
Though I am pretty sure I know the answer to the second question.
Regards.
On Tue, Nov 28, 2023 at 2:11 AM Tom Lane <tgl@sss.pgh.pa.us
<mailto:tgl@sss.pgh.pa.us>> wrote:Adrian Klaver <adrian.klaver@aklaver.com
<mailto:adrian.klaver@aklaver.com>> writes:On 11/27/23 12:11, Atul Kumar wrote:
I found that localhost was set to .bash_profile and when I
removed it
and then re-attempted to connected the database using "psql
postgres", I
got this new error:
psql postgres -p 5432
psql: error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket
"/var/run/postgresql/.s.PGSQL.5432"?Do you have more then one version of psql installed?
Yeah, that. You're apparently using a version of psql/libpq that
thinks the default Unix socket location is /var/run/postgresql;
but the postmaster you are using did not create a socket there.
(Probably it put one in /tmp instead, which is the out-of-the-box
default location. But some distros consider that insecure so they
override it, typically to /var/run/postgresql/.)The easiest workaround if you have a mishmash of Postgres libraries
is to tell the postmaster to create sockets in both places.
See "unix_socket_directories" parameter.regards, tom lane
--
Adrian Klaver
adrian.klaver@aklaver.com
I Don't know how postgres was installed,
How do I check if I have more than one version of psql installed ?
Regards.
On Tue, Nov 28, 2023 at 6:26 AM Adrian Klaver <adrian.klaver@aklaver.com>
wrote:
Show quoted text
On 11/27/23 16:42, Atul Kumar wrote:
Hi,
unix_socket_directories is set to default i.e. /tmp and I could see the
socket in /tmp directory.You have not answered:
How did you install Postgres?
Do you have more then one version of psql installed?
Though I am pretty sure I know the answer to the second question.
Regards.
On Tue, Nov 28, 2023 at 2:11 AM Tom Lane <tgl@sss.pgh.pa.us
<mailto:tgl@sss.pgh.pa.us>> wrote:Adrian Klaver <adrian.klaver@aklaver.com
<mailto:adrian.klaver@aklaver.com>> writes:On 11/27/23 12:11, Atul Kumar wrote:
I found that localhost was set to .bash_profile and when I
removed it
and then re-attempted to connected the database using "psql
postgres", I
got this new error:
psql postgres -p 5432
psql: error: could not connect to server: No such file ordirectory
Is the server running locally and accepting
connections on Unix domain socket
"/var/run/postgresql/.s.PGSQL.5432"?Do you have more then one version of psql installed?
Yeah, that. You're apparently using a version of psql/libpq that
thinks the default Unix socket location is /var/run/postgresql;
but the postmaster you are using did not create a socket there.
(Probably it put one in /tmp instead, which is the out-of-the-box
default location. But some distros consider that insecure so they
override it, typically to /var/run/postgresql/.)The easiest workaround if you have a mishmash of Postgres libraries
is to tell the postmaster to create sockets in both places.
See "unix_socket_directories" parameter.regards, tom lane
--
Adrian Klaver
adrian.klaver@aklaver.com
On 11/27/23 16:58, Atul Kumar wrote:
I Don't know how postgres was installed,
1) Someone installed it. Ask around on where it came from.
2) Query the package manager to see if it was installed that way?
How do I check if I have more than one version of psql installed ?
A quick and dirty way to see what you are using:
whereis psql
To find all the versions:
sudo find / -name psql
Regards.
On Tue, Nov 28, 2023 at 6:26 AM Adrian Klaver <adrian.klaver@aklaver.com
<mailto:adrian.klaver@aklaver.com>> wrote:On 11/27/23 16:42, Atul Kumar wrote:
Hi,
unix_socket_directories is set to default i.e. /tmp and I could
see the
socket in /tmp directory.
You have not answered:
How did you install Postgres?
Do you have more then one version of psql installed?
Though I am pretty sure I know the answer to the second question.
Regards.
On Tue, Nov 28, 2023 at 2:11 AM Tom Lane <tgl@sss.pgh.pa.us
<mailto:tgl@sss.pgh.pa.us>
<mailto:tgl@sss.pgh.pa.us <mailto:tgl@sss.pgh.pa.us>>> wrote:
Adrian Klaver <adrian.klaver@aklaver.com
<mailto:adrian.klaver@aklaver.com>
<mailto:adrian.klaver@aklaver.com
<mailto:adrian.klaver@aklaver.com>>> writes:
> On 11/27/23 12:11, Atul Kumar wrote:
>> I found that localhost was set to .bash_profile and when I
removed it
>> and then re-attempted to connected the database using "psql
postgres", I
>> got this new error:
>>
>> psql postgres -p 5432
>> psql: error: could not connect to server: No such file ordirectory
>> Is the server running locally and accepting
>> connections on Unix domain socket
>> "/var/run/postgresql/.s.PGSQL.5432"?> Do you have more then one version of psql installed?
Yeah, that. You're apparently using a version of psql/libpq that
thinks the default Unix socket location is /var/run/postgresql;
but the postmaster you are using did not create a socket there.
(Probably it put one in /tmp instead, which is the out-of-the-box
default location. But some distros consider that insecure sothey
override it, typically to /var/run/postgresql/.)
The easiest workaround if you have a mishmash of Postgres
libraries
is to tell the postmaster to create sockets in both places.
See "unix_socket_directories" parameter.regards, tom lane
--
Adrian Klaver
adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>
--
Adrian Klaver
adrian.klaver@aklaver.com