Seperti beberapa orang lain, saya mendapatkan kesalahan ini saat menjalankan rake db: bermigrasi dalam proyek saya atau bahkan mencoba sebagian besar tugas database untuk aplikasi Ruby on Rails 3.2 saya.
PGError (tidak dapat terhubung ke server: Tidak ada file atau direktori seperti itu. Apakah server berjalan secara lokal dan menerima koneksi pada soket domain Unix "/tmp/.s.PGSQL.5432"?
Saya telah menginstal PostgreSQL dengan Homebrew sejak lama dan mengikuti percobaan instalasi MongoDB baru-baru ini menginstal PostgreSQL saya tidak pernah sama. Saya menjalankan OS X v10.6 Snow Leopard.
Apa yang salah dan bagaimana saya lebih memahami bagaimana PostgreSQL dan harus diatur di Mac saya?
Sejauh ini (menurut saya) ini memberi tahu saya bahwa PostgreSQL tidak berjalan (?).
ps -aef|grep postgres (ruby-1.9.2-p320@jct-ana) (develop) ✗
501 17604 11329 0 0:00.00 ttys001 0:00.00 grep postgres
Tetapi apakah ini memberi tahu saya bahwa PostgreSQL sedang berjalan?
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
Bagaimana cara mengatasinya? apa yang tidak saya lihat?
PS: ~/Library/LaunchAgents
mencakup dua file .plist PostgreSQL. Saya tidak yakin apakah itu relevan.
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
Saya mencoba yang berikut ini dan mendapatkan hasil seperti di bawah ini.
$ psql -p 5432 -h localhost
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
Saya telah membaca sejak itu ini terjadi karena OS X menginstal versi PostgreSQL-nya sendiri dan Homebrew menginstal versi yang berbeda di tempat yang berbeda dan perintah PostgreSQL mencari di direktori / tmp /. Anda harus mencari lebih banyak di Stack Overflow, tetapi pada dasarnya Anda menghubungkan PostgreSQL sehingga apa pun yang mencari di jalur tmp itu benar-benar menemukan jalur yang sebenarnya, jika itu masuk akal.
Ini adalah tautan di mana saya menemukan beberapa hal lagi untuk dicoba, khususnya melakukan symlink seperti di atas, Mac OSX Lion Postgres tidak menerima koneksi di /tmp/.s.PGSQL.5432 . Saya masih berharap seseorang akan mengumpulkan penjelasan yang layak tentang konsep di balik menginstal PostgreSQL di OS X dan mengapa semuanya begitu sulit.
Wawasan terbaru untuk membantu pemecahan masalah:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
Lalu lari:
$ echo $PATH
Hal utama yang harus diperhatikan adalah ini:
Pastikan entri jalur untuk salinan PostgreSQL yang ingin Anda jalankan DATANG SEBELUM jalur ke PostgreSQL sistem OS X.
Ini adalah persyaratan inti yang memutuskan PostgreSQL mana yang dijalankan dan yang saya diberitahu mengarah ke sebagian besar masalah ini.
sumber
Jawaban:
Periksa tidak ada postmaster.pid di direktori postgres Anda, mungkin
/usr/local/var/postgres/
hapus ini dan mulai server.
Periksa - https://github.com/mperham/lunchy adalah pembungkus yang bagus untuk launchctl.
sumber
" Postgres.app " adalah perbaikan yang lebih baik jika Anda menggunakan OS X
Berikut cara mengatasinya:
cd /var
sudo rm -r pgsql_socket
sudo ln -s /tmp pgsql_socket
chown _postgres:_postgres pgsql_socket
Informasi lebih lanjut tersedia di " postgresql 9.0.3. On Lion Dev Preview 1 ".
sumber
/tmp
dinikmati _postgres, tapi hei :)Bagi saya, ini berhasil
sumber
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
brew services restart postgresql
No such file or directory
dalam kasus sayaJika Anda menjalankan Homebrew, hapus instalan Postgresql end pg gems: *
$ gem uninstall pg $ brew uninstall postgresql
Unduh dan jalankan skrip berikut untuk memperbaiki izin di / usr / local: * https://gist.github.com/rpavlik/768518
Kemudian instal Postgres lagi dan pg gem: *
$ brew install postgresql $ initdb /usr/local/var/postgres -E utf8
Agar launchd memulai postgresql saat login dijalankan:
$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Atau mulai secara manual.
Instal pg gem
$ gem install pg
Saya harap telah membantu
sumber
brew info postgres
:ARCHFLAGS="-arch x86_64" gem install pg
initdb /usr/local/var/postgres -E utf8
bekerja. Terima kasih banyak.Ini berhasil untuk saya untuk kesalahan yang Anda sebutkan. Lakukan salah satu dari ini:
Mungkin mengubah port default Anda yang ditentukan dalam
postgres.conf
file, jika Anda telah menggunakan sesuatu selain port default5432
saat menginstal.Ubah nomor port
postgresql.conf
dan mulai ulang server DB.Daripada
psql
mengetik perintah lengkap:sumber
Saya mengalami masalah itu ketika saya mengupgrade Postgres ke 9.3.x. Perbaikan cepat bagi saya adalah menurunkan versi ke versi 9.2.x mana pun yang saya miliki sebelumnya (tidak perlu menginstal yang baru).
$ ls /usr/local/Cellar/postgresql/ 9.2.4 9.3.2 $ brew switch postgresql 9.2.4 $ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist $ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist <open a new Terminal tab or window to reload> $ psql
" Homebrew menginstal versi formula tertentu? " Menawarkan penjelasan yang jauh lebih komprehensif bersama dengan cara alternatif untuk memperbaiki masalah.
sumber
Saya memperbaikinya dengan meningkatkan postgres.
brew update brew upgrade
Lalu saya juga harus mengupgrade database agar kompatibel dengan versi mayor yang baru, karena saya mengupgrade dari 10 menjadi 11.
(sumber https://github.com/facebook/react-native/issues/18760#issuecomment-410533581 )
sumber
Jadi untuk banyak masalah di sini, tampaknya orang sudah menjalankan psql dan harus menghapusnya
postmaster.pid
. Namun, saya tidak memiliki masalah itu karena saya bahkan tidak pernah memasang postgres di sistem saya dengan benar.Inilah solusi yang berhasil untuk saya di MAC OSX Yosemite
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
Semoga ini membantu! Mie!
Selain itu, jawaban ini paling membantu saya: https://stackoverflow.com/a/21503349/3173748
sumber
Ketika Anda menjalankan: psql -p 5432 -h localhost itu tidak menggunakan driver loopback tetapi menggunakan soket nyata dan karenanya Anda perlu mengkonfigurasi postgres untuk menerima koneksi soket. Oleh karena itu, meskipun pgadmin dan klien lain dapat bekerja, psql tidak akan bekerja.
Anda perlu mengubah file postgresql.conf dan file pg_hba.conf jadi izinkan koneksi melalui soket nyata. Ini juga akan memungkinkan koneksi dari ip jarak jauh yang mengapa itu dinonaktifkan secara default.
File-file ini ada di direktori data tetapi lokasi sebenarnya dapat berbeda tergantung pada bagaimana postgres diinstal. Dengan postgres berjalan, jalankan perintah:
Kedua file ini adalah direktori -D (mungkin / usr / local / pgsql / data).
Untuk file postgresql.conf, hapus komentar pada list_address dan ubah menjadi:
Untuk pg_hba.conf tambahkan baris:
sumber
Saya mengalami kesalahan ini saat menjalankan Mac 10.15.5 menggunakan homebrew dan tampaknya merupakan solusi yang lebih diperbarui yang berfungsi di mana yang di atas tidak.
Ada sebuah file bernama postmaster.pid yang seharusnya secara otomatis dihapus ketika postresql keluar.
Jika tidak lakukan hal berikut
sumber
Saya tidak begitu tahu Mac atau Homebrew, tapi saya tahu PostgreSQL dengan sangat baik.
Anda ingin mencari tahu di mana log tersebut dari PostgreSQL mencoba untuk memulai dan apa direktori socket untuk PostgreSQL. Secara default saat Anda membangun PG, direktori soket adalah / tmp /. Jika Anda tidak mengubahnya ketika Anda membangun PG dan kemudian Anda memulai PG, Anda akan melihat file soket di / tmp jika Anda melakukannya: ls -al / tmp
File soket dimulai dengan ".", Jadi Anda tidak akan melihatnya dengan '-a' hingga ls.
Jika Anda tidak melihat soket di sana, dan Anda tidak melihat apa pun dari ps awux | grep postgres, maka PG mungkin tidak berjalan, atau mungkin aktif dan itu adalah OSX yang diinstal. Apa yang mungkin terjadi adalah Anda mungkin mendapatkan konflik saat mendengarkan pada port 5432 di localhost- gunakan netstat -anp untuk melihat apa, jika ada, yang mendengarkan pada 5432. Jika Mac OSX PG sudah mendengarkan pada port itu maka itu mungkin jadilah masalahnya.
Semoga membantu. Saya telah mendengar bahwa homebrew dapat membuat segalanya menjadi sedikit jelek dan banyak orang yang telah saya ajak bicara untuk mendorong menggunakan VM sebagai gantinya.
sumber
Penyebab
Lion hadir dengan versi postgres yang sudah diinstal dan menggunakan binari tersebut secara default. Secara umum Anda dapat menyiasati ini dengan menggunakan jalur lengkap ke binari postgres homebrew tetapi mungkin masih ada masalah dengan program lain.
Solusinya
Melalui
http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/
sumber
Salah satu alasan Anda mendapatkan kesalahan ini adalah database postgres lokal Anda mati ketika Anda memulai ulang komputer Anda. Di jendela terminal baru, cukup ketik:
untuk memulai ulang server.
sumber
Halo dunia :)
Cara terbaik tapi aneh bagi saya adalah melakukan hal-hal selanjutnya.
1) Unduh postgres93.app atau versi lain. Tambahkan aplikasi ini ke / Applications / folder.
2) Tambahkan baris (perintah) ke dalam file
Ini adalah PATH untuk.bash_profile
(yang ada di direktori home saya):psql
dariPostgres93.app
. Baris (perintah) berjalan setiap kali konsol dimulai.3) Luncurkan
Postgres93.app
dari/Applications/
folder. Ini memulai server lokal (port adalah "5432" dan host adalah "localhost").4) Setelah semua manipulasi ini saya senang untuk menjalankan
$ createuser -SRDP user_name
dan perintah lain dan melihat bahwa itu berhasil!Postgres93.app
dapat dijalankan setiap kali sistem Anda dimulai.5) Juga jika Anda ingin melihat database Anda secara grafis, Anda harus menginstal
PG Commander.app
. Ini cara yang baik untuk melihat postgres DB Anda sebagai tabel data yang cantikTentu saja, ini hanya berguna untuk server lokal. Saya akan senang jika petunjuk ini membantu orang lain yang menghadapi masalah ini.
sumber
Saya memiliki PostgreSQL 9.3 dan mendapatkan kesalahan yang sama,
Saya memperbaikinya menggunakan:
Ini bekerja untuk saya.
sumber
untuk apa nilainya, saya mengalami kesalahan yang sama ini ketika saya salah ketik (
md4
bukanmd5
) dipg_hba.conf
file saya (/etc/postgresql/9.5/main/pg_hba.conf
)Jika Anda sampai di sini seperti yang saya lakukan, periksa kembali file itu sekali untuk memastikan tidak ada yang konyol di sana.
sumber
pg_hba.conf
filenya?Mulai ulang Postgres segera setelah kesalahan muncul dengan menjalankan
brew services restart postgresql
dan kemudian coba lagisumber
Mungkin ada masalah berbeda dengan menjalankan PostgreSQL secara lokal. Saya akan merekomendasikan untuk membersihkan semua versi postgres yang diinstal dan mulai dari awal. Setelah Anda menginstalnya, sangat mudah untuk membuat ulang database Anda jika Anda memiliki proyek rel Anda dengan yang terbaru
db/schema.rb
Inilah cara saya biasanya menginstal PostgreSQL di Mac . Jika Anda menjalankan database Anda di bawah pengguna root secara lokal, Anda mungkin ingin menghilangkan langkah terakhir yang membuat
todo
penggunasumber
Salah satu alasannya bisa jadi itu
unix_socket_directories di file postgresql.conf tidak terdaftar dengan direktori yang dicari.
Dalam contoh pertanyaan itu mencari direktori / tmp ini harus disediakan di file postgresql.conf
sesuatu seperti ini:
unix_socket_directories = '/var/run/postgresql,/tmp' # comma-separated list of directories
Solusi ini berhasil untuk saya.
sumber
Jika Anda menggunakan MacOS dan menggunakan homebrew, saya menemukan jawaban ini sangat membantu:
https://stackoverflow.com/a/27708774/4062901
Bagi saya, server saya berjalan tetapi karena peningkatan, saya mengalami masalah koneksi (catatan: Saya menggunakan layanan pembuatan bir). Jika Postgres sedang berjalan, coba
cat /usr/local/var/postgres/server.log
dan lihat apa kata log. Kesalahan saya adalah migrasi, bukan masalah koneksi.Juga setelah migrasi manual yang mereka usulkan (yang berfungsi tetapi) saya menemukan tidak ada lagi tabel untuk pengguna saya. Coba perintah ini untuk memperbaikinya:
createdb
(dijawab melalui psql: FATAL: database "<user>" tidak ada )sumber
bagi saya perintah
rm /usr/local/var/postgres/postmaster.pid
tidak berfungsi karena saya menginstal versi postgresql tertentu dengan homebrew.perintah yang benar adalah
rm /usr/local/var/postgres@10/postmaster.pid
.lalu
brew services restart postgresql@10
.sumber
Sangat sederhana. Hanya tambahkan host di file database.yaml Anda.
sumber