Остановить службу PostgreSQL на Mac через терминал

Работает в настоящее время PostgreSQL 9.4.5_2

я пытался

pg_ctl stop -W -t 1 -s -D /usr/local/var/postgres -m f

Обычно нет новостей, это хорошие новости, но после того, как я буду бежать

Состояние pg_ctl -D / usr / local / var / postgres

и получить pg_ctl: сервер работает (PID: 536)

Я также пытался

pg_ctl перезапустить -w -D /usr/local/var/postgres -c -m i

Ответное сообщение: ожидание завершения работы сервера.......................... сбой pg_ctl: сервер не завершает работу

Я также проверил /Library/LaunchDaemons/, чтобы увидеть, почему служба запускается при входе в систему, но пока не повезло. У кого-нибудь есть идеи о том, где я должен проверить дальше? Принудительный выход из монитора активности также не помогает мне.

9 ответов

К сожалению, ни один из предыдущих ответов мне не помог, у меня это сработало:

      brew services stop postgresql

Ваше здоровье

Я пробовал разные варианты; наконец, сработала следующая команда.

sudo -u postgres ./pg_ctl -D /your/data/directory/path stop

пример

sudo -u postgres ./pg_ctl -D /Library/PostgreSQL/11/data stop

Пробовал sudo и su, но не такая удача. Только что нашел этот графический интерфейс

https://github.com/MaccaTech/postgresql-mac-preferences

Если кто-то может помочь с терминальными командами, это будет очень цениться, но до тех пор графический интерфейс выполнит работу.

Была такая же проблема, я установил postgres локально и вместо этого хотел обернуть его в контейнер докеров.

Я решил это довольно радикально: 1) удалил postgres 2) убил оставшийся процесс на порту postgres. Если вы не удалите установку, процесс перезапустится и снова захватит порт - посмотрите на форму Brewfile. brew bundle dump проверить наличие restart_service: true флаг.

Я рассудил, что, поскольку я использую контейнеры, мне все равно не нужен локальный, но !! внимание, это удалит postgres из вашей системы .

      brew uninstall postgres
...
lsof -i :5432 # this to find the PID for the process
kill - 9 <the PID you found at previous command> 

Примечание: если вы все еще хотите использовать psql ты можешь brew install libpq, и добавьте psql в ваш PATH (вывод команды показывает вам, что добавить в ваш .zshrc, или похожие)

Вы можете остановить сервер с помощью этой команды

{pg_ctl -D /usr/local/var/postgres stop -s -m fast}

Я только что установил Postgres 15 на OS X Ventura и не мог понять, как его остановить. Сработало следующее:

      sudo -u postgres /Library/PostgreSQL/15/bin/pg_ctl -D /Library/PostgreSQL/15/data stop

Другой возможный сценарий: когда вы установили PostgreSQL через пользовательский интерфейс, команда для поиска процесса:

      netstat -vanp tcp | grep 5432

Затем вы убиваете PID

      kill -9 PID_FROM_netstat

Добавление к уже указанным решениям:

если вы решили использоватьpg_ctlубедитесь, что вы выполняете команду как пользователь с разрешениями на доступ к базам данных/серверу баз данных.

это означает :

  • текущий пользователь, вошедший в систему на вашем терминале, должен иметь эти разрешения

или

  • первый забег :
      $ sudo su <name_of_database_user>

pg_ctl -D /Library/PostgreSQL/<version_here>/data/ stop

то же самое касается команды запуска.

кредит: https://gist.github.com/kingbin/9435292(по сути, разместил файл с командами на github, сэкономил мне время:^))

У меня был бродячий док-контейнер с Postgres, о котором я забыл.

Другие вопросы по тегам