Psql tidak dapat terhubung ke server: Tidak ada file atau direktori seperti itu, kesalahan 5432?

114

Saya mencoba menjalankan psqlmesin Vagrant saya, tetapi saya mendapatkan kesalahan ini:

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"?

Catatan: Vagrant 1.9.2 Kotak: ubuntu / trusty64, https://atlas.hashicorp.com/ubuntu/boxes/trusty64

EDIT Perintah yang saya gunakan untuk menginstal dan menjalankan postgres:

  • sudo apt-get update
  • sudo apt-get install postgresql
  • sudo su postgres
  • psql -d postgres -U postgres
Saša Kalaba
sumber
1
Ini adalah jawaban yang berhasil bagi saya: askubuntu.com/a/824325/733901
Bruno Louvem Azeredo

Jawaban:

156

Saya mengalami masalah yang sama, terkait dengan konfigurasi file pg_hba.conf saya (terletak di /etc/postgresql/9.6/main). Harap dicatat bahwa 9.6 adalah versi postgresql yang saya gunakan.

Kesalahan itu sendiri terkait dengan kesalahan konfigurasi postgresql, yang menyebabkan server macet sebelum dimulai.

Saya akan menyarankan mengikuti instruksi ini:

  1. Pastikan bahwa layanan postgresql sedang berjalan, menggunakan sudo service postgresql start
  2. Jalankan pg_lsclustersdari terminal Anda
  3. Periksa cluster apa yang Anda jalankan, hasilnya harus seperti ini:

    Versi - Direktori Data Pemilik Status Pelabuhan Cluster

    9.6 ------- utama - 5432 postgres online /var/lib/postgresql/9.6/main

    Abaikan tanda '---', karena mereka hanya digunakan di sana untuk penyelarasan. Informasi penting adalah versi dan cluster. Anda juga dapat memeriksa apakah server sedang berjalan atau tidak di kolom status.

  4. Salin info dari versi dan cluster, dan gunakan seperti itu:, pg_ctlcluster <version> <cluster> startjadi dalam kasus saya, menggunakan versi 9.6 dan cluster 'main', itu akan menjadipg_ctlcluster 9.6 main start
  5. Jika ada yang salah, maka postgresql akan menghasilkan log, yang dapat diakses /var/log/postgresql/postgresql-<version>-main.log, jadi dalam kasus saya, perintah lengkapnya adalah sudo nano /var/log/postgresql/postgresql-9.6-main.log.
  6. Outputnya harus menunjukkan apa kesalahannya.

    2017-07-13 16:53:04 BRT [32176-1] LOG: metode otentikasi tidak valid "all"
    2017-07-13 16:53:04 BRT [32176-2] KONTEKS: baris 90 file konfigurasi "/ dll /postgresql/9.5/main/pg_hba.conf "
    2017-07-13 16:53:04 BRT [32176-3] FATAL: tidak dapat memuat pg_hba.conf

  7. Perbaiki kesalahan dan mulai ulang layanan postgresql melalui sudo service postgresql restartdan itu akan baik-baik saja.

Saya telah mencari banyak untuk menemukan ini, kredit diberikan ke posting ini .

Semoga berhasil!

malvadao
sumber
1
Panduan luar biasa. Penuh dengan penjelasan lengkap!
Salathiel Genèse
37

Saya memiliki masalah yang sama tetapi tidak ada jawaban di sini yang membantu.

Bagaimana saya memperbaikinya (mac)

  • Cobalah untuk memulai postgresql dengan pg_ctl -D /usr/local/var/postgres start
  • Cari Pesan Kesalahan yang mengatakan sesuatu seperti FATAL: could not open directory "pg_tblspc": No such file or directory.
  • Buat direktori yang hilang itu mkdir /usr/local/var/postgres/pg_tblspc
  • Ulangi dari langkah pertama hingga Anda membuat semua direktori yang hilang
  • Ketika selesai dan kemudian mencoba untuk memulai postgresql lagi mungkin akan tertulisFATAL: lock file "postmaster.pid" already exists
  • Hapus postmaster.pid :rm /usr/local/var/postgres/postmaster.pid
  • Mulai postgres dengan: pg_ctl -D /usr/local/var/postgres start
  • Selesai ✨
martinlasek.dll
sumber
13

