Saya baru-baru ini ditingkatkan ke OSX 10.7, di mana instalasi rel saya sepenuhnya borked ketika mencoba terhubung ke server psql. Ketika saya melakukannya dari baris perintah menggunakan
psql -U postgres
ini berfungsi dengan sangat baik, tetapi ketika saya mencoba menjalankan server rel atau konsol dengan nama pengguna dan kata sandi yang sama, saya mendapatkan kesalahan ini
...activerecord-3.0.9/lib/active_record/connection_adapters/postgresql_adapter.rb:950:in `initialize': could not connect to server: Permission denied (PGError)
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Gagasan apa pun yang mungkin terjadi akan sangat membantu! Terima kasih!
Jawaban:
Ini masalah PATH. Mac OSX Lion menyertakan Postgresql dalam sistem sekarang. Jika Anda melakukan
which psql
Anda mungkin akan melihatusr/bin/psql
bukanusr/local/bin/psql
yang merupakan salah satu yang benar homebrew ini. Jika Anda menjalankanbrew doctor
Anda harus mendapatkan pesan yang menyatakan bahwa Anda perlu menambahkanusr/local/bin
ke kepala variabel env PATH Anda.Mengedit .bash_profile atau .profile Anda, atau shell mana pun yang Anda gunakan dan menambahkan:
export PATH=/usr/local/bin:$PATH
sebagai ekspor pertama untuk
PATH
kemudian keluar dari sesi shell Anda atau sumber file Anda dengansource ~/.bash_profile
dan sekarang harus OK lagi.sumber
Bagi Anda yang tertarik, saya menyatukan solusinya. Yang saya butuhkan hanyalah menambahkan
ke database.yml untuk lingkungan saya dan semuanya adalah saus.
sumber
Saya memiliki masalah dengan Mountain Lion ini tetapi satu-satunya hal yang berhasil bagi saya adalah perbaikan ini :
Periksa di mana target sebenarnya:
Saya perlu membuat direktori ini:
Kemudian gunakan hasil dari find di atas buat symlink ini:
Saya menduga bahwa bagi kebanyakan orang di Mountain Lion Anda bisa membuat direktori dan melakukan symlink dan tidak membuang waktu untuk melakukan pencarian kecuali symlink tidak berfungsi.
PS - PostgreSQL saya dipasang melalui penginstal resmi.
sumber
Jika masalah tetap terjadi setelah mengubah jalur (seperti yang terjadi pada saya), coba juga ini ...
Tampaknya masalahnya (sebagian) terletak pada permata pg itu sendiri. Ketika membangun, ia mencari tahu di mana soket domain seharusnya. Jika Anda mengubah lokasi soket domain setelah fakta itu tampaknya tidak berpengaruh sampai Anda membangun kembali permata.
sumber
Bagi mereka yang menginstal langsung dari installer resmi, hanya menambahkan host ke perintah berfungsi tanpa perubahan jalur:
sumber
Saya memiliki masalah yang sama dan mengalami masalah dalam membuat solusi John Wang berhasil. Seperti yang dicatat Darren, ada masalah dengan permata pg. Untuk membuatnya bekerja, saya perlu:
Kemudian pasang kembali.
Yang membuatnya bekerja.
sumber
Saya juga mengalami hal ini, tetapi saya sendiri sudah menginstal postgres (bukan dengan homebrew). Jika itu masalahnya, Anda perlu menemukan path lama ke psql (yang mungkin / usr / local / bin, tapi bagi saya adalah / usr / local / pgsql / bin) dan tambahkan itu ke $ PATH Anda.
(sebelum)
which psql
=> / usr / bin / psql(perbaiki) ekspor PATH = / usr / local / psql / bin: $ PATH
(setelah) `yang psql '=> / usr / local / psql / bin
Saran John Wang untuk
source ~/.bash_rc
sesudahnya Anda menambahkan itu ke bash_rc Anda berwarna emas.sumber
Apakah ini untuk homebrew? Port tampaknya memasukkannya ke dalam:
Jadi, pastikan Anda menggunakan ekspor
Masalah port Mac: https://trac.macports.org/ticket/30125
sumber
Saya tidak senang dengan jawaban yang paling banyak dipilih karena mereka adalah OS-user spesifik atau mem-postap Postgres untuk menggunakan TCP alih-alih soket domain, seperti ditunjukkan oleh @pilif. Saya telah melihat solusi lain yang melibatkan pemesanan ulang jalur default di tingkat sistem untuk memeriksa jalur Brew sebelum jalur sistem inti, tetapi ini tampaknya berbahaya karena dapat mempengaruhi semua nama-tabrakan aplikasi lain seperti ini.
Situs ini merinci solusi yang ditemukan oleh rekan kerja saya. Itu datang untuk mengeksekusi skrip shell tunggal yang akan
Ini datang dengan peringatan bahwa sistem default Postgres adalah apa pun minuman yang telah diinstal, jadi Anda harus membuat panggilan penilaian tentang apakah itu tepat untuk Anda. Saya tidak melihat diri saya membutuhkan Postgres 8.4 khusus lebih dari 9.x, tetapi YMMV
sumber
Solusi lain yang mungkin berhasil bagi saya adalah mengatur ulang file postmaster dengan menghapusnya. Cukup jalankan:
Ada baiknya memeriksa log untuk kesalahan yang dapat Anda temukan di sini:
Pesan kesalahan yang saya alami adalah:
Semuanya bekerja dengan baik sesudahnya.
sumber
Dalam kasus saya server tidak memulai karena pengaturan memori bersama yang salah. Pada awalnya saya bingung karena ada beberapa proses postgres yang berjalan, tetapi itu adalah proses sistem standar. Cari
postmaster
proses!Yang perlu saya lakukan adalah mengubah pengaturan memori bersama . Mengotak-atik pengaturan jalur tidak diperlukan dalam kasus saya.
sumber
Anda mungkin perlu menentukan host database Anda.
sumber
Jika Anda menyukai perubahan permanen pada $ PATH Anda, coba ini:
ini akan menulis ulang
~/.MacOSX/environment.plist
.sumber
Saya baru mengenal Rails, tetapi menambahkan yang berikut ke database.yml bekerja untuk saya:
Tidak yakin mengapa Rails default ke soket domain, bukan TCP, sedangkan PostgreSQL tidak mengatur soket domain secara default.
sumber
PostgreSQL saya diinstal di / Library / PostgreSQL sehingga / usr / var tidak berfungsi untuk saya.
Tampaknya Woz benar karena setiap kali saya menutup tutup macbook pro saya macet ... Inilah yang berfungsi pascab crash bagi saya:
sumber