Frage Start von Homebrew PostgreSQL unter Mac OS X nicht möglich - "Zugriff verweigert" [geschlossen]


Ich habe ein Postgresql über Homebrew installiert und nach einem Absturz kann ich den Server nicht mehr starten.

wenn ich mache

 $ pg_ctl start 

Ich bekomme

pg_ctl: no database directory specified and environment variable PGDATA unset

Wenn ich mache

$ pg_ctl -D /Library/PostgreSQL/data start

Ich bekomme

pg_ctl: could not open PID file "/Library/PostgreSQL/data/postmaster.pid": Permission denied

Alles hat gut funktioniert und dann ... aus heiterem Himmel.

Der obige Datenordner verfügt über Berechtigungen, die auf "Alles" für Postgres-Benutzer und "Keine" für alle Benutzer festgelegt sind.

Pfad sieht gut aus (in meinem ~ / .bash_profile)

export PATH=/usr/local/bin:$PATH

5
2017-07-15 19:31


Ursprung


Antworten:


Haben Sie beim ersten Start von Pg Homebrew für Sie gestartet oder manuell gestartet? pg_ctl ? Ich frage, weil ich vermute, dass Sie wahrscheinlich Pg mit Homebrew-Skripten starten und stoppen müssen launchd anstatt direkt über pg_ctl. Ich benutze nicht Homebrew (oder Mac OS X viel) aber eine schnelle Suche deutet darauf hin, dass Homebrew-Installationen von Pg in der Regel über gestartet und gestoppt werden launchd und ~/Library/LaunchAgents/org.postgresql.postgres.plist .

Wenn Sie es manuell verwalten möchten:

Welcher Benutzer betreibt Homebrew normalerweise als PostgreSQL? Wenn Sie Pg über starten pg_ctl Sie müssen es als den richtigen Benutzer ausführen. Von vagen Erinnerungen an andere Diskussionen habe ich hier Homebrew gesehen, es ist wahrscheinlich ein Benutzer namens postgres oder postgres_ . Überprüfe mit:

ls -ld /Library/PostgreSQL/data

und sehen Sie, was der besitzende Benutzer ist, dann führen Sie:

sudo -u postgres_ pg_ctl -D /Library/PostgreSQL/data start

... "postgres_" durch den Besitzer des Datadirs ersetzen.

Ich vermute, der Grund, warum Sie Zugriffsfehler erhalten, ist, dass Sie die Änderungen wahrscheinlich nicht rekursiv angewendet haben. Bitte nicht; Führen Sie stattdessen Pg als den richtigen Benutzer aus.


6
2017-07-16 01:24