Saya hanya memposting ini untuk siapa saja yang merasa tersesat dan putus asa seperti yang saya lakukan ketika saya menemukan pertanyaan ini. Tampaknya terkadang dengan mengedit beberapa file konfigurasi yang berhubungan dengan psotgresql, seseorang dapat secara tidak sengaja mengubah izin file:

masukkan deskripsi gambar di sini

Perhatikan bagaimana pg_hba.conf dimiliki oleh root, dan pengguna bahkan tidak dapat membacanya. Hal ini menyebabkan postgres tidak dapat membuka file ini dan oleh karena itu tidak dapat memulai server, menimbulkan kesalahan yang terlihat pada pertanyaan awal.

Dengan berlari

sudo chmod +r pg_hba.conf

Saya dapat membuat file ini sekali lagi dapat diakses oleh pengguna postgres dan kemudian setelah berjalan

sudo service postgresql start

Mampu menjalankan server kembali.

wfgeo.dll
sumber
Ya, ini adalah masalah saya, dan ini tidak ditunjukkan dalam log (atau jika saya tidak memahaminya).
EAmez
Tidak persis apa yang terjadi pada saya, tetapi karena alasan tertentu LAYANAN JARINGAN kehilangan hak istimewa menulis ke seluruh struktur direktori. Jawaban ini mengarahkan saya ke arah yang benar, karenanya suara positifnya.
Brad Mathews
5

Apakah /etc/postgresql/9.6/main/postgresql.confmenunjukkan bahwa port sedang ditetapkan? Pada instalasi Xubuntu Linux default saya, saya menunjukkan port = 5433 untuk beberapa alasan terbaik yang saya ingat, tetapi saya mengomentari baris di file yang sama yang mengatakan listen_addresses = 'localhost'dan menghapus komentar pada baris tersebut listen_addresses = '*'. Jadi mungkin mulai dan periksa di sana. Semoga membantu.

J2112O
sumber
4

Gunakan perintah:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8
Gaurav Verma
sumber
9
Bukankah ini menghapus seluruh database? Saya pikir kata peringatan akan tepat.
d33tah
1
Terima kasih @Tucker Watts dan @Gaurav Verma. Saya memecahkan masalah saya dengan mencoba kedua solusi dan menambahkan perintah ini pg_ctl -D /usr/local/var/postgres -l logfile start.
Niyongabo
4

Ini bekerja untuk saya:

pg_ctl -D /usr/local/var/postgresql@9.6 stop;
brew services stop postgresql@9.6;
brew services start postgresql@9.6;
MevlütÖzdemir
sumber
4

Dua langkah ini menyelesaikannya untuk saya di Mac:

rm /usr/local/var/postgres/postmaster.pid
brew services restart postgresql

EDIT:

Jika Anda menghadapi masalah ini (dilaporkan oleh @ luckyguy73): psql: FATAL: database "postgresql" does not exist

Kamu bisa lari

brew postgresql-upgrade-database

untuk memperbaikinya.

nicodp.dll
sumber
terima kasih kawan, saya beralih dari tidak dapat terhubung ke fatal dengan mengikuti instruksi Anda: "psql: FATAL: database" postgresql "tidak ada"
luckyguy73
Huh aneh, ini selalu berhasil untukku. Apakah Anda berhasil menyelesaikannya?
nicodp
jangan khawatir, ternyata ok. saya baru saja menjalankan 'brew postgresql-upgrade-database' dan itu berhasil, terima kasih
luckyguy73
1
Senang Anda memperbaikinya! Jika Anda tidak keberatan, saya akan menambahkannya ke jawabannya juga, jika orang lain menghadapi masalah yang sama. Terima kasih
nicodp
3

Dalam zsh:

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

Ini adalah satu-satunya hal yang berhasil bagi saya setelah pemecahan masalah selama berjam-jam.

Tucker Watts
sumber
Saya baru saja menghapus semua database lokal saya ... terima kasih
AlxVallejo
2

Buka pengelola database Anda dan jalankan skrip ini

update pg_database set datallowconn = 'true' where datname = 'your_database_name';
Nasser Abdou
sumber
2

Hal yang sama terjadi pada saya karena saya telah mengubah sesuatu di /etc/hostsfile. Setelah mengubahnya kembali, 127.0.0.1 localhostitu berhasil bagi saya.

coderanger
sumber
2

cukup instal ulang pgsql Anda dengan versi langsung sudo apt-get install postgresql-9.5 (Anda harus menghapus paket sebelum menginstal yang baru)

