PostgreSQL Mac'te çalışmıyor


55

Bütününde hata okur:

psql: sunucuya bağlanamadı: Böyle bir dosya ya da dizin yok. Sunucu yerel olarak çalışıyor mu ve "/tmp/.s.PGSQL.5432" Unix etki alanı soketindeki bağlantıları kabul ediyor mu?

Bu benim ikinci seferim Postgresql'i Mac bilgisayarımda Homebrew aracılığıyla kurmak ve neler olup bittiği hakkında hiçbir fikrim yok. Daha önce çalışıyordu. Bir noktada, işleri berbat eden bir komuta girmiş olmalıyım. Emin değilim. Şimdi ne zaman komut satırından bir SQL komutu girdiğimde yukarıdaki mesajı alıyorum. Sunucunun çalışıp çalışmadığını kontrol etmek için bir komut çalıştırdım ve görünüşe göre çalışmıyor. Kullanarak sunucuyu başlatmaya çalışırsam

$ postgres -D / usr / yerel / pgsql / veri

Aşağıdaki hatayı alıyorum:

posta defterleri "/usr/local/pgsql/data/postgresql.conf" sunucu yapılandırma dosyasına erişemiyor: Böyle bir dosya veya dizin yok

Postgresql'i Homebrew aracılığıyla kaldırdım ve yeniden yükledim, ancak sorun devam ediyor. Bu işin nasıl yürüdüğünü tamamen kaybediyorum. Herhangi bir yardım takdir edilecektir.

Yanıtlar:


51

Sorun, postmaster.piddosyayı geride bırakan çökmüş bir işleme de bağlanabilir .

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql

4
MacOSX'ta bu cevap beni kurtardı. Bilgisayarım yeniden başlatıldıktan sonra OP ile aynı hatayı aldım. brew servicesOnlar her şeyi çalışıyordu gibi görünüyor yaptı çünkü komut yararlı değildi. Çıkarmak, postmaster.pidsonunda her şeyin tekrar işe yaramasını sağlar. Teşekkürler!
vinhboy

1
Bu da bana oldu. Mac OS X'in sert çökmesi, Postgres gelmediyse yeniden başlatmaya neden oldu. Demlemek hizmetleri start / stop / restart işe yaramazsa, pid dosyasını elle kaldırmak zorundasınız.
Matthijs

Elbette, Postgres'i liman işçisi konteynırında çalıştırmak tavsiye edilir. Çalıştırması çok kolaydır ve bir konteyner kapatıldığında her şey temizlenir. Herhangi bir üçüncü taraf uygulamasını liman işçisi konteynerinde çalıştırmanın bugünlerde fiili olması gerektiğini söyleyebilirim.
demisx

43

Cevap burada .

Sunucuyu el ile başlatmak için bu komutu çalıştırın:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

14

Ben de aynısını yapıyordum

Is the server running locally and accepting connections on Unix domain 
socket "/tmp/.s.PGSQL.5432"?

Homebrew döngü yüklemek / başlatmak / durdurmak / boşuna hiçbir yeniden ...

Sonunda brew postgresql-upgrade-databaseçalıştı.

Görünüşe göre 10.4 yerine 9.6'da ve en son App Store'um yeniden başlatıldığında tüm veritabanı sunucularım yeniden başlatılıyor ...


bu benim için çalıştı
9'da davideghz

İşte brew postgresql-upgrade-databaseeksik olan buydu. Bunu gösterdiğin için teşekkürler.
Corin

Benim için çalıştı teşekkürler!
Erwin Rooijakkers

Tüm çözümleri denedim. Ama bu benim için çalışan tek şey. Bunun neden tamamen düzeldiğini açıklayan var mı bilmek güzel olurdu.
JohnnyQ

11

Ben de aynı sorunu çözdüm. Sadece kullanmadan önce doğru şekilde çalıştırmayı unuttuğum için .

İçin saf takÕlmasÕ postgresql Mac OS üzerinde, süreç (kullanacak demlemek komutunu):

brew install postgresql

o zaman otomatik postgresqlolarak giriş sırasında çalıştırmak istiyorsanız :

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

ya da sadece istediğiniz zaman çalıştırmak istediğinizde:

postgres -D /usr/local/var/postgres

brew uninstall postgresqlDurumunuz daha karmaşıksa, haydi bu adımları tekrarlayalım.

Umarım yardımcı olur!


1
Güncelleme: Homebrew yüklü postgres için, brew services start postgresqlgiriş sırasında postgres'i başlatmak için şimdi tercih edilen bir yol
henry

5
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket"/var/pgsql_socket/.s.PGSQL.5432"?

Yukarıdaki hatayı almaya devam ettim ve yukarıdaki çözümlerin hiçbiri benim için çalıştı. Sonunda aşağıdaki çözüm Mac OS X'teki sorunumu çözdü

