J'exécute une application rails en développement avec postgresql 9.3. Quand 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 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!
Mes postgresql.conf
points sur les valeurs par défaut: localhost
et le port 5432
. J'ai essayé de changer le port mais le message d'erreur est le même (sauf le changement de port).
Les deux ps aux | grep postgresql
et ps aux | grep postmaster
ne retournent rien.
ÉDITER:
En postgresql.conf
j'ai changé en listen_addresses
au 127.0.0.1
lieu de localhost
et ça a fait l'affaire, le serveur a redémarré. J'ai également dû modifier la configuration db de mes applications et pointer vers 127.0.0.1
au lieu de localhost
. Cependant, la question est maintenant, pourquoi est considéré comme localhost 217.74.65.145
et non 127.0.0.1
?
Voilà 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
la source
sudo netstat -anlp | grep 5432
?example.com
comme nom de domaine.Réponses:
Votre
/etc/hosts
est cassé. La première ligne doit se lirela source
/etc/hosts
localhost
dns files
au lieu defiles dns
dans nsswitch.conf et que vous avez un serveur de noms qui résout localhost, vous pourriez avoir des ennuis. Mais cela me semble très improbable ...nslookup
pour vérifier. Mais lanslookup
commande sur Linux n'utilise pasnsswitch.conf
et/etc/hosts
en premier lieu. Et quant à la misedns files
en configuration, cela ressemble à me demander des ennuis.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
la source