Postgres - could not create any TCP/IP sockets
I'm running a rails app in development with postgresql 9.3. When I tried to start passenger server today, I got:
PG::ConnectionBad - could not connect to server: Connection refused
Is the server running on host "localhost" (217.74.65.145) and accepting
TCP/IP connections on port 5432?
No big deal I thought, that happened before. Restarting postgres always solved the problem. So I ran sudo service postgresql restart
and got:
* Restarting PostgreSQL 9.3 database server
* The PostgreSQL server failed to start. Please check the log output:
2014-06-11 10:32:41 CEST LOG: could not bind IPv4 socket: Cannot assign requested address
2014-06-11 10:32:41 CEST HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2014-06-11 10:32:41 CEST WARNING: could not create listen socket for "localhost"
2014-06-11 10:32:41 CEST FATAL: could not create any TCP/IP sockets
...fail!
My postgresql.conf
points to the defaults: localhost
and port 5432
. I tried changing the port but the error message is the same (except the port change).
Both ps aux | grep postgresql
and ps aux | grep postmaster
return nothing.
EDIT:
In postgresql.conf
I changed listen_addresses
to 127.0.0.1
instead of localhost
and it did the trick, server restarted. I also had to edit my applications' db config and point to 127.0.0.1
instead of localhost
. However, the question is now, why is localhost considered to be 217.74.65.145
and not 127.0.0.1
?
That's my /etc/hosts
:
127.0.0.1 local
127.0.1.1 jacek-X501A1
127.0.0.1 something.name.non.example.com
127.0.0.1 company.something.name.non.example.com
Solution 1:
Your /etc/hosts
is broken. The first line should read
127.0.0.1 localhost something.name.non.example.com company.something.name.non.example.com