GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya mengakses Postgres ketika saya mendapatkan kesalahan tentang /var/run/postgresql/.s.PGSQL.5432?

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.


Linux
  1. Perbedaan Antara /var/log/messages, /var/log/syslog, Dan /var/log/kern.log?

  2. Ubuntu 14.04 "tidak Mendapatkan Uri Pemutaran Saat Masuk File:///*"?

  3. Bagaimana systemd-tmpfiles membersihkan /tmp/ atau /var/tmp (pengganti tmpwatch) di CentOS / RHEL 7

  1. CentOS / RHEL :Cara memutar file /var/log/wtmp dan /var/log/btmp menggunakan logrotate

  2. Instal binari ke /bin, /sbin, /usr/bin dan /usr/sbin, interaksi dengan --prefix dan DESTDIR

  3. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Bash =~ Regex Dan Https://regex101.com/?

  3. Haruskah situs web berada di /var/ atau /usr/ sesuai dengan penggunaan yang disarankan?