Я запускаю приложение rails в разработке с postgresql 9.3. Когда я попытался запустить пассажирский сервер сегодня, я получил:
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?
Ничего страшного, я думал, что случилось раньше. Перезапуск postgres всегда решал проблему. Итак, я побежал sudo service postgresql restart
и получил:
* 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!
Мои postgresql.conf
очки по умолчанию: localhost
и порт 5432
. Я попытался изменить порт, но сообщение об ошибке то же самое (за исключением изменения порта).
Оба ps aux | grep postgresql
и ps aux | grep postmaster
ничего не возвращают.
РЕДАКТИРОВАТЬ:
В postgresql.conf
я изменил listen_addresses
к 127.0.0.1
а localhost
и сделал трюк, сервер перезагружен. Я также должен был отредактировать конфигурацию базы данных моих приложений и указать 127.0.0.1
вместо localhost
. Однако теперь возникает вопрос, почему localhost считается, 217.74.65.145
а не 127.0.0.1
?
Это мое /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
источник
sudo netstat -anlp | grep 5432
?example.com
качестве имени домена.Ответы:
Ваш
/etc/hosts
сломан. Первая строка должна читатьисточник
/etc/hosts
различные другие факторы могут привести к другой ответ DNS , когда DNS поиск вlocalhost
действительности выполняются. См. Stackoverflow.com/a/47824848/5419599 .dns files
вместоfiles dns
nsswitch.conf и у вас есть сервер имен, который разрешает localhost, вы можете столкнуться с проблемами. Но это звучит крайне маловероятно для меня ...nslookup
для проверки. Ноnslookup
команда на Linux не используетnsswitch.conf
и/etc/hosts
в первую очередь. А что касается установкиdns files
конфигурации, это звучит как вызов мне неприятностей.Я понимаю, что на этот вопрос ответили, но для тех, у кого все еще есть ошибка, причина могла бы быть в том, что какой-то другой процесс уже запустил ее. Например,
Homebrew
при загрузке системы.Если это так, попробуйте остановить это:
brew services stop postgres
источник