PostgreSQL tidak berjalan di Mac

55

Kesalahan secara keseluruhan berbunyi:

psql: tidak dapat terhubung ke server: Tidak ada file atau direktori tersebut. Apakah server berjalan secara lokal dan menerima koneksi pada soket domain Unix "/tmp/.s.PGSQL.5432"?

Ini adalah kedua kalinya saya mengatur Postgresql via Homebrew di Mac saya, dan saya tidak tahu apa yang sedang terjadi. Sebelumnya, sudah berfungsi. Pada titik tertentu, saya harus memasukkan perintah yang mengacaukan segalanya. Saya tidak yakin. Sekarang, setiap kali saya memasukkan perintah SQL dari baris perintah, saya menerima pesan di atas. Saya sudah menjalankan perintah untuk memeriksa apakah server berjalan, dan ternyata tidak. Jika saya mencoba memulai server menggunakan

$ postgres -D / usr / local / pgsql / data

Saya menerima kesalahan berikut:

postgres tidak dapat mengakses file konfigurasi server "/usr/local/pgsql/data/postgresql.conf": Tidak ada file atau direktori seperti itu

Saya telah menghapus dan menginstal ulang Postgresql via Homebrew, tetapi masalahnya tetap ada. Saya benar-benar bingung bagaimana cara membuatnya bekerja. Bantuan apa pun akan dihargai.

Michael P.
sumber

Jawaban:

52

Masalahnya juga dapat dikaitkan dengan proses macet yang meninggalkan postmaster.pidfile.

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql
demisx
sumber
4
Di MacOSX, jawaban ini menyelamatkan saya. Punya kesalahan yang sama dengan OP setelah komputer saya reboot. The brew servicesperintah yang tidak membantu karena mereka membuatnya tampak seperti semuanya bekerja. Menghapus postmaster.pidinilah yang akhirnya membuat semuanya berfungsi kembali. Terima kasih!
vinhboy
1
Ini juga terjadi pada saya. Kecelakaan Mac OS X menyebabkan restart, setelah itu Postgres tidak muncul. layanan brew start / stop / restart tidak berfungsi, Anda harus menghapus file pid secara manual.
Matthijs
Cara yang disarankan adalah dengan menjalankan Postgres dalam wadah buruh pelabuhan, tentu saja. Sangat mudah untuk memulai dan semuanya dibersihkan ketika wadah dimatikan. Saya akan mengatakan menjalankan aplikasi pihak ketiga dalam wadah buruh pelabuhan harus secara de facto saat ini.
demisx
43

Jawabannya ada di sini .

Jalankan perintah ini untuk memulai server secara manual:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Michael P.
sumber
14

Saya mendapatkan hal yang sama

Is the server running locally and accepting connections on Unix domain 
socket "/tmp/.s.PGSQL.5432"?

loop Homebrew install / start / stop / restart tidak berhasil ...

Akhirnya brew postgresql-upgrade-databaseberhasil.

Sepertinya saya menggunakan 9,6 bukannya 10.4, dan sesuatu yang baru App Store restart me-restart semua server database saya ...

senbenito
sumber
ini bekerja untuk saya
davideghz
Itu brew postgresql-upgrade-databaseyang saya lewatkan. Terima kasih telah menunjukkannya.
Corin
Bekerja untuk saya, terima kasih!
Erwin Rooijakkers
Saya sudah mencoba semua solusinya. Tapi ini satu-satunya yang berhasil untukku. Akan bagus untuk mengetahui jika ada yang bisa menjelaskan mengapa ini memperbaikinya sepenuhnya.
JohnnyQ
11

Saya baru saja menyelesaikan masalah yang sama. Ini hanya karena aku lupa untuk menjalankannya dengan baik sebelum digunakan.

Untuk menginstal murni postgresql pada Mac OS, prosesnya adalah (menggunakan perintah brew ):

brew install postgresql

maka jika Anda ingin menjalankan secara otomatis postgresqlsaat login:

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

atau Anda hanya ingin menjalankannya kapan saja Anda mau:

postgres -D /usr/local/var/postgres

Jika kasing Anda lebih rumit, mari brew uninstall postgresqldan ulangi langkah-langkah ini.

Semoga ini bisa membantu!

Hoang Le
sumber
1
Pembaruan: untuk postgres yang dipasang di Homebrew, brew services start postgresqlsekarang merupakan cara yang disukai untuk memulai postgres saat login
henry
5
psql: 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"?

Saya terus mendapatkan kesalahan di atas dan tidak ada solusi di atas yang berfungsi untuk saya. Akhirnya solusi berikut memecahkan masalah saya di Mac OS X

Instal postgres menggunakan minuman

brew install postgres

Instal layanan minuman

brew tap homebrew/services

Untuk memulai postgres sebagai layanan latar belakang

brew services start postgresql

Untuk menghentikan postgres secara manual

