2012-06-13 11 views
6

Son zamanlarda homebrew ve postgres'i yeniden yüklemek zorunda kaldım ve postgres artık raylarla çalışmıyor. raylar s çalıştırmak çalışırkenPostgres sh: /usr/local/var/postgres/server.log: Böyle bir dosya veya dizin yok

Birincisi, bu olsun:

/Users/lee/.rvm/gems/[email protected]/gems/activerecord-3.2.6/lib/active_record/connection_adapters/postgresql_adapter.rb:1206:in `initialize': could not connect to server: Connection refused (PG::Error) 

yüzden postgres başlatmayı deneyin ve bana böyle:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start 
server starting 
sh: /usr/local/var/postgres/server.log: No such file or directory 

postgres bu nedenle çalıştığı anlaşılmaktadır:

ps aux | grep postgreslee    1099 0.3 0.0 2425480 188 s000 R+ 5:48PM 0:00.01 grep postgres 

Burada neden işleyemediğime göre tamamen zarara düşüyorum.

+2

Yeni postgre'leri farklı bir dizine yüklediniz. Başlamadan önce -l flag + logfilename dosyasını atlamayı deneyin. BTW: postgres.conf dosyasında da log dosyasını belirtebilirsiniz. "/ Usr/local/var/postgres" dizini neyi içerir? var mı sahibi kimdir? – wildplasser

cevap

5

İlk önce, ps | grep aslında grep'inizi işlem ağacından dışarı çekiyor. Postgres çalışmıyor. Bu tür bir şey, günlüğe kaydetme dizini bulunmadığında gerçekleşir. Muhtemelen, olmayan bir dizinde işaret ediyorsun.

Henüz bir veri dizininiz yoksa bu durum ortaya çıkabilir.

Öneriler: verilerinizin dizinin mevcut yaparak

  1. Başlat. pg_hba.conf dosyasını arayın ve sisteminizde herhangi bir yer olup olmadığını görün. Öyleyse, veri dizininizde iyi bir şans var demektir (eğer böyle bir durumda ise, o zaman temel/1/PG_VERSION değerini arayın. Bu, veri dizininizde tabandan bir seviye yukarı olacak).
  2. eğer varsa, günlüğe kaydetme ayarını uygun şekilde ayarlamak ve -l seçeneğini bırakmak için postgresql.conf dosyanızı değiştirin.
  3. Hiçbir veri dizini yoksa, bir tane oluşturmak için initdb komutunu kullanın.
+6

Eğer OSX üzerinde yeni bir kurulum yaparsanız (homebrew ile), önce bir veritabanı oluşturmanız gerekir: initdb/usr/local/var/postgres -E utf8' – oschrenk