Postgres sunucuya bağlanamadı


415

Ben güncelleme demlemek ve yükseltme demlemek sonra, benim postgres bazı sorun var. Postgres'i kaldırmayı ve tekrar yüklemeyi denedim, ancak işe yaramadı.

Bu hata mesajıdır. (Komisyon db: migrate yapmaya çalıştığımda da bu hata mesajını aldım)

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

Nasıl çözebilirim?

Mac sürümü: Dağ aslanı.

homebrew sürümü: 0.9.3

postgres sürümü: psql (PostgreSQL) 9.2.1

Ve ben de bunu yaptım.

12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$   cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$   launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Şimdi, howbrew'u yeniden yükledikten sonra, kullandığımda $ psqlherhangi bir hata mesajı göstermiyor.

Ama rake db:migrateraylar uygulamamda koşuyorum , gösteriyor:

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"?
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}

Sonunda çözümü buldum.

$ sudo mkdir /var/pgsql_socket/
$ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

Bu çözüm biraz zor, ama işe yarıyor. Umarım herkes daha iyi bir çözüme sahiptir

Güncelleme

Bu benim için de geçerli.

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

3
Ben de aynı problemi yaşıyorum ama sizin çözümünüz işe yaramadı. Bu bir izin sorunu olduğunu düşünüyorum ama bunu düzeltmek için dosya izinleri bilgisine sahip değilim.
ajbraus

PG'yi Homebrew aracılığıyla yükleyen ve sorun yaşayanlar için başka bir cevap buldum. Sadece pg gem'i kaldırın ve Homebrew yapılandırmalarıyla yeniden yükleyin. Cevaba stackoverflow.com/a/19609228/1072058 adresinden bakın .
zquintana


1
Postgres başlatın.
atw

4
Aşağıdaki komutla mevcut sürümünüzü daha yeni sürüme yükseltin brew postgresql-upgrade-database

Yanıtlar:


799

Benzer bir sorun vardı; pid dosyası postgreslerin başlatılmasını engelliyordu. Tamir etmek için:

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

ve sonra her şey yolunda.


4
Bu güncelleme / yeniden başlatma üzerine bu sorunu gördükten sonra OSX Mavericks üzerinde benim için çalıştı.
eprothro

3
@jstafford teşekkürler, zaten çözdüm! :) Çözüm homebew üzerinden kaldırmak ve hemen bilgisayarımı yeniden başlatmak oldu, bu yüzden postgres yeniden yüklemek mümkün olacaktı. Eski sürüm arka planda çalışıyordu, postgres'i her yeniden yüklemeye çalıştığımda dosya ve çakışma oluşturuyordu.
betoharres

199
Bu benim için Mavericks'te işe yaramadı:rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
sscirrus

16
Bu benim için çalıştı, sildikten sonra postgres başlatmak zorunda kaldım. # pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log başlangıç
Ricardo Castañeda

12
Bunun gerçekten sorun olduğundan emin olmak için sunucu günlüğünü kuyruklamanızı öneririm:tail /usr/local/var/postgres/server.log
Josh Bodah

255

Bu bazen postgres yükseltme ile ilgili bir sorun olabilir.

Benim durumumda, 9.3'ten 9.4'e yükseltirken oldu.

Görmek Http://www.postgresql.org/docs/9.4/static/upgrading.html

OS X / Homebrew:

Koşmayı dene postgres -D /usr/local/var/postgres - postgres başlamazsa size çok daha ayrıntılı bir çıktı verecektir.

Benim durumumda, koşu rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8 eski veritabanlarımı kaldırdıktan sonra postgres db şemasını yeniden başlattı.

Bu çözüm için https://github.com/Homebrew/homebrew/issues/35240 adresine teşekkürler .

Veritabanlarımı yeniden oluşturduktan sonra (ile rake db:create) her şey tekrar çalıştı.


1
Bu benim için Yosemite üzerinde bir homebrew yüklü postgres ile çalıştı.
cpursley

7
Koşu Eğer postgres -D /usr/local/var/postgresveri dizini Postgres eski, uyumsuz sürümü ile başlatıldı ve bunu anlatır yok yerel verilerinizi kaybetmek ister, sen deneyebilirsiniz Konuyu
Nathan Uzun

Yukarıdaki komut çalıştırıldıktan pg_ctl -D /usr/local/var/postgres -l logfile startsonra koştum: ve sonra sunucum arka planda başladı
Tommyixi

5
brew services start postgresBunun yerine arka planda postgres başlatmak için OSX kullanınpostgres -D /usr/local/var/postgres
Mike Andrianov

1
@coffekid Aynı sorunu yaşadım ve buradaki talimatlarla düzelttim: stackoverflow.com/questions/24379373/…
Micah Walter


41