brew services stop postgresql

Kami juga dapat menggunakan layanan buatan untuk memulai kembali Postgres

brew services restart postgresql
Sudharshan
sumber
2

Ini terjadi ketika server postgres tidak berjalan. Langkah-langkah untuk menginstal Postgres dengan benar melalui Homebrew di MAC:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Ini menginisialisasi postgres untuk menggunakan direktori yang diberikan sebagai direktori database. Biasanya tidak disarankan untuk menggunakan direktori pengguna untuk penyimpanan basis data. Edit file sudoers untuk menambahkan initdb dan perintah serupa dan kemudian jalankan initdb di / usr / local / var / postgres]

  3. pg_ctl -D /Users/<username>/db -l logfile start [Setelah mendapatkan kesuksesan dengan langkah 2, akan diminta untuk menjalankan langkah 3. Perintah ini secara manual memulai server.]

Souvik Das
sumber
1

Saya baru saja menghapus komentar di /etc/postgresql/9.5/main/postgresql.conf

unix_socket_permissions = 0777

dan mulai kembali postgres. Dan bagi saya itu berhasil.

Roxana
sumber
1

Baru-baru ini saya mengalami masalah yang sama. hanya ada masalah dan solusi lain. Saya menjalankan 2 versi postgres (9.3 dan 9.6) meskipun server diatur untuk berjalan pada 2 port yang berbeda tetapi beberapa cara perintah psql pada bash mencoba menyambung ke port default 5432. Pastikan untuk memeriksa apakah server Anda berjalan dan periksa pengaturan port Anda, kemudian jalankan psql -p <port> postgres. Solusinya mengubah port.

hujan
sumber
1

Saya mencari waktu yang lama, dan ini adalah solusi yang paling bersih dan rapi:

Saya baru-baru ini meningkatkan Postgres dari 9,2 ke 9,3 menggunakan postgres peningkatan bir. Prosesnya lancar dan pg_upgrade adalah alat yang sangat berguna.

Namun, masalah muncul ketika saya mencoba menjalankan spesifikasi apa saja yang diperlukan untuk terhubung ke Postgres. Meskipun Postgres benar-benar berjalan, tiba-tiba saya mendapatkan:

tidak dapat terhubung ke server: Tidak ada file atau direktori (PG :: ConnectionBad) Apakah server berjalan secara lokal dan menerima koneksi pada soket domain Unix "/var/pgsql_socket/.s.PGSQL.5432"? Masalahnya adalah bahwa versi baru Postgres mendengarkan di /tmp/.s.PGSQL.5432 sebagai gantinya. Saya bisa saja mengacaukan konfigurasi dan membuat Postgres menggunakan soket domain seperti sebelumnya, atau memberi tahu Rails secara eksplisit bagaimana menghubungkan, tetapi kedua pendekatan itu sepertinya pekerjaan yang seharusnya tidak harus saya lakukan. Pada titik mana pun saya memberi tahu Rails untuk terhubung ke postgres di jalur itu, Rails telah menganggapnya, dan sekarang asumsinya salah.

Cara mengatasinya sederhana, jika sedikit mengejutkan. Ketika Anda menginstal permata 'pg', ia mendeteksi versi Postgres mana yang diinstal dan menetapkan jalur soket domain dengan tepat. Solusinya sesederhana menginstal ulang permata. $ gem uninstall pg $ cd my-rails-app/ $ bundle install

http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/

jalebaro
sumber
1
Harap edit jawaban Anda sehingga memberikan nilai jika tautan berhenti berfungsi . Anda dapat menemukan panduan tentang cara melakukan ini dengan benar di Cara referensi materi yang ditulis oleh orang lain . Terima kasih.
Paul White
0

perbarui dengan menggunakan perintah

  brew postgresql-upgrade-database

jika Anda telah mengikuti perintah error 'brew' tidak ditemukan, tetapi dapat diinstal dengan: sudo apt install linuxbrew-wrapper

kemudian instal dengan menggunakan perintah

 sudo apt install linuxbrew-wrapper
Nadeem Qasmi
sumber
0

Bagi saya ini juga terjadi setelah reboot dan tidak ada solusi di atas yang berfungsi untuk saya. Setelah memeriksa log server seperti ini:

tail /usr/local/var/postgres/server.log

Saya perhatikan:

    2019-11-06 11:04:31.797 CET [85029] FATAL:  data directory "/usr/local/var/postgres" has invalid permissions
2019-11-06 11:04:31.797 CET [85029] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).

Jadi saya mengubah izin seperti ini:

sudo chmod 700  /usr/local/var/postgres

dan semuanya bekerja lagi dan hidup itu baik.

Gijsthebookie
sumber
-3

Langkah-langkah di bawah ini membantu saya:

brew uninstall postgresql brew instal postgresql brew postgresql-upgrade-database

BMA88
sumber