Saya baru saja mengupgrade MacMini Server saya dari Lion Server ke Mountain Lion menggunakan OS X Server. Saya mengalami masalah yang sama dengan PostgreSQL yang saya alami tahun lalu ketika saya pertama kali menginstal Lion Server.
Ketika saya mencoba melakukan segala jenis perintah terminal PostgreSQL, saya mendapatkan pesan kesalahan terkenal berikut yang banyak didapat selama bertahun-tahun:
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 mencoba mengubah kata sandi untuk _postgres ketika saya mendapat kesalahan. Saya mencoba beberapa perintah tetapi mendapatkan kesalahan yang sama. Saya baru saja me-reboot server saya tetapi tidak berhasil. Saya masuk sebagai root untuk melihat / var / pgsql_socket dan foldernya kosong. Folder / var / pgsql_socket_alt juga kosong.
Saya telah memeriksa online tentang ini. Namun hampir semua solusi yang telah saya baca, termasuk di Stack Overflow, menyarankan penghapusan dan instal ulang PostgreSQL. Saya tidak tahu tetapi ini sepertinya bukan opsi yang masuk akal karena beberapa opsi di Aplikasi Server menggunakan PostgreSQL. Saya menghubungi Dukungan Perusahaan Apple (tanpa kesepakatan) dan saya diberi tahu bahwa masalah saya harus diselesaikan oleh pengembang yang akan mengeluarkan $ 695.
Saya memiliki situs web yang sedang tidak aktif karena saya tidak dapat membangunnya kembali. Saya tidak tahu ke mana harus meminta bantuan untuk ini pada saat ini. Saya akan terus mencari online untuk melihat apakah saya dapat menemukan sesuatu. Namun saya berharap seseorang dapat memberi saya jawaban dengan cepat sehingga saya dapat membangun kembali database saya.
Pembaruan: 13/12/2012 15:33 GMT-6
Ini adalah keluaran saya untuk ps auwwx | grep postg:
_postgres 28123 0.0 0.1 2479696 7724 ?? Ss 3:01PM 0:00.04 /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL For Server Services/Data -c listen_addresses= -c log_connections=on -c log_directory=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL_Server_Services.log -c log_line_prefix=%t -c log_lock_waits=on -c log_statement=ddl -c logging_collector=on -c unix_socket_directory=/Library/Server/PostgreSQL For Server Services/Socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
server1 28216 0.0 0.0 2432768 620 s000 R+ 3:02PM 0:00.00 grep postg
_postgres 28138 0.0 0.0 2439388 752 ?? Ss 3:01PM 0:00.01 postgres: stats collector process
_postgres 28137 0.0 0.0 2479828 1968 ?? Ss 3:01PM 0:00.00 postgres: autovacuum launcher process
_postgres 28136 0.0 0.0 2479696 544 ?? Ss 3:01PM 0:00.00 postgres: wal writer process
_postgres 28135 0.0 0.0 2479696 732 ?? Ss 3:01PM 0:00.01 postgres: writer process
_postgres 28134 0.0 0.0 2479696 592 ?? Ss 3:01PM 0:00.00 postgres: checkpointer process
_postgres 28131 0.0 0.0 2439388 368 ?? Ss 3:01PM 0:00.00 postgres: logger process
Pembaruan: 13/12/2012 18:10 GMT-6
Setelah pencarian web yang intens, video ini ditemukan. Saya bisa membuat PostgreSQL berfungsi dan menghapus kesalahan. Saya dapat terhubung menggunakan pgadmin dan phppgadmin. Saya akan kembali ke Lion Server karena frustrasi. Sekarang saya tidak perlu melakukannya.
sumber
psql
ada di AndaPATH
sebelum versi yang Anda instal. Mereka mencari soket unix di tempat yang berbeda. Gunakan tcp / ip dengan menentukan-h localhost
atau lebih baik perbaiki AndaPATH
sehingga yang benarpsql
ditemukan terlebih dahulu. Keputusan aneh Apple untuk tidak hanya memaketkan PostgreSQL, tetapi mengacaukannya sehingga menempatkan barang-barang di tempat yang tidak standar adalah akar penyebab masalah ini.homebrew
danosx
@CraigRinger mungkin memiliki jawaban yang tepat untuk Anda, konfirmasikan denganbrew doctor
.Jawaban:
Saya dapat menambahkan yang berikut ini ke .bash_profile saya untuk mencegah kesalahan:
Ini berfungsi karena :
OS Anda mendukung soket domain Unix, tetapi soket Unix PostgreSQL yang
psql
dibutuhkan tidak ada atau berada di lokasi yang berbeda dari yang diharapkan.Menentukan nama host secara eksplisit sebagai
localhost
kekuatanpsql
untuk menggunakan TCP / IP. Menetapkan variabel lingkunganPGHOST
adalah salah satu cara untuk mencapainya. Ini didokumentasikan dalam manual psql .sumber
host: localhost
di database.yml. @whendatabase.yml
, ketika kesalahan ini muncul setelah menurunkan Postgres ke versi lama yang dikelola Homebrew.Coba tempel di konsol ini:
sumber
Saya dapat menyelesaikannya hanya dengan mengisi 127.0.0.1 untuk alamat host PostgreSQL daripada membiarkannya kosong. (Contoh Django)
sumber
Buka 'postgresql.conf' di editor favorit Anda. Cari variabel 'unix_socket_directories', kemungkinan besar akan terlihat seperti ini:
Ubah baris menjadi ini:
Perhatikan jika Anda ingin file soket di lebih dari satu direktori, pisahkan koma.
sumber
Solusi yang jauh lebih sederhana (terima kasih kepada http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/ ). Saya telah meningkatkan ke postgres 9.4. Dalam kasus saya, semua yang perlu saya lakukan (setelah seharian googling dan tidak berhasil)
Mulai ulang webrick, dan selesai!
sumber
Seperti yang disebutkan oleh orang lain di komentar, solusi yang sangat sederhana untuk masalah ini adalah dengan mendeklarasikan 'host' database dalam konfigurasi database. Menambahkan jawaban ini hanya untuk membuatnya sedikit lebih jelas bagi siapa pun yang membaca ini.
Di aplikasi Ruby on Rails misalnya, edit /config/database.yml:
Catatan: baris terakhir ditambahkan untuk menentukan host. Sebelum memperbarui ke Yosemite, saya tidak pernah perlu menentukan host dengan cara ini.
Semoga ini bisa membantu seseorang.
Bersulang
sumber
.s.PGSQL.5432
file tersebut.Periksa status database:
Jika database tidak berjalan, jalankan db:
sumber
Bisakah Anda memeriksa file postgresql.conf Anda ??
Pada port apa postgres Anda berjalan ??
Saya pikir itu tidak berjalan pada port 5432. Jika tidak, ubah ke 5432
ATAU pada penggunaan terminal
sumber
Saya mengalami masalah ini dengan Django.
Perbaiki dengan menyetel nama host Anda secara eksplisit ke "localhost".
sumber
saya membuat kata dengan melakukan ini:
dan pilih lokal pilihan Anda
(9.5 adalah versi postgresql saya)
dan kemudian kata itu!
sumber
Jika Anda memiliki masalah di atas tetapi Anda telah meningkatkan dari Yosemite, maka diperlukan pendekatan yang berbeda karena solusi peningkatan dapat menghancurkan beberapa file. Detail selengkapnya ada di `pg_tblspc` yang hilang setelah penginstalan versi terbaru OS X (Yosemite atau El Capitan) .
sumber
sumber
Saya terus mendapatkan kesalahan di atas dan tidak ada solusi di atas yang berhasil untuk saya. Akhirnya solusi berikut memecahkan masalah saya di Mac OS X
Instal postgres menggunakan brew
Instal layanan pembuatan bir
Untuk memulai postgres sebagai layanan latar belakang
Untuk menghentikan postgres secara manual
Kami juga dapat menggunakan layanan brew untuk memulai ulang Postgres
sumber
periksa server postgres berjalan dengan kode berikut
jika server postgres tidak aktif, tulis perintah berikut.
sumber
Saya mendapat kesalahan ini setelah komputer saya macet dan reboot sendiri. Solusi untuk saya tidak ditemukan di halaman ini, melainkan pada pertanyaan SO lain yang berperingkat sangat tinggi dengan kesalahan yang sama psql: tidak dapat terhubung ke server: Tidak ada file atau direktori seperti itu (Mac OS X) . Jawabannya: hapus saja file ini
/usr/local/var/postgres/postmaster.pid
, lalubrew services restart postgresql
lakukan triknya. Perhatikan peringatan pada jawaban tertaut tentang membunuh proses postgres sebelum melakukan ini, Anda dapat merusak db Anda secara permanen.sumber
Untuk aplikasi RubyOnRails tambahkan
localhost
Jika Anda menggunakan versi kustom Postgresqlsumber
Izin file dibatasi pada Postgres db yang dimiliki oleh Mac OS. Izin ini disetel ulang setelah reboot, atau restart Postgres: misalnya serveradmin start postgres.
Jadi, setel ulang sementara izin atau kepemilikan:
Pengaturan ulang izin tidak aman, jadi instal versi db yang Anda miliki untuk solusinya.
sumber
Butuh beberapa saat bagi saya, tetapi saya bisa menyelesaikannya setelah membaca saran yang ditawarkan dan pencarian web tambahan dilakukan. Saya menggunakan informasi dalam video YouTube berikut yang dibuat oleh Mactasia:
http://www.youtube.com/watch?v=y1c7WFMMkZ4
Ketika saya melakukan ini, saya melihat file dengan .lock sebagai ekstensi. Namun saya masih mendapatkan kesalahan ketika saya mencoba untuk memulai Server Rails ketika saya kembali mengerjakan aplikasi Rails saya menggunakan PostgreSQL. Kali ini saya mendapat kesalahan izin ditolak. Saat itulah saya ingat bahwa saya tidak hanya harus mengubah listen_addresses di plist tetapi saya juga harus mengubah unit_socket_permissions menjadi 0777. Saya juga masuk sebagai root untuk mengubah izin pada folder var / pgsql_socket tempat saya dapat mengaksesnya di tingkat pengguna. Postgres berfungsi dengan baik sekarang. Saya sedang dalam proses memuat ulang data saya dari cadangan SQL saya.
Apa yang saya tidak mengerti adalah bahwa ketika saya mengaktifkan wiki, PostgreSQL seharusnya berfungsi ketika saya melakukan sudo serveradmin fullstatus postgres tetapi saya masih mendapatkan kesalahan. Baiklah.
sumber
Saya baru saja membuat cluster baru dan itu berhasil untuk saya, saya menggunakan (PostgreSQL) 9.3.20:
sumber
Pertama hapus postgres yang diinstal:
Kemudian instal 'sinaptik':
Kemudian instal Postgres
sumber