Demleme ile postgres yüklemek ve kaldırmak sizin için işe yaramazsa, postgresql kurulumunuzun günlüklerine bakın veya:

postgres -D /usr/local/var/postgres

bu tür bir çıktı görürseniz:

LOG:  skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.6.1.

Ardından aşağıdakileri deneyin:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

Ardından sunucuyu başlatın:

pg_ctl -D /usr/local/var/postgres -l logfile start

Kaynak


2
Nedeni kabul edilen yanıttan farklı olduğunda çalışır, yani veritabanı dosyaları geçerli sürümle uyumlu değildir. Tam olarak bu benim sorunum olduğu için oy kullanıyorum.
Falk Schuetzenmeister

1
bu komut benim için çalışıyor.
Ccr

Mojave 10.14.6 için çalışıyor
Sgryt87

34

Yosemite'de, pid dosyası Postgres'in başlamasını engelliyorsa launchctlve veritabanı cinlerini yüklemeye çalışan (ve başarısız olan) bir arka plan programınız varsa, plist dosyasını kaldırmanız gerekir:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Sonra pid dosyasını kaldırın

$ rm /usr/local/var/postgres/postmaster.pid

Sonra launchctldaemon'u tekrar yükle

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

28

Bunu okuyan ve Postgres.app kullanan herkes host: localhostiçin database.yml dosyasına ihtiyacınız olabilir . http://postgresapp.com/documentation#toc_3


Bunu yapmak, bağlantıyı bir soketten bir TCP bağlantısına değiştirir ve bunun olumsuz etkileri olabilir. Bkz. Stackoverflow.com/questions/6770649/…
Brett Bim

1
Hmm, aslında, aşağı indirirseniz ... Belki nedenini söyleme? meta.stackoverflow.com/questions/252297/… Belki de nedenini söyleyin, ancak önce anonim olmak için oturumu kapatın .
David Winiecki

Bence aşağı oy, çünkü asıl soru Postgres.app için değil, Homebrew içindi. Bu nedenle, cevap bir yerde yararlı olsa da, soruyu cevaplamıyor.
Brian Dear

Bağlantı belirli bir yere gitmiyor gibi görünüyor (ve geçmişte "localhost" aramanın sonuçları yok), ancak bu sadece bir saatlik aramadan sonra sorunu çözdü.
sixty4bit

25

Veritabanını yükseltmek benim için çalışıyor

brew postgresql-upgrade-database


Teşekkürler Tomer! Bu benim için çalıştı 6/2/20 macOS Mojave 10.14.6 9.4'den 12'ye yükseltme
Rob Bednark

19
brew services start postgres 

benim için çalıştı!


17

Soket dosyasının var olduğunu kontrol edin.

$ ls -l /tmp/.s.PGSQL.5432
srwxrwxrwx  1 you  wheel  0 Nov 16 09:22 /tmp/.s.PGSQL.5432

Bunu yapmazsa postgresql.conf dosyasında unix_socket_directory değişikliği olup olmadığını kontrol edin.

$ grep unix_socket /usr/local/var/postgres/postgresql.conf
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation

1
Bu benim bilgisayar yanıtım. $ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation
Gary Lai

29
Sonunda çözümü buldum. $ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/Bu çözüm biraz zor, ama işe yarıyor. Umarım herkes daha iyi bir çözüme sahiptir
Gary Lai

güzel iş @ GaryLai. Homebrew postgresql ile aynı şeyi yapmak zorunda olmadığım çok garip
jrwren

2
bu bazı insanlara yardımcı olabilir: github.com/mxcl/homebrew/issues/14527
AdamT

14

Sorun, postmaster.pid dosyasını geride bırakan çökmüş bir işlemle de ilişkilendirilebilir. Ben bunu ve işin:

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

10

Sorun, bağlantı noktası 5432'de zaten çalışan bir hizmet olması ve bu bağlantı noktası üzerinden psql soket bağlantısı kuramadığımızdır.

Soket dosyasını kaldırdım

rm -rf /tmp/.s.PGSQL.5432/

Sonra postgres hizmetlerini yeniden başlattım

postgres -D /usr/local/var/postgres

Bu benim için çalıştı.


9

Bu konuda en aptalca yol yapmak

brew reinstall postgresql

Bu, kullanıcı izninizi vb. Sağlam tutar ve her şey yeni olarak sıfırlanır. Her zaman çalışır!


bir şampiyon gibi çalıştı !!!! Bunların hepsi gerekliydi.
Akash K

Bu çalıştı ama rm /usr/local/var/postgres/postmaster.pidmac os çalışmadıysa sonra bu komutu kullanın öneririz .
Yaseen Ahmad

7

