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