Demlemek kullanarak postgres yükleyin

brew install postgres

Demlemek hizmetleri yükleyin

brew tap homebrew/services

Postgres'i arka plan servisi olarak başlatmak için

brew services start postgresql

Postgreleri manuel olarak durdurmak için

brew services stop postgresql

Postgres'i yeniden başlatmak için brew servislerini de kullanabiliriz.

brew services restart postgresql

2

Postgres sunucusu çalışmıyorsa bu olur. Postgres'i Homebrew yoluyla MAC'e düzgün şekilde kurma adımları:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Bu, belirtilen dizini veritabanı dizini olarak kullanmak için posta defterlerini başlatır. Normalde, kullanıcı dizinini veritabanı depolaması için kullanmak tavsiye edilmez. İnitdb ve benzeri komutlar eklemek için sudoers dosyasını düzenleyin ve ardından / usr / local / var / postgres] initdb komutunu çalıştırın.

  3. pg_ctl -D /Users/<username>/db -l logfile start [2. adımla başarılı olduktan sonra 3. adımı çalıştırmanız istenir. Bu komut sunucuyu el ile başlatır.]


2

Benim için çalıştı. Postgresql dizininizi sisteminizdeki sürüme göre değiştirin.

Ortak yol rm /usr/local/var/postgres/postmaster.pid

ama postgresql@9.6 için sistem yolumda rm /usr/local/var/postgresql@9.6/postmaster.pid

postgresql@9.6- 'yı yeniden başlatın brew services restart postgresql@9.6


yup bu çalışan BİR!
PirateApp

1

Sadece /etc/postgresql/9.5/main/postgresql.conf içinde

unix_socket_permissions = 0777

ve postgres yeniden başlatın. Ve benim için çalışıyor.


1

Son zamanlarda benzer bir sorunla gittim. Sadece başka bir sorun ve çözüm var. Sunucu 2 farklı portta çalışacak şekilde ayarlanmış olmasına rağmen 2 postgres sürümü (9.3 ve 9.6) kullanıyordum. port ayarlarınızı daha sonra çalıştırın psql -p <port> postgres. Çözüm liman değişiyor.


1

Uzun zamandır arıyordum ve bu en temiz ve düzenli çözümdü:

Son zamanlarda Postgres’i 9.2’den 9.3’e yükselttim. İşlem pürüzsüzdü ve pg_upgrade çok kullanışlı bir araçtır.

Ne var ki, bir keresinde sıkıntı yaşanmış, Postgres'e bağlanmak için gereken her şeyi yapmaya çalıştım. Postgres kesinlikle koşuyor olsa da, birdenbire alıyorum:

Sunucuya bağlanamadı: Böyle bir dosya ya da dizin yok (PG :: ConnectionBad) Sunucu yerel olarak çalışıyor mu ve "/var/pgsql_socket/.s.PGSQL.5432" Unix alan soketine bağlantı kabul ediyor mu? Sorun Postgres'in yeni sürümünün yerine /tmp/.s.PGSQL.5432'yi dinlemesiydi. Config ile uğraşırdım ve Postgres'in daha önce olduğu gibi etki alanı soketini kullanmasını sağladım ya da Rails'e nasıl bağlanacağımı açıkça söyledim, fakat bu yaklaşımların ikisi de yapmamam gereken işler gibi görünüyordu. Hiçbir noktaya Rails'e bu yoldaki postgres'lere bağlanmasını söylememiştim, Rails bunu varsaymıştı ve şimdi varsayımları yanlıştı.

Düzeltme biraz şaşırtıcı, basit. 'Pg' gemini kurduğunuzda, Postgres'in hangi sürümünün kurulu olduğunu tespit eder ve alan soketi yolunu uygun şekilde ayarlar. Çözüm gem'i yeniden yüklemek kadar basit. $ gem uninstall pg $ cd my-rails-app/ $ bundle install

http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/


1
Lütfen cevabınızı düzenleyin , böylece bağlantı çalışmayı durdurursa değer sağlar . Bunun doğru şekilde nasıl yapılacağına dair rehberlik bilgisini başkaları tarafından yazılan malzemelere nasıl başvurabilirsiniz bölümünde bulabilirsiniz . Teşekkür ederim.
Paul White

0

komutunu kullanarak güncelle

  brew postgresql-upgrade-database

Aşağıdaki hatayı alıyorsanız Command 'brew' bulunamadı, ancak bununla birlikte yüklenebilir: sudo apt install linuxbrew-wrapper

sonra komutunu kullanarak yükleyin

 sudo apt install linuxbrew-wrapper

-3

Aşağıdaki adımlar bana yardımcı oluyor:

Demlemek kaldırma postgresql demlemek postgresql demlemek postgresql-upgrade-database

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.