it-swarm.com.ru

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

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

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

  • У меня есть приложение 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.

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

33
Thibaud Clement

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

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

26
Graham Slick

запустите 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 в подсказке

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

40
user8376606

Скорее всего, это потому, что ваша система неожиданно выключилась

Пытаться

postgres -D /usr/local/var/postgres

Вы можете увидеть

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

Тогда попробуй

kill -9 PID

пример

kill -9 419

И это должно начать postgres нормально

19
Nishant

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

Sudo service postgresql start

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

11
Shiva89

Это сработало в моем случае:

brew uninstall postgresql
rm -fr /usr/local/var/postgres/
brew install postgresql
8
Tan

Это может быть связано с тем, что 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

1
Aman Kumar

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

/etc/init.d/postgresql restart

1
coderanger

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

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

Я часто сталкиваюсь с этой проблемой в Windows, способ, которым я решил эту проблему - Сервис - Нажмите PostgreSQL Database Server 8.3 - Нажмите вторую вкладку «Вход» - выберите первую строку «Учетная запись локальной системы».

0
管浩浩

Это сработало для меня: Запустить

Sudo lsof -i :<port_number>

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

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

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

0
vonvick