Подтвердить что ты не робот

Postgres.app Не удалось запустить порт 5432

Я использую http://postgresapp.com. В строке меню появляется сообщение об ошибке "Не удалось запустить порт 5432". Аналогично, если я попытаюсь запустить сервер с терминала, я получаю:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Я также запустил pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start и получил вывод server starting, но все равно получить те же ошибки при подключении к psql.

4b9b3361

Ответ 1

У вас есть еще один пример запуска postgres, это единственное приложение, которое интересуется этим портом. Вы должны использовать netstat и ps, чтобы определить это. Затем остановите экземпляр и удалите его, например, вы, возможно, установили enterpiseDb, вот что я сделал.

Ответ 2

Если вы запускаете свой сервер на компьютере MacOS и устанавливаете Postgres через Homebrew, вы можете остановить текущий экземпляр следующим образом:

Пивоваренные службы Stop Postgresql

Затем нажмите "Слон" в родной строке меню в верхней части экрана, и он должен успешно запуститься.

Ответ 3

Вы можете остановить процесс, установив PID с помощью

lsof -i :5432

а затем убив его с помощью

kill -9 <PID>

Ответ 4

У меня была именно эта проблема. Когда я запускал which psql, он указывал на клиентские инструменты Postgres, установленные с Lion:

/usr/bin/psql

Используя подсказку от Фрэнка Уайлса, я запустил ps auxw | grep post, чтобы убедиться, что postgres работает и работает на нужном порту, что также показало мне путь к postgres.app:

/Applications/Postgres.app/Contents/MacOS/bin/postgres.

Поэтому я отредактировал .bash_profile, чтобы экспортировать этот каталог. С первым усилием я добавил его в конец пути. Когда я запустил echo $PATH, я увидел, что usr/bin был первым на пути, а which psql все же дал путь /usr/bin. В этот момент мой друг направил меня в правильном направлении:

export PATH="/Applications/Postgres.app/Contents/MacOS/bin:${PATH}"

Запустите новое окно терминала, затем запустите which psql - оно должно указывать на местоположение postgres.app, а psql должен запустить оболочку postgres. Работает нормально сейчас.

Ответ 5

Если вы установили Postgres с помощью другого метода (например, с сайта www.postgresql.org), и он запускается автоматически при запуске, вы можете предотвратить запуск Postgres через следующее:

sudo launchctl unload /Library/LaunchDaemons/com.edb.launchd.postgresql-X.X.plist  
sudo rm -f /Library/LaunchDaemons/com.edb.launchd.postgresql-X.X.plist  

СОВЕТ: используйте вкладку для автозаполнения после части com.edu.launchd, чтобы выяснить, какая версия загружается.

Перезагрузите Postgres.app, и вам должно быть хорошо.

