Re: postgres 9.0 - unable to bind to localhost. - Mailing list pgsql-admin

From Strahinja Kustudić
Subject Re: postgres 9.0 - unable to bind to localhost.
Date
Msg-id CADKbJJVYJ7=fZ2h87b3SqVmPXCOCcASrrO483dW1ubhyqAEG4w@mail.gmail.com
Whole thread Raw
In response to postgres 9.0 - unable to bind to localhost.  ("Rajagopalan, Jayashree" <Jayashree.Rajagopalan@emc.com>)
Responses Re: postgres 9.0 - unable to bind to localhost.
List pgsql-admin
Sorry for a late reply, but I had the exact same problem and it was a bug in the Red Hat RPM package upgrade script of the sudo package. This basically means the user running Postgres cannot resolve hostname localhost. Have you tried logging in as the user running Postgres and trying to resolve localhost? In RHEL/Centos you would do this with:

su - postgres
nslookup localhost

If this returns 127.0.0.1, then something else is a problem, but if it says the hostname cannot be resolved, then you need to check permissions of /etc/hosts and /etc/nsswitch.conf, all users should be able to read those two files. You can just run:

chmod a+r /etc/hosts
chmod a+r /etc/nsswitch.conf

Another workaround would be to replace 'localhost' in postgresql.conf with '127.0.0.1'.

Regards,
Strahinja


On Mon, Dec 10, 2012 at 9:57 AM, Rajagopalan, Jayashree <Jayashree.Rajagopalan@emc.com> wrote:

Hi all:

 

Getting this error in the postgres logs:

2012-11-29 09:47:39.335 CST - SessionId:50b7839b.4791 - TransId:0 - LOG:  could not translate host name "localhost", service "5435" to address: Name or service not known

2012-11-29 09:47:39.336 CST - SessionId:50b7839b.4791 - TransId:0 - WARNING:  could not create listen socket for "localhost"

2012-11-29 09:47:39.343 CST - SessionId:50b7839b.4791 - TransId:0 - LOG:  could not resolve "localhost": Name or service not known

 

Also the netstat command reveals the port(5435) is not bound to 127.0.0.1.
Checked the pg_hba.conf, /etc/hosts, nsswitch.conf, resolv.conf do not see any issues there.

 

the listen_addresses entry is like this:

listen_addresses = 'localhost,<host_ip>'

The port is bound to the <host_ip> but not to localhost.

How does postgres resolve the local host?

The entry is proper for localhost in /etc/hosts, and nsswitch.conf points hosts to files, dns.

"host localhost" resolves to 127.0.0.1 in command line.

what else to check?

 

Regards

J


pgsql-admin by date:

Previous
From: Kong Man
Date:
Subject: log_min_messages=debug5, despite an explicit setting to warning on postgresql.conf
Next
From: "Kevin Grittner"
Date:
Subject: Re: log_min_messages=debug5, despite an explicit setting to warning on postgresql.conf