2012-07-15 18 views
5

Ben Homebrew aracılığı ile PostgreSQL'i yüklemiş ve bir kazadan sonra artık sunucuyu başlayamaz ..Homebrew PostgreSQL Mac OS X yüklemek başlatılamıyor - "İzin engellendi"

bunu yaparsam

$ pg_ctl start 

Ben yaparsanız

pg_ctl: no database directory specified and environment variable PGDATA unset 

olsun

$ pg_ctl -D /Library/PostgreSQL/data start 

Ben dururken ..

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

Her şey daha sonra gayet güzel çalışıyordu ve bu olsun.

veri klasörü yukarıdaki izinleri

Yol

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

Bu, apple.stackexchange.com veya dba.stackexchange.com'a taşınmak yerine kapatıldı. –

cevap

6

zaman sizi (benim ~/.bash_profile dosyasına) gayet iyi görünüyor .. postgres kullanıcı ve herkes için "Yok" için "Her şey" olarak belirledi İlk önce Pg, homebrew'un sizin için başlamasına izin verdiniz mi, yoksa pg_ctl ile manuel olarak başlattınız mı? Soruyorum çünkü tahmin ediyorum ki, muhtemelen homebrew komut dosyalarını kullanarak ve/veya pg_ctl üzerinden doğrudan launchd kullanarak Pg'yi başlatmanız ve durdurmanız gerekir. Homebrew (veya Mac OS X) kullanmıyorum ama hızlı bir arama, Pg'nin homebrew yüklemelerinin genellikle launchd ve ~/Library/LaunchAgents/org.postgresql.postgres.plist aracılığıyla başlatıldığını ve durdurulduğunu gösteriyor.

bunu elle yönetmek isterseniz:

homebrewleri genellikle PostgreSQL'i olarak çalışacak neyi kullanıcı? Pg'yi pg_ctl aracılığıyla başlatıyorsanız, doğru kullanıcı olarak çalıştırmanız gerekir. Diğer tartışmaların muğlak belleğinden, burada homebrew'u gördüm, muhtemelen postgres veya postgres_ isimli bir kullanıcı. kullanılarak iki kez kontrol edin:

ls -ld /Library/PostgreSQL/data 

ve sahip kullanıcı ne olduğunu görmek, sonra çalıştırın:

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

... datadir sahibi ile "postgres_" yerine.

İzinleri almanızın nedeninin, muhtemelen değişiklikleri yinelemeli olarak uygulayamadığınızdan şüpheleniyorum. Lütfen yapma; yerine Pg'yi doğru kullanıcı olarak çalıştırın.