Как перезапустить сервер PostgreSQL на MacOS?

Я попробовал следующее и не получилось

bash-3.2$ pg_ctl restart
pg_ctl: no database directory specified and environment variable PGDATA unset

Я использую Macbook Pro и не помню каталог, где хранятся мои данные, и поэтому не может установить PGDATA, есть ли способ перезапуска Postgres вообще без потери данных?

Спасибо

Ответ 1

Как вы хотите re -start Postgres Я предполагаю, что сервер уже запущен.

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

select name, setting
from pg_settings
where name = 'data_directory'

С помощью этой информации вы можете предоставить каталог данных команде pg_ctl с помощью переключателя -D (подробнее см. руководство)

Ответ 2

Если вы использовали brew, вы можете найти инструкции для перезапуска (start | stop), выполнив brew info postgresql Некоторые проблемы, которые происходят из-за того, что я видел, что plist не загружается при запуске ОС по какой-либо причине, Я всегда забывал, что делать, и это помогло.

в моем рецепте Postgres 9.2 brew, который у него был:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Ответ 3

Один вкладыш (с установкой по умолчанию postgresSql 9.6)

sudo su postgres -c "/Library/PostgreSQL/9.6/bin/pg_ctl restart -D /Library/PostgreSQL/9.6/data"

Полная версия

Получить папку pgdata (дал мне /Library/PostgreSQL/ 9.6/data) (спасибо @a_horse_with_no_name)

select name, setting from pg_settings where name = 'data_directory';

Для меня он возвращает '/Library/PostgreSQL/9.6/data'

Тогда

sudo su - postgres
./bin/pg_ctl restart -D /Library/PostgreSQL/9.6/data

Примечание. Пользовательский домашний каталог postgres должен быть "/Library/PostgreSQL/9.6"