ruby on rails - rails - Сервер работает на хосте «localhost»(:: 1) и принимает соединения TCP/IP через порт 5432?




rails dynamic page title (7)

Прежде всего, обратите внимание, что я нашел несколько похожих вопросов о переполнении стека и статьях по всему Интернету, но ни один из них не помог мне решить мою проблему:

Теперь вот проблема:

  • У меня есть приложение Rails, которое работает как шарм.
  • Вместе с моим сотрудником мы используем GitHub для совместной работы.
  • У нас есть master и филиалы mvp .
  • Я недавно обновил свою версию git с Homebrew (Mac).
  • Мы используем Foreman, чтобы запустить наше приложение локально.

Теперь, когда я пытаюсь запустить приложение локально, я получаю следующую ошибку:

PG::ConnectionBad at /
could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

Я пытался перезагрузить мои компьютеры несколько раз.

Я также проверил содержимое /usr/local/var/postgres :

PG_VERSION      pg_dynshmem     pg_multixact    pg_snapshots    pg_tblspc       postgresql.conf
base            pg_hba.conf     pg_notify       pg_stat         pg_twophase     postmaster.opts
global          pg_ident.conf   pg_replslot     pg_stat_tmp     pg_xlog         server.log
pg_clog         pg_logical      pg_serial       pg_subtrans     postgresql.auto.conf

Как видите, там нет файла postmaster.pid .

Есть идеи, как я могу это исправить?


Если вы хотите перезапустить Postgresql в Linux, вы должны использовать следующую команду.

/etc/init.d/postgresql restart


Скорее всего, у вас закончилась батарея, и ваш сервер postgresql отключился неправильно.

Самый простой обходной путь - загрузить официальное приложение postgresql и запустить его: оно заставит сервер запуститься ( http://postgresapp.com/ )


Это может быть связано с тем, что pid-файл, созданный для postgress, не был удален из-за неожиданного завершения работы. Чтобы исправить это, удалите этот файл pid.

  1. Найдите каталог данных postgres. На MAC, использующем homebrew, это /usr/local/var/postgres/ , в других системах это может быть /usr/var/postgres/

  2. Удалить файл pid

    рм postmaster.pid

  3. Перезапустите postgress. На Mac,

    brew services restart postgresql


Это может быть так же просто, как служба postgresql не работает. Попробуйте запустить:

sudo service postgresql start

что решило проблему для меня.


Это сработало для меня: беги

sudo lsof -i :<port_number>

после этого он отобразит PID, который в данный момент присоединен к процессу.

После этого запустите sudo kill -9 <PID>

если это не сработает, попробуйте решение, предлагаемое пользователем 8376606, оно определенно сработает!


Я решил проблему с помощью этой команды

pg_ctl -D /usr/local/var/postgres start

Иногда вы можете получить эту ошибку

pg_ctl: another server might be running; trying to start server anyway

Итак, попробуйте выполнить следующую команду, а затем выполните первую команду, указанную выше.

pg_ctl -D /usr/local/var/postgres stop

запустите postgres -D /usr/local/var/postgres и вы должны увидеть что-то вроде:

FATAL:  lock file "postmaster.pid" already exists
HINT:   Is another postmaster (PID 379) running in data directory "/usr/local/var/postgres"?

Затем запустите kill -9 PID в подсказке

И тебе должно быть хорошо идти.





ruby-on-rails-4