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