(из http://forums.enterprisedb.com/posts/list/1831.page;jsessionid=70621DC48C99EDE663A6A594B05F1A02#6782)

Ответ 6

Я пробовал практически все решения этой проблемы, которые есть. Для меня это всегда происходит, когда батарея MacBook умирает, даже если компьютер уже спит. Я ткнулся в ~/Library/Application\ Support/Postgres/var-9.4, и я обнаружил еще один файл postmaster.pid, который я раньше не видел. Я удалил его, и теперь все работает и работает! Я запускаю версию Postgres.app, а не версию brew.

Шаги, которые я сделал:

  • Убедитесь, что postgres.app не работает.
  • Запустить rm ~/Library/Application\ Support/Postgres/var-9.$X/postmaster.pid
  • Если у вас нет каталога var-9.$X, просто запустите rm ~/Library/Application\ Support/Postgres/postmaster.pid
  • Перезагрузка postgres.app
  • Вернитесь к разработке интересных вещей.

Ответ 7

У меня была аналогичная проблема, когда я не мог подключиться к Postgres.app, хотя само приложение говорило, что оно работает на порту 5432.

Я не уверен, почему, но даже когда я вышел из приложения и проверил, что никаких процессов postgres не выполнялось с ps -a. эти файлы существовали:

/tmp/.s.PGSQL.5432

и

/tmp/.s.PGSQL.5432.lock

Мое решение состояло в том, чтобы удалить эти файлы, а затем снова запустить postgres.app.

Ответ 8

Также может случиться, что PID принимается. Это было для меня, когда компьютер перенес неожиданную перезагрузку.

Если это так, вы должны перейти к:

˜/Library/Application Support/Postgres/var-9.4

Вы можете проверить этот путь в диалоговом окне настроек Postgres.app.

И тогда просто удалите файл pid

sudo rm postmaster.pid

И сервер сразу запускается.

Ответ 9

При попытке открыть приложение Postgres появилась такая же ошибка в отношении сообщения 5432 (на Mac OSX 10.10.5)

Я сделал:

$ lsof -i | grep LISTEN

Пила, в которой PID запускал postgres в этом порту, сделал: $ killall {pid}, а затем $ brew uninstall postgres

После этого перезагрузите мой Mac и запустите:

$ lsof -i | grep LISTEN снова, чтобы убедиться. Не видел никаких постгрейсов в любом месте и смог открыть приложение Postgres, не получив этого предупреждения.

Затем я переустановил postgres с помощью $ brew install postgres

ДРУГОЙ ВАРИАНТ:

(Я также пробовал это один раз, когда вышеприведенный подход не работал, и я не мог убить ни одного из PID)

$ ps auxw | grep post

Увидел несколько процессов postgres, которые я тогда sudo kill <PID>

Теперь все работает нормально.

Ответ 10

Эта команда представляет собой однострочную строку, которая мгновенно убивает все процессы PostgresSQL.

sudo kill -kill $(sudo lsof -t -i :5432)

Это исправило все мои проблемы на Mac OSX Mojave 10.14.1.

Ответ 11

В предположении, что что-то еще взяло порт 5432, поэтому приложение выбрало вместо этого 5433.

Почему бы просто не подключиться к Pg на порту 5433, если это работает? У вас есть файл сокета /tmp/.s.PGSQL.5432, поэтому вы можете подключиться к psql -p 5433 для соединений сокета домена UNIX. Он также будет прослушивать один и тот же порт с TCP/IP, поэтому вы можете использовать psql -h localhost -p 5433 для TCP/IP и подключаете ваши приложения к порту 5433 вместо 5432.

Измените свой .psqlrc, чтобы установить новый порт по умолчанию, и вы можете забыть, что он не находится на порту по умолчанию.

Ответ 12

У меня была аналогичная проблема при попытке использовать postgresql с рельсами. Обновление моего Gemfile для использования новой версии gem pg для решения этой проблемы. (работает gem pg версия 0.16.0). В Gemfile используйте:

gem 'pg', '0.16.0'

затем выполните следующее, чтобы обновить драгоценный камень

bundle install --without production
bundle update
bundle install

Ответ 13

Mine не удалось запустить внезапно, и когда я проверил Console.app, я увидел:

com.heroku.postgres-service: 
FATAL:  could not create shared memory segment: Cannot allocate memory
DETAIL:  Failed system call was shmget(key=5432001, size=3874816, 03600).
HINT:  This error usually means that PostgreSQL request for a shared memory segment exceeded available memory or swap space, or exceeded your kernel SHMALL parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMALL.  To reduce the request size (currently 3874816 bytes), reduce PostgreSQL shared memory usage, perhaps by reducing shared_buffers or max_connections.
The PostgreSQL documentation contains more information about shared memory configuration.

Оказывается, Postgres не запускается, потому что у меня работает Wireshark (и X11). Он отлично работал после того, как я вышел из Wireshark.

Удачи!

Ответ 14

Я решил эту проблему на

  • Определение того, что было запущено на порту 5432, используя "netstat" в CL, который был postgreSQL не Postgres
  • Я нашел каталог, содержащий postgreSQL, который был root/Library/PostgreSQL
  • Я гарантировал, что мгновенные действия приложения не выполнялись через Activity Monitor
  • Затем я удалил папку и перезагрузился! Все было хорошо!

Ответ 15

Как-то я полностью забыл, что этот файл сокета будет скрыт из-за точки. Убедитесь, что вы используете ls -A /tmp/.s.PGSQL.5432, если вы проверяете, действительно ли есть сокет.

Ответ 16

Netstat, ps aux и т.д... ни один не показал 5432 в использовании. Проверено/Библиотека. Нашел PG9.6 старой установки еще там. Сделал рм -rf и грохнул. Версия 11 работает отлично.

Ответ 17

Помимо всех полезных ответов, вы также можете взглянуть на официальные инструкции на странице: postgressapp.com/documentation/remove.html

Ответ 18

То же самое случилось со мной. Через некоторое время я запускал Postgres.app 9.2.4.1. Когда я обновил Mac OS X до 10.8.5, после обязательной перезагрузки он больше не работал. Я пробовал несколько вещей, в том числе обновление до 9.2.4.3, и ни после перезагрузки он не работал.

Мне пришлось открыть файл /Users/$USER/Library/Application Support/Postgres/var/postgresql.conf и:

  • uncomment line unix_socket_permissions = 0777
  • раскомментировать и адаптировать строку unix_socket_directory = '/tmp'

После перезагрузки Postgres.app работал как шарм.

Ответ 19

У вас, скорее всего, установлен PostgreSQL, его удалили и снова установили. PostgreSQL обычно использовал порт 5432, но если он недоступен, он увеличивается до следующего доступного, в этом случае 5433. Таким образом, вы, вероятно, выбрали этот порт при второй установке.

Я думаю, вы должны проверить файл:

/etc/services

и отрегулируйте строки ниже для вашего ожидаемого номера порта:

postgresql 5432/udp # База данных PostgreSQL

postgresql 5432/tcp # База данных PostgreSQL

После этого вы должны перезагрузить компьютер (самый простой способ).

Ответ 20

Файл с именем "postmaster.pid" (в моем каталоге $PGDATA) предотвращал запуск postgresql. Это был файл с зомби, размещенный там 10 дней назад, и когда я жестоко отключил компьютер (потянув плагин, буквально), никакой процесс очистки не имел возможности удалить этот файл.

Ответ 21

У меня были те же проблемы:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

В моем случае это был поврежденный файл хоста на моем mac. Мне не хватало:

127.0.0.1   localhost

Быстрый простой способ проверить - открыть терминал и ввести:

ping localhost

или

scutil -r localhost

Подробнее здесь Надеюсь, что это поможет.