Сервер работает на хосте "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
.
Любая идея, как я мог это исправить?
Ответы
Ответ 1
У вас, скорее всего, закончилась батарея, и ваш сервер postgresql не выключился правильно.
Самое легкое обходное решение - загрузить официальное приложение postgresql и запустить его: он заставит сервер запуститься (http://postgresapp.com/)
Ответ 2
запустите 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
в подсказке
И тебе должно быть хорошо идти.
Ответ 3
Скорее всего это из-за неожиданного отключения вашей системы
Try
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 обычно
Ответ 4
Это может быть так просто, как служба postgresql. Попробуйте запустить:
sudo service postgresql start
который исправил эту проблему для меня.
Ответ 5
Это сработало в моем случае:
brew uninstall postgresql
rm -fr /usr/local/var/postgres/
brew install postgresql
Ответ 6
Это может быть связано с тем, что pid файл, созданный для postgress, не был удален из-за неожиданного завершения работы. Чтобы исправить это, удалите этот файл pid.
-
Найдите каталог данных postgres. На MAC, использующем homebrew, это /usr/local/var/postgres/
, в других системах это может быть /usr/var/postgres/
-
Удалить файл pid
рм postmaster.pid
-
Перезапустите postgress. На Mac,
brew services restart postgresql
Ответ 7
Я решил проблему с помощью этой команды
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
Ответ 8
У меня была почти такая же ошибка с моим приложением Ruby on Rails, работающим с postgresql (mac). Это сработало для меня:
brew services restart postgresql
Ответ 9
Если вы хотите перезапустить Postgresql в Linux, вам необходимо использовать следующую команду.
/etc/init.d/postgresql restart
Ответ 10
Я часто сталкиваюсь с этой проблемой в Windows, так как я решил проблему - Service - щелкните PostgreSQL Database Server 8.3 - щелкните вторую вкладку "войти" - выберите первую строку "локальная системная учетная запись".
Ответ 11
Это сработало для меня:
пробег
sudo lsof -i :<port_number>
после этого он отобразит PID, который в настоящее время подключен к процессу.
После этого выполните sudo kill -9 <PID>
если это не работает,
попробуйте решение, предлагаемое user8376606, это определенно сработает!
Ответ 12
Сначала я попробовал
lsof -wni tcp: 5432 но он не показывает номер PID.
Во-вторых, я попробовал
Postgres -D/usr/local/var/postgres и это показало, что сервер слушает.
Поэтому я просто перезапустил свой Mac, чтобы восстановить все порты обратно, и это сработало для меня.
Ответ 13
Для пользователей Docker: в моем случае это было вызвано чрезмерным размером изображения Docker. Вы можете удалить неиспользуемые данные с помощью команды prune
:
docker system prune --all --force --volumes
Предупреждение: согласно руководству (docker system prune --help
):
Это удалит:
- все остановленные контейнеры
- все сети не используются хотя бы одним контейнером
- все висячие изображения
- весь свисающий кеш сборок