Postresql veya database.yml yapılandırma ayarlarını değiştirmek, $ PATH değiştirmek veya sembolik linkler oluşturmak benim için gereksizdi. Yapmak için gerekli tek şey oldu gem uninstall pgve sonra bundle(veya gem install pg).

Sorun, pg gem'in homebrew postgresinden önce kurulmuş olmasıydı, bu yüzden ayarları MacOS ile gelen postgres sürümünden alıyordu. Yeniden yüklemek (ve böylece yerel uzantıyı yeniden oluşturmak) sorunu çözdü.


Sadece teşekkür etmek istedim. PostgresApp'ı macOS'ta yeni sürüme geçirdim ve psql kullanarak bağlanabilmeme rağmen raylar aracılığıyla bağlanamadım. pg gem kaldırma ve yeniden yükleme sadece bilet oldu! :)
craig1410

7

Veritabanları yükseltilmeden uyumsuz olduğundan 9.3.4'ten 9.5'e yükselttiğimde bu bana oldu.

Ben aşağıdaki gibi pg_upgrade kullandım:

Postgres'i durdur

$ brew services stop postgresql

Veritabanlarını yükseltin:

$ pg_upgrade \
   -d /usr/local/var/postgres \
   -D /usr/local/var/postgres9.5 \
   -b /usr/local/Cellar/postgresql/9.3.4/bin/ \
   -B /usr/local/Cellar/postgresql/9.5.0/bin/ \
   -v

Eski veritabanlarını arşivleyin:

 $ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save
 $ mv /usr/local/var/postgres9.5 /usr/local/var/postgres

Postgres'i yeniden başlat:

 $ brew services start postgresql

Güncellenmiş Taşlar (raylar / aktif kayıt için):

 $ gem uninstall pg
 $ gem uninstall activerecord-postgresql-adapter
 $ bundle install

Bu talimatlar ayrıca collectiveidea.com/blog/archives/2016/01/08/… adresindedir ve bugün 9.4.0'dan 9.6.3'e yükseltme yaparken hala benim için çalıştı. Manuel olarak .pid dosyasına bir şey yapmam gerekmiyordu.
Jan Hettich

7

Aslında yapmanız gereken budur:

bunun yerine /usr/local/var/postgres/postmaster.pid adresine bakmalısınız

ve sonra dosyanın ilk satırına bakın - bu kötü PID

Çalıştırmak

ps aux | grep <PID>

Örneğin:

ps aux | grep 12345

o zaman yap

kill <PID>

Örneğin

kill 12345

Hala çalıştığını varsayarsak

/superuser/553045/fatal-lock-file-postmaster-pid-already-exists

kabul edilen cevabı dinlemeyin, kötüdür ve verilerinizi bozacaktır !!!


Teşekkürler, bu benim için çalıştı. Kabul edilen cevapta postmaster.pid dosyasını kaldırmak aslında yeterli değildi.
Abe Petrillo

4

Psql seçeneği

-h ana bilgisayar adı --host = ana bilgisayar adı

: Sunucunun üzerinde çalıştığı makinenin ana bilgisayar adını belirtir. Değer eğik çizgi ile başlarsa, Unix etki alanı soketinin dizini olarak kullanılır.

$ grep "port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf
port = 5433                                         # (change requires restart)
unix_socket_directory = '/var/run/postgresql'       # (change requires resta

$ netstat -nalp | grep postgres
unix  2      [ ACC ]     STREAM     LISTENING     106753   4349/postgres       /tmp/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     10377 1031/postgres       /var/run/postgresql/.s.PGSQL.5433

Pshost'u -host Seçeneği ile çalıştırın

$ psql -p 5433 -h /var/run/postgresql

Yumuşak bir bağlantı kurmaya gerek yok


4

MacOS Sierra'da da bu sorunla karşılaştık ve yukarıda açıklandığı gibi pg_ctl'yi çalıştırdığımızda aşağıdaki hatayla karşılaştık pg_ctl: no database directory specified and environment variable PGDATA unset. Bu yüzden adımları takip buraya yani bizim sorunu çözüldü:

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start


4

Postgres homebrew kullanılarak yüklenmişse, bunu çalıştırarak düzeltebilirsiniz:

brew link postgres


4

Sisteminizi psql'den çıkmadan kapatırsanız, postgres bazı dosyaları kaldırmazdı.

Usmaster / local / var / postgres konumunda postmaster.pid dosyasını bulamadım

Bu yüzden aşağıdakileri yaptım:

demlemek hizmetleri başlangıç ​​postgresql

Yukarıdaki komut postgres başlatmanıza izin vermelidir


3

Geri yükleme / bırakma / diğer işlemler onlara erişirken bir db oluşturmaya çalıştıktan sonra bu sorunla karşılaştı. MacOSX / Homebrew düzeltmesi:

  1. yakın diğer tüm erişen süreçler rails server, rails console, guard, vb ...
  2. içinde bulunan komutları kullanarak yükleme / boşaltma brew info postgres
  3. önce geri yükle / bırak / oluştur komutunu çalıştır

