Остановить службу 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, о котором я забыл.