Kesalahan menyatakan bahwa utilitas psql tidak dapat menemukan soket untuk terhubung ke server database Anda. Entah Anda tidak menjalankan layanan database di latar belakang, atau soket terletak di tempat lain, atau mungkin pg_hba.conf
perlu diperbaiki.
Langkah 1:Pastikan database berjalan
Perintah dapat bervariasi tergantung pada sistem operasi Anda. Tetapi pada sebagian besar sistem *ix, berikut ini akan berfungsi, ia akan mencari postgres di antara semua proses yang berjalan
ps -ef | grep postgres
Di sistem saya, mac osx, ini memuntahkan
501 408 1 0 2Jul15 ?? 0:21.63 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
Kolom terakhir menunjukkan perintah yang digunakan untuk memulai server, dan opsinya.
Anda dapat melihat semua opsi yang tersedia untuk memulai server postgres menggunakan yang berikut ini.
man postgres
Dari sana, Anda akan melihat bahwa opsi -D
dan -r
masing-masing adalah datadir
&logfilename
.
Langkah 2:Jika layanan postgres berjalan
Gunakan find
untuk mencari lokasi soket, yang seharusnya berada di suatu tempat di /tmp
sudo find /tmp/ -name .s.PGSQL.5432
Jika postgres sedang berjalan dan menerima koneksi soket, hal di atas akan memberi tahu Anda lokasi soket. Di mesin saya, ternyata:
/tmp/.s.PGSQL.5432
Kemudian, coba sambungkan melalui psql menggunakan lokasi file ini secara eksplisit, mis.
psql -h /tmp/ dbname
Langkah 3:Jika layanan berjalan tetapi Anda tidak melihat soket
Jika Anda tidak dapat menemukan soket, tetapi melihat bahwa layanan sedang berjalan, Verifikasi bahwa file pg_hba.conf mengizinkan soket lokal.
Jelajahi datadir
dan Anda akan menemukan pg_hba.conf
berkas.
Secara default, di dekat bagian bawah file Anda akan melihat baris berikut:
# "local" is for Unix domain socket connections only
local all all trust
Jika Anda tidak melihatnya, Anda dapat memodifikasi file, dan memulai ulang layanan postgres.