3

Bu bana bugün oldu, ama o sırada Ubuntu güncellemelerini çalıştırıyordum, muhtemelen Postgres'i güncelliyordu. Güncelleme tamamlandığında, sorunsuz bir şekilde bağlanabildim.

Tamlık uğruna, bir Rails konsolundan veritabanından kayıtları almaya çalışıyordum:

development (main):0 > a = MyModel.find 73694
PG::ConnectionBad: 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"?

3

Psql'niz çalışmıyor gibi görünüyor. Bağlanmadan önce çalıştırmalısınız. Bunu yalnızca Mac OS için Postgres.app kullanarak yapabilirsiniz. (Bu uygulamayı indirin ve yükleyin http://postgresapp.com ) Uygulamayı açın ve hazır ve yeni bağlantılar bekleyen bir PostgreSQL sunucunuz var. Uygulamayı kapattığınızda sunucu kapanır. Bu bilgiyi http://www.postgresql.org/download/macosx/ adresinde de bulabilirsiniz . Umarım bu size yardımcı olacaktır.


1
Bu bağlantı soruyu cevaplayabilse de, cevabın önemli kısımlarını buraya eklemek ve bağlantıyı referans olarak sağlamak daha iyidir. Bağlantı verilen sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir.
Kmeixner

Soru özellikle bir Postgres.app kurulumuna değil, bir homebrew kurulumuna atıfta bulunuyordu. Bu cevap yararlı olsa da, soruyu cevaplamıyor. "Bunun yerine MySQL Kullan" demeye benzer.
Brian Sevgili

3

Önceki bir sunucu hala çalışıyor, her şeyi kapatmayı ve uygulamanızı yeniden çalıştırmayı deneyin.


3

Bu komutu kullanan ve çalışmayan veya dosya orada olmayan ve Ruby on Rails kullanan kullanıcılar için

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

Ya da başka bir komut ve sadece başarısız devam.

Brew ile kaldırma sorununu çözdüm. 2 kez demlemekle kaldırmak zorunda kaldım, çünkü ilk kaldırmada postgresql'in başka bir sürümü kalacak, ikinci kaldırma ile işlem tamamlanacak.

Brew ile postgresql yükleyin

Sonra projenin veri tabanlarını bırakın, oluşturun ve taşıyın

(Postgresql sunucusunu başlatmayı unutmayın)


3

Kodda yanlış bir Postgres kullanıcı adı kullandığım için aynı sorunu yaşadım. Ben postgres giriş yapmış psql -d postgresve girmek\du rol adı almak ve Postgres'in kullanıcı adını düzeltmek için .

Bu nedenle, bu sorunla karşılaştığınızda, doğru Postgres kullanıcı adını, şifresini, ana makine adını ve veritabanını kullandığınızdan emin olmanız gerekir ...

Umarım bu herkese yardımcı olur


3

Recently Son zamanlarda pg_hba.conf dosyasını değiştirdiniz mi? herhangi bir yazım hatası olup olmadığını kontrol ettiyseniz:

"local" yalnızca Unix alan soketi bağlantıları içindir

tüm yerel tüm şifre

IPv4 yerel bağlantıları:

127.0.0.1/32 şifrenin tümünü barındır

IPv6 yerel bağlantıları:

hepsini barındır :: 1/128 şifre

Bazen basit bir hata bize baş ağrısı verebilir. Umarım bu yardım ve benim ingilizce hiç iyi değilse üzgünüm.


3

Bu postgres sunucusu çalışmadığında gerçekleşir. Postgres'i Homebrew üzerinden MAC'a doğru şekilde yüklemek için adımlar:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Bu, verilen dizini veritabanı dizini olarak kullanmak için postgres'i başlatır. Normalde veritabanı dizini için kullanıcı dizininin kullanılması tavsiye edilmez. Sudoers dosyasını initdb ve benzeri komutlar eklemek için düzenleyin ve ardından / usr / local / var / postgres] üzerinde initdb komutunu çalıştırın.

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


2

Aynı hatayı aldım. Görünüşe göre postgres hiç koşmuyordu (genellikle her zaman arka planda çalışıyor, ancak bugün ne olursa olsun).

Bu durumda, postgresproje dizininizin komut satırını yazmanız yeterlidir


2

Muazzam miktarda ileri geri sonra gerçekten kullandığım pgmücevher sürüm aşağı indi . Mavericks'te, pgsürüm 0.15.15432 bağlantı noktasına bağlanmaz, ancak sürüm 0.17.1gayet iyi çalışır - çok tuhaf.

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.