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 restart
y 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.conf
puntos a los valores predeterminados: localhost
y puerto 5432
. Intenté cambiar el puerto pero el mensaje de error es el mismo (excepto el cambio de puerto).
Ambos ps aux | grep postgresql
y ps aux | grep postmaster
no devuelven nada.
EDITAR:
En postgresql.conf
Cambié listen_addresses
a en 127.0.0.1
lugar de localhost
e 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.1
lugar de localhost
. Sin embargo, la pregunta es ahora, ¿por qué se considera localhost ser 217.74.65.145
y 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.com
como nombre de dominio.Respuestas:
Tu
/etc/hosts
está roto. La primera línea debería leerfuente
/etc/hosts
, otros factores pueden causar una respuesta DNS diferente cuando una búsqueda DNS delocalhost
se ejecuta realmente. Ver stackoverflow.com/a/47824848/5419599 .dns files
lugar defiles dns
en nsswitch.conf y tienes un servidor de nombres que resuelve localhost, podrías meterte en problemas. Pero eso me parece muy poco probable ...nslookup
para verificar. Pero elnslookup
comando en Linux no usansswitch.conf
y/etc/hosts
en primer lugar. Y en cuantodns files
a 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
Homebrew
en el arranque del sistema.Si ese es el caso, intente detenerlo:
brew services stop postgres
fuente