web-dev-qa-db-fra.com

Postgres - impossible de créer des sockets TCP / IP

J'utilise une application Rails en développement avec postgresql 9.3. Lorsque j'ai essayé de démarrer le serveur de passagers aujourd'hui, j'ai eu:

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?

Pas grand-chose que je pensais, c'est arrivé avant. Le redémarrage de postgres a toujours résolu le problème. J'ai donc couru Sudo service postgresql restart et a obtenu:

 * 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!

Ma postgresql.conf pointe vers les valeurs par défaut: localhost et port 5432. J'ai essayé de changer le port mais le message d'erreur est le même (sauf le changement de port).

Tous les deux ps aux | grep postgresql et ps aux | grep postmaster ne renvoie rien.

MODIFIER:

Dans postgresql.conf J'ai changé listen_addresses à 127.0.0.1 au lieu de localhost et il a fait l'affaire, le serveur a redémarré. J'ai également dû modifier la configuration db de mes applications et pointer sur 127.0.0.1 au lieu de localhost. Cependant, la question est maintenant de savoir pourquoi localhost est considéré comme 217.74.65.145 et pas 127.0.0.1?

C'est mon /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
14
Jacka

Votre /etc/hosts est cassé. La première ligne doit se lire

127.0.0.1   localhost something.name.non.example.com company.something.name.non.example.com
12
Jenny D

Je comprends qu'il est répondu à cette question, mais pour ceux qui ont encore l'erreur, la raison pourrait être qu'un autre processus a déjà commencé. Par exemple Homebrew au démarrage du système.

Si tel est le cas, essayez de l'arrêter:
brew services stop postgres

0
YTerle