Jika layanan Postgres Anda aktif dan berjalan tanpa kesalahan atau tidak ada kesalahan dalam memulai layanan Postgres dan Anda masih mendapatkan kesalahan tersebut, ikuti langkah-langkah ini
Langkah1:Menjalankan pg_lsclusters
akan mencantumkan semua cluster postgres yang berjalan di perangkat Anda
misalnya:
Ver Cluster Port Status Owner Data directory Log file
9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
kemungkinan besar statusnya akan turun dalam kasus Anda. Coba mulai ulang cluster dan layanan Postgres
Langkah 2:Mulai ulang pg_ctlcluster
#format is pg_ctlcluster <version> <cluster> <action>
sudo pg_ctlcluster 9.6 main start
#restart postgresql service
sudo service postgresql restart
Langkah 3:Langkah 2 gagal dan menimbulkan kesalahan
Jika proses ini tidak berhasil maka akan terjadi kesalahan. Kesalahan saya adalah (Anda dapat melihat log kesalahan di /var/log/postgresql/postgresql-9.6-main.log
)
FATAL: could not access private key file "/etc/ssl/private/ssl-cert-snakeoil.key": Permission denied
Try adding `postgres` user to the group `ssl-cert`
Langkah 4:periksa kepemilikan postgres
Pastikan postgres
adalah pemilik /var/lib/postgresql/version_no/main
misalnya:sudo chown postgres -R /var/lib/postgresql/9.6/main/
Langkah 5:Periksa pengguna Postgres milik grup pengguna ssl-cert
Itu terjadi pada saya dan ternyata saya salah menghapus pengguna Postgres dari grup "ssl-cert". Jalankan kode di bawah ini untuk memperbaiki masalah grup pengguna dan memperbaiki izin
#set user to group back with
sudo gpasswd -a postgres ssl-cert
# Fixed ownership and mode
sudo chown root:ssl-cert /etc/ssl/private/ssl-cert-snakeoil.key
sudo chmod 740 /etc/ssl/private/ssl-cert-snakeoil.key
sudo service postgresql restart
Anda mungkin menginstal beberapa versi PostgreSQL. Jika demikian, versi lain mungkin default ke unix_socket_directories = '/tmp/'
tapi libpq
psql
Anda ditautkan ke kemungkinan default ke /var/run/postgresql/
.
Coba
psql -h /tmp
Jika itu berhasil, yang di atas adalah masalahnya. Anda dapat menambahkan export PGHOST=/tmp
ke .bashrc
Anda untuk mengubah default secara lokal untuk pengguna Anda.
Jika itu tidak berfungsi, pastikan PostgreSQL benar-benar berjalan
ps aux |grep postgres
dan jika tidak, mulailah. Bagaimana tergantung pada bagaimana Anda menginstalnya, tetapi itu akan melalui service
atau systemctl
perintah jika Anda menginstal menggunakan paket.
psql:tidak dapat terhubung ke server:Tidak ada file atau direktori tersebut Apakah server berjalan secara lokal dan menerima koneksi pada soket domain Unix"/var/run/postgresql/.s.PGSQL.5432"?
Kesalahan ini umumnya berarti bahwa server tidak berjalan. Berdasarkan dpkg -l
output dan utas komentar, itu karena postgresql-9.5
paket utama entah bagaimana dihapus. Karena uninstal belum dipanggil dengan --purge
opsi untuk dpkg
, data dan file konfigurasi masih ada, jadi apt-get install postgresql-9.5
dapat memperbaiki masalah.