Korzystam z aplikacji railsowej w fazie rozwoju z postgresql 9.3. Kiedy próbowałem dzisiaj uruchomić serwer pasażerski, otrzymałem:
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?
Nic wielkiego, nie myślałem, że to się zdarzyło wcześniej. Ponowne uruchomienie postgres zawsze rozwiązało problem. Więc pobiegłem sudo service postgresql restart
i dostałem:
* 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!
Moje postgresql.conf
punkty do wartości domyślnych: localhost
i portu 5432
. Próbowałem zmienić port, ale komunikat o błędzie jest taki sam (oprócz zmiany portu).
Oba ps aux | grep postgresql
i ps aux | grep postmaster
nic nie zwracają.
EDYTOWAĆ:
W postgresql.conf
zmieniłem listen_addresses
na 127.0.0.1
zamiast localhost
i udało się, serwer zrestartował się. Musiałem również edytować konfigurację bazy danych moich aplikacji i wskazywać 127.0.0.1
zamiast localhost
. Jednak pytanie brzmi teraz: dlaczego localhost jest uważany za, 217.74.65.145
a nie 127.0.0.1
?
To jest moje /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
example.com
jako nazwy domeny.
sudo netstat -anlp | grep 5432
?