Vitaly Kholodov
sumber
2

Saya dapat menyelesaikan masalah dengan menjalankan:

sudo systemctl start postgresql@9.5-main
Eugene Lem
sumber
sudo systemctl start postgresql@12-mainbekerja untuk saya
parsecer
2

Dalam kasus saya, lockfile postmaster.idyang tidak dihapus dengan benar selama sistem crash terakhir yang menyebabkan masalah. Menghapusnya dengan sudo rm /usr/local/var/postgres/postmaster.piddan memulai ulang Postgres memecahkan masalah.

xji
sumber
1

Saya mengalami kesalahan yang sama saat membuat SQL db di VM. Saya telah mengubah nilai default /etc/postgresql/9.3/main/postgresql.conf shared_buffers = 200MBmenjadi 75% dari total RAM saya. Nah, saya lupa untuk mengalokasikan RAM itu di VM. Ketika saya memberi perintah untuk membuat database baru, saya menerima kesalahan yang sama.

Dimatikan, beri bayi botolnya (RAM) dan presto, itu berhasil.

ABAD
sumber
1

Saya mendapat kesalahan ini ketika saya memulihkan database saya dari file cadangan pg_basebackup terakhir. Setelah itu ketika saya mencoba menghubungkan database (psql), saya mendapatkan kesalahan yang sama. Kesalahan teratasi, ketika saya memperbarui file pg_hba.conf dan di mana pun otentikasi "rekan" ada di sana, saya menggantinya dengan "md5" dan kemudian memulai ulang layanan postgres. Setelah itu, masalah teratasi.

Shiwangini
sumber
1

Saya memiliki masalah yang sama beberapa waktu yang lalu. Setelah mencoba lebih dari 5 saran, saya memutuskan untuk kembali ke dasar dan mulai dari awal. Yang berarti menghapus instalasi postgresql saya dan mengikuti panduan ini setelah menginstal ulang postgresql. https://help.ubuntu.com/lts/serverguide/postgresql.html

sylvery
sumber
1

Kesalahan ini terjadi pada saya setelah mac mini saya dicabut (jadi mati paksa), dan yang harus saya lakukan untuk memperbaikinya adalah memulai ulang

muceyMuce
sumber
1

Saya sarankan Anda harus mengklarifikasi port yang postgres. Dalam kasus saya, saya tidak tahu port postgres mana yang sedang berjalan.

lsof -i | grep 'post'

maka Anda dapat mengetahui port mana yang sedang mendengarkan.

psql -U postgres -p "port_in_use"

dengan opsi port, mungkin jawabannya. Anda bisa menggunakan psql.

horoyoi o
sumber
1

Saya terkadang memiliki masalah yang sama tetapi sebagian besar setelah peningkatan macOS. Mematikan dan bermigrasi ke versi baru biasanya memperbaikinya untuk saya (buat perubahan sesuai versi Anda). Jadi pertama-tama tingkatkan postgresql Anda

brew services stop postgresql@12
brew services start postgresql@12
brew postgresql-upgrade-database

Ini sebagian besar merupakan perbaikan sementara tetapi karena saya tidak dapat menemukan solusi yang lebih baik, ini berfungsi untuk saya.

Nishith
sumber
brew postgresql-upgrade-database adalah apa yang akhirnya berhasil untuk saya setelah saya mencoba yang lain
luckyguy73
1

Jika bukan dari jawaban di atas tidak berhasil untuk Anda, maka silakan coba yang ini,

Banyak orang telah menyebutkan banyak solusi untuk masalah ini! Tetapi semuanya lupa bahwa, masalah yang sama akan muncul ketika disk Anda tidak memiliki cukup ruang atau ruang yang Anda tetapkan postgrespenuh.

Periksa penyimpanan sistem Anda, jika penuh, kosongkan beberapa ruang! kemudian restart postgres dengan sudo service postgresql restartatau melakukan berhenti dan mulai sudo service posgresql stopkemudiansudo service postgresql start

Ini akan menyelesaikan masalah, itu menyelesaikannya untuk saya

Sushin Pv
sumber
0

Saya memiliki masalah yang sama dengan postgres 11 di mac saya. Saya mendapatkan kesalahan ini setiap kali setelah restart

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"?

Sebagai perbaikan sementara yang saya lakukan

brew services stop postgresql@11
brew services start postgresql@11
iAbhinav
sumber