2011-11-03 16 views
14

Ho provato quanto segue e non è riuscitoCome riavviare il server PostgreSQL su MacOS?

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

Sto usando Macbook Pro e non ricordo la directory in cui il mio dati vengono memorizzati e quindi non può impostare PGDATA sia, c'è un modo per riavviare Postgres a tutti, senza perdere dati?

Grazie

risposta

20

come si vuole ri -start Postgres Suppongo che il server è già in esecuzione.

Utilizzando l'account superuser è possibile interrogare il percorso della directory dei dati tramite SQL:

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

Con queste informazioni è possibile fornire la directory dei dati al comando pg_ctl utilizzando l'interruttore -D (vedere il manuale per i dettagli

+0

che ha aiutato, grazie mille :) – daydreamer

17

Se si è utilizzato brew, è possibile trovare le istruzioni di riavvio (start | stop) eseguendo un brew info postgresql Alcuni problemi che si verificano derivano dal fatto che ho visto il plist non caricato, all'avvio del sistema operativo, per qualche motivo. Ho sempre dimenticato cosa fare e questo mi ha aiutato.

sulle mie Postgres 9.2 birra ricetta che aveva:

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

Questo è esattamente quello che stavo cercando! Sembra che ci sia molto poca documentazione relativa al brew sul riavvio di Postgres. – jgillman

4

uno di linea (con impostazione predefinita PostgreSQL 9.6 installare)

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

versione completa

Prendi la cartella PGDATA (mi ha dato /Library/PostgreSQL/9.6/data) (grazie @a_horse_with_no_name)

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

Per me è restituisce '/Library/PostgreSQL/9.6/data'

Poi

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

Nota: directory home dell'utente postgres' dovrebbe essere "/Library/PostgreSQL/9.6"

+0

ha funzionato bene per me – MWiesner

Problemi correlati