Yerel PostgreSQL için bağlanamıyor
Bork için yerel bir geliştirme ortamı başardım.
Tüm yerel Raylar uygulamalarım şimdi hata veriyor:
PGError
could not connect to server: Permission denied
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Bunun sebebinin ne olduğuna dair hiçbir fikrim yok.
Birlikte taşlar, güncelleştirilmiş sistem taşlar, güncelleştirilmiş MacPorts tüm güncelledik bir çözüm ararken. Hiçbir sevinç.
Diğerleri Aslan, kullanılması gereken bir karışıklık nedeniyle (örneğin, sürüm Sürüm) veya MacPorts)) Leopar yükseltirken bu sorun bildirdin. Birkaç ay Aslan koşuyorum, bu böyle olması garip geliyor.
Sorunun ne olduğunu ilk anlamadan çok fazla uğraşmak istemiyorum. Bu nasıl sistemli bir şekilde hata ayıklama yapabilir miyim?
Kaç PostgreSQL sürümleri bir erişiliyor benim sistem, ve bulunduğu belirleyebilirim? Nasıl yanlış PostgreSQL kullanılıyorsa, bu düzeltebilirim?
Üzgünüm çaylak soru için. Bu işlerin nasıl yürüdüğünü hala öğreniyorum! Herhangi bir işaretçiler için teşekkür ederiz.
EDİT
Bazı güncellemeler öneri ve yorumlar aşağıda dayanarak.
command not found
Bir hata döndürdü pg_lsclusters
koşmaya çalıştım.
O zaman benim pg_hba yerel etmeye çalıştı.conf ve bu üç örnek dosya buldu
/opt/local/share/postgresql84/pg_hba.conf.sample
/opt/local/var/macports/software/postgresql84/8.4.7_0/opt/local/share/postgresql84/pg_hba.conf.sample
/usr/share/postgresql/pg_hba.conf.sample
NUMARASINI 3 sürümü yüklü olduğunu varsayıyorum, değil mi? Macports, varsayılan) ve ???.
Sonra döndü hangi launchctl başlangıç komut dosyası için bir arama ps -ef | grep postgres
yaptı
0 56 1 0 11:41AM ?? 0:00.02 /opt/local/bin/daemondo --label=postgresql84-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper restart ; --pid=none
500 372 1 0 11:42AM ?? 0:00.17 /opt/local/lib/postgresql84/bin/postgres -D /opt/local/var/db/postgresql84/defaultdb
500 766 372 0 11:43AM ?? 0:00.37 postgres: writer process
500 767 372 0 11:43AM ?? 0:00.24 postgres: wal writer process
500 768 372 0 11:43AM ?? 0:00.16 postgres: autovacuum launcher process
500 769 372 0 11:43AM ?? 0:00.08 postgres: stats collector process
501 4497 1016 0 12:36PM ttys000 0:00.00 grep postgres
Postgresql84-sunucu içeriğini gönderdiniz.http://pastebin.com/Gj5TpP62 sarıcı.
port load postgresql184-server
kaçmaya çalıştım ama 16* *bir hata aldı.
Bu düzeltme, ve "aptallar" işaretçiler. için herhangi kıymetini hala kafam çok karışık
Teşekkürler!
EDİT2
Bu sorunu daemondo bazı problemler vardı sonra başladı. Yerel Raylar uygulamalarım çizgisinde bir uygulama hatası ile çökmesini "daemondo gem bulunamaz". Ben o zaman paket güncellemeleri, gem güncellemeleri, port güncellemeleri ve demlemek güncellemeleri bir dizi deneyin ve sorunu bulmaya gitti.
Bu hata daemondo ile ilgili bir sorun olabilir mi?
CEVAP
Bu gerçekten dosya izinleri ile ilgili bir hata gibi görünüyor. Unix alan soketleri dosyaları ve diğer davalar gibi kullanıcı izinleri var. ) Kullanıcı veritabanına erişmek için çalışırken yuva dosyaya erişmek için dosya izinleri yok gibi görünüyor. Aynı hata (aşağıda dahil) oluşturmak için denemek için Ubuntu ve numarasını üzerinde bazı testler yaptım da bunu doğruluyor.
Soket dosya izinleri ve dizinleri /var
/var/pgsql_socket
kontrol etmeniz gerekir. Raylar app (kullanıcı)) (x) bu dizinler yürütme izinleri olmalıdır (tercihen herkesin izinleri) ve yuva izinleri (wrx) olmalıdır. ls -lAd <file>
Bu kontrol etmek için kullanabilirsiniz, ve onları herhangi bir dosyayı kontrol etmeniz gerekir bir sembolik link veya link dır eğer işaret eder.
Yüzünüzden üzerinde dizin izinleri değiştirebilirsiniz, ama yuva postgresql.conf
PostgreSQL tarafından yapılandırılır. Bu pg_hba.conf
aynı dizine (hangisi olduğunu anlamaya olacak) bulunabilir. İzinleri ayarladıktan sonra postgresql yeniden başlatmanız gerekecek.
# postgresql.conf should contain...
unix_socket_directory = '/var/run/postgresql' # dont worry if yours is different
#unix_socket_group = '' # default is fine here
#unix_socket_permissions = 0777 # check this one and uncomment if necessary.
DÜZENLEME:
Eğer relavent olup olmadığını görmek için içine bakmak isteyebilirsiniz ki Google'da hızlı bir arama yaptım.
Bu iyi find
config dosyası için herhangi bir girişim başarısız neden olabilir.
http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html
Hata mesajları:
Kullanıcı pg_hba bulunamadı.conf
psql: FATAL: no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off
Kullanıcı parola kimlik doğrulama başarısız oldu:
psql: FATAL: password authentication failed for user "couling"
Unix soket dosyası kayıp
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Unıx soket var, ama sunucu dinlemiyor.
psql: could not connect to server: Connection refused
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Hatalı dosya unıx soket dosya izinleri:
psql: could not connect to server: Permission denied
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Uzak bir Git repo için yeni bir yerel ...
Yerel dizinden silmeden Git deposu bir...
Nasıl PostgreSQL komut satırı yardımcı...
Nasıl yerel uzak bir klasör için scp?...
Rename master hem yerel hem de uzak Gi...