Estoy ejecutando una aplicación rails en desarrollo con postgresql 9.3. Cuando intenté iniciar el servidor de pasajeros hoy, obtuve:
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 es gran cosa, pensé, eso sucedió antes. Reiniciar postgres siempre resolvió el problema. Entonces corrí sudo service postgresql restarty obtuve:
* 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!
Mis postgresql.confpuntos a los valores predeterminados: localhosty puerto 5432. Intenté cambiar el puerto pero el mensaje de error es el mismo (excepto el cambio de puerto).
Ambos ps aux | grep postgresqly ps aux | grep postmasterno devuelven nada.
EDITAR:
En postgresql.confCambié listen_addressesa en 127.0.0.1lugar de localhoste hizo el truco, el servidor se reinició. También tuve que editar la configuración de db de mis aplicaciones y señalar en 127.0.0.1lugar de localhost. Sin embargo, la pregunta es ahora, ¿por qué se considera localhost ser 217.74.65.145y no 127.0.0.1?
Esa es mi /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
fuente

sudo netstat -anlp | grep 5432?example.comcomo nombre de dominio.Respuestas:
Tu
/etc/hostsestá roto. La primera línea debería leerfuente
/etc/hosts, otros factores pueden causar una respuesta DNS diferente cuando una búsqueda DNS delocalhostse ejecuta realmente. Ver stackoverflow.com/a/47824848/5419599 .dns fileslugar defiles dnsen nsswitch.conf y tienes un servidor de nombres que resuelve localhost, podrías meterte en problemas. Pero eso me parece muy poco probable ...nslookuppara verificar. Pero elnslookupcomando en Linux no usansswitch.confy/etc/hostsen primer lugar. Y en cuantodns filesa la configuración, eso me suena a pedirme problemas.Entiendo que esta pregunta está respondida, pero para aquellos que todavía tienen el error, la razón podría ser que algún otro proceso ya lo ha iniciado. Por ejemplo
Homebrewen el arranque del sistema.Si ese es el caso, intente detenerlo:
brew services stop postgresfuente