Tidak dapat terhubung ke PostgreSQL lokal

124

Saya telah berhasil merusak lingkungan pengembangan lokal saya.

Semua aplikasi Rails lokal saya sekarang memberikan kesalahan:

PGError
could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

Saya tidak tahu apa yang menyebabkan ini.

Saat mencari solusi, saya telah memperbarui semua permata yang dibundel, permata sistem yang diperbarui, MacPorts yang diperbarui. Tidak ada kegembiraan.

Orang lain telah melaporkan masalah ini saat memutakhirkan dari OSX Leopard ke Lion, karena kebingungan tentang versi Postgres mana yang harus digunakan (yaitu, versi OSX atau versi MacPorts). Saya telah menjalankan Lion selama beberapa bulan, jadi tampaknya aneh jika hal ini terjadi sekarang.

Saya enggan main-main terlalu banyak tanpa terlebih dahulu memahami apa masalahnya. Bagaimana cara men-debug ini secara metodis?

Bagaimana cara menentukan berapa banyak versi PostgreSQL yang ada di sistem saya, mana yang sedang diakses, dan di mana lokasinya? Bagaimana cara memperbaikinya jika PostgreSQL yang salah digunakan?

Maaf untuk pertanyaan noob. Saya masih mempelajari cara kerjanya! Terima kasih atas petunjuknya.

EDIT

Beberapa pembaruan berdasarkan saran dan komentar di bawah ini.

Saya mencoba menjalankan pg_lsclustersyang mengembalikan command not foundkesalahan.

Saya kemudian mencoba lokal file pg_hba.conf saya dan menemukan tiga file contoh ini:

/opt/local/share/postgresql84/pg_hba.conf.sample
/opt/local/var/macports/software/postgresql84/8.4.7_0/opt/local/share/postgresql84/pg_hba.conf.sample
/usr/share/postgresql/pg_hba.conf.sample

Jadi saya berasumsi 3 versi PSQL diinstal? Macports, OSX default dan ???.

Saya kemudian melakukan pencarian untuk skrip startup launchctl ps -ef | grep postgresyang kembali

0    56     1   0 11:41AM ??         0:00.02 /opt/local/bin/daemondo --label=postgresql84-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper restart ; --pid=none
  500   372     1   0 11:42AM ??         0:00.17 /opt/local/lib/postgresql84/bin/postgres -D /opt/local/var/db/postgresql84/defaultdb
  500   766   372   0 11:43AM ??         0:00.37 postgres: writer process                                                                                                                                                                                                                                                                                                                   
  500   767   372   0 11:43AM ??         0:00.24 postgres: wal writer process                                                                                                                                                                                                                                                                                                               
  500   768   372   0 11:43AM ??         0:00.16 postgres: autovacuum launcher process                                                                                                                                                                                                                                                                                                      
  500   769   372   0 11:43AM ??         0:00.08 postgres: stats collector process                                                                                                                                                                                                                                                                                                          
  501  4497  1016   0 12:36PM ttys000    0:00.00 grep postgres

Saya telah memposting konten postgresql84-server.wrapper di http://pastebin.com/Gj5TpP62 .

Saya mencoba menjalankan port load postgresql184-servertetapi menerima kesalahan Error: Port postgresql184-server not found.

Saya masih sangat bingung bagaimana cara memperbaikinya, dan menghargai petunjuk "untuk dummies".

Terima kasih!

EDIT2

Masalah ini dimulai setelah saya mengalami masalah dengan daemondo. Aplikasi Rails lokal saya mogok dengan kesalahan aplikasi di sepanjang baris "permata daemondo tidak dapat ditemukan". Saya kemudian melalui serangkaian pembaruan bundel, pembaruan permata, pembaruan port dan pembaruan minuman untuk mencoba dan menemukan masalahnya.

Mungkinkah kesalahan ini menjadi masalah dengan daemondo?

Andy Harvey
sumber
Perhatikan bahwa ketika aplikasi Anda terhubung, itu menghubungkan melalui port tcp bukan dari soket domain unix. Jadi, Anda perlu mengkonfigurasi postgres untuk menerima koneksi jaringan, setidaknya dari localhost.
Paul Tomblin
Kenapa kamu percaya begitu? Jelas driver mencoba untuk terhubung melalui soket Unix. Padahal mereka mencari soket di tempat yang salah.
Milen A. Radev
kemungkinan duplikat dari Cara mengatasi kesalahan PostgreSQL ini di OS 10.6 (Snow Leopard)
a_horse_with_no_name
Persis. Tampaknya menjadi masalah mac. OP dapat menggunakan flag -h, setelah memverifikasi bahwa postmaster sedang berjalan.
wildplasser
Harap posting keluaran dari pg_lsclusters dan pg_hba.conffile Anda .
tscho

Jawaban:

66

Ini benar-benar terlihat seperti kesalahan izin file. Soket domain Unix adalah file dan memiliki izin pengguna seperti yang lainnya. Sepertinya pengguna OSX yang mencoba mengakses database tidak memiliki izin file untuk mengakses file soket. Untuk mengonfirmasi ini, saya telah melakukan beberapa tes pada Ubuntu dan psql untuk mencoba menghasilkan kesalahan yang sama (termasuk di bawah).

Anda perlu memeriksa izin pada file soket dan direktorinya /vardan /var/pgsql_socket. Aplikasi Rails Anda (pengguna OSX) harus memiliki izin eksekusi (x) pada direktori ini (sebaiknya berikan izin kepada semua orang) dan soket harus memiliki izin penuh (wrx). Anda dapat menggunakan ls -lAd <file>untuk memeriksa ini, dan jika salah satu dari mereka adalah symlink, Anda perlu memeriksa file atau dir yang dituju oleh link.

Anda dapat mengubah izin pada dir untuk Anda sendiri, tetapi soket dikonfigurasi oleh postgres di postgresql.conf. Ini dapat ditemukan di direktori yang sama dengan pg_hba.conf(Anda harus mencari tahu yang mana). Setelah Anda mengatur izin, Anda perlu memulai ulang postgresql.

# postgresql.conf should contain...
unix_socket_directory = '/var/run/postgresql'       # dont worry if yours is different
#unix_socket_group = ''                             # default is fine here
#unix_socket_permissions = 0777                     # check this one and uncomment if necessary.

EDIT:

Saya telah melakukan pencarian cepat di google yang mungkin ingin Anda lihat untuk melihat apakah itu relavent. Ini mungkin mengakibatkan upaya apa pun untuk findfile konfigurasi Anda gagal.

http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html


Pesan kesalahan:

Pengguna tidak ditemukan di pg_hba.conf

psql: FATAL:  no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off

Autentikasi sandi pengguna gagal:

psql: FATAL:  password authentication failed for user "couling"

File soket unix tidak ada:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Soket Unix ada, tetapi server tidak mendengarkannya.

psql: could not connect to server: Connection refused
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Izin file buruk pada file socket unix :

psql: could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Philip Couling
sumber
1
terima kasih atas ide-ide ini @couling. Ini terasa seperti arah yang benar. Tetapi ada sesuatu yang sangat aneh dengan pengaturan saya. Ingatlah bahwa ini telah bekerja dengan sempurna sampai saat ini. Saya telah melihat melalui tiga direktori postgres di sistem saya, semuanya berisi file conf.sample (pg_hba, pg_ident, pg_service, dll) tetapi tidak ada file .conf. Seharusnya tidak demikian, bukan? Juga direktori yang seharusnya berisi .s.PGSQL.5432 kosong. Sebaliknya, saya memiliki file yang terletak di /private/tmp/.s.PGSQL.5432.lock. PSmengembalikan proses postgres sehingga berjalan. Bingung!
Andy Harvey
Saya telah menambahkan tautan ekstra. Sejauh yang saya tahu Anda tidak dapat benar-benar memiliki postgresql tanpa postgresql.conf (bahkan jika sudah diganti namanya). Tugas pertama Anda adalah menemukan ini.
Philip Couling
1
memerlukan beberapa waktu untuk menelusuri direktori saya dan menemukan file yang tepat, tetapi ini memang masalahnya. Terima kasih atas jawaban yang sangat mendetail. Setelah saya menemukan direktori yang benar, saya perlu mengatur direktori socket, direktori data, hba_file dan ident_file di postgresql.conf. Terima kasih!
Andy Harvey
1
Mungkin membantu beberapa orang: Saya menggunakan brew untuk menginstal postgres di bawah akun saya. Dalam kasus saya, ternyata folder / var / pgsql_socket / dimiliki oleh pengguna _postgres dan mengubah kepemilikan ke akun saya (darren) memperbaiki masalah ini. Tidak yakin mengapa brew tidak menyetel kepemilikan folder ini dengan benar sejak awal ...?
Darren Jensen
Terima kasih couling. Saya tidak dapat terhubung dan menyiapkan unix_socket_directory adalah hal yang benar untuk dilakukan.
Ryan Bigg
41

Perasaan saya adalah bahwa ini (sekali lagi) adalah mac / OSX: ujung depan dan ujung belakang mengasumsikan lokasi yang berbeda untuk soket unix-domain (yang berfungsi sebagai titik pertemuan ).

Daftar Periksa:

  • Apakah postgres berjalan: ps aux | grep postgres | grep -v grepharus melakukan triknya
  • Di mana letak soket: find / -name .s.PGSQL.5432 -ls(soket dulu berada di / tmp; Anda dapat mulai mencari di sana)
  • bahkan jika Anda menemukan soket (unix-domain), klien dapat menggunakan lokasi yang berbeda. (ini terjadi jika Anda mencampur distribusi, atau Anda memiliki distribusi yang diinstal di suatu tempat dan memiliki instalasi lain (misalnya dari sumber) di tempat lain), dengan klien dan server menggunakan alamat rendez-vous yang berbeda .

Jika postgres berjalan, dan soket benar-benar ada, Anda dapat menggunakan:

  • psql -h /the/directory/where/the/socket/was/found mydbname

(yang mencoba untuk terhubung ke soket unix-domain)

; Anda sekarang harus mendapatkan prompt psql: coba \ddan kemudian \qkeluar. Anda juga bisa mencoba:

  • psql -h localhost mydbname.

(yang mencoba untuk terhubung ke localhost (127.0.0.1)

Jika upaya ini gagal karena otorisasi yang tidak memadai, Anda dapat mengubah pg_hba.conf (dan SIGHUP atau restart) Dalam kasus ini: periksa juga log.

Pertanyaan serupa: Tidak bisa memulai Postgres

Catatan: Jika Anda dapat membuka prompt psql, perbaikan cepat untuk masalah ini hanya dengan mengubah config/database.yml, tambahkan:

host: localhost

atau Anda dapat mencoba menambahkan:

host: /the/directory/where/the/socket/was/found

Dalam kasus saya, host: /tmp

wildplasser
sumber
1
@wildplasser terima kasih atas jawaban Anda. Ini membuat saya memulai ke arah yang benar, dan jawaban terperinci dari Couling memberikan solusinya.
Andy Harvey
6
Menambahkan host: localhost ke database.yml saya memperbaiki masalah saya. Terima kasih :)
Automatico
1
milikku ada di / private / .... keanehan. Saya sudah menginstalnya, tetapi laptop ini juga mengalami masalah sebelumnya. Aneh. database.yml itu adalah kuncinya!
pjammer
4
Aneh. Menambahkan "localhost" ke database.yml saya juga berhasil, tetapi mengapa demikian? Saya tidak memiliki itu sebelumnya dan semuanya berfungsi dengan baik. Tapi saya tidak berpikir saya menambahkan apa-apa akhir-akhir ini dan tiba-tiba sudah seperti itu. > _ <
indeks
1
trik untuk saya di sini adalah jalur soket - itu di / run bukan / var / run - terima kasih!
qodeninja
26

Coba hapus pg gem ( gem uninstall pg) lalu instal ulang - jika Anda menggunakan bundler, maka bundle install, lain gem install pg. Selain itu, pastikan jalur mengambil versi yang benar: Lion memiliki versi posgresql (versi sebelumnya tidak) dan mungkin berada di jalur sebelum versi yang diinstal secara lokal (misalnya MacPorts, homebrew).

Dalam kasus saya: instalasi homebrew postgresql, update postgresql, rails, dll. Dan kemudian mendapat kesalahan ini. Menghapus dan menginstal ulang permata pg melakukannya untuk saya.

Tom Harrison
sumber
8
bundle exec gem pristine pg <== juga akan melakukan trik
Ben Walding
Saya yakin kesalahan OP dapat disebabkan oleh sejumlah hal, tetapi ini adalah solusi yang berhasil untuk saya.
redhotvengeance
20

Lokasi file socket dimasukkan ke dalam gem pada waktu kompilasi. Jadi Anda perlu membangun kembali permata pg Anda.

gem pristine pg
# or
bundle exec gem pristine pg

Ini harus menyelesaikan masalah khusus itu.

Ben Walding
sumber
Saya mulai mendapatkan masalah yang dijelaskan dalam pertanyaan ini setelah memperbarui Postgres dari 9,1x menjadi 9,3x. Jawaban ini memperbaikinya untuk saya (begitu pula menambahkan 'localhost' ke database.yml saya, tetapi saya lebih menyukai pendekatan ini).
Joshua Flanagan
16

Jika Anda mendapatkan kesalahan serupa:

psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Ini mungkin berhasil (berhasil untuk saya):

initdb /usr/local/var/postgres -E utf8

Direktori yang ditentukan harus berbeda jika Anda tidak menggunakan OSX / Brew.

Catatan: Ini bukan pesan kesalahan persis seperti yang terlihat di atas, tetapi utas ini adalah hasil pertama untuk pesan kesalahan itu.

Neal
sumber
6
Saya selalu mengalami masalah ini sesekali, tetapi ini adalah pertama kalinya saya menyelesaikannya dengan solusi INI. Juga, harus rm -fr /usr/local/var/postgressebelum berlariinitb
Raf
1
Setelah saya melakukan ini (baik Neal dan Raf), saya mendapat "Fatal" database tidak ada kesalahan. Lalu jalankan "rake db: create: all" dan "rake db: migrate" dan akhirnya semuanya bekerja kembali.
Deborah
Saya juga harus melakukan rm -rf /usr/local/var/postgresitu initdb /usr/local/var/postgres -E utf8. Tetapi pastikan postgres tidak berjalan ketika Anda melakukan ini, jika tidak direktori akan segera dibuat ulang.
Josh W Lewis
8

apa yang menyelesaikan kesalahan ini bagi saya adalah menghapus file bernama postmaster.pid di direktori postgres. silakan lihat pertanyaan / jawaban saya menggunakan tautan berikut untuk petunjuk langkah demi langkah. masalah saya tidak terkait dengan izin file:

psql: tidak dapat terhubung ke server: Tidak ada file atau direktori seperti itu (Mac OS X)

orang-orang yang menjawab pertanyaan ini membuang banyak permainan, terima kasih untuk itu! saya memilih semua yang saya bisa

Naga api
sumber
Karena jawaban yang diterima di sini mencatat masalah perizinan file, tampaknya jelas bahwa posting Anda dan yang ini tidak terkait.
Andrew Barber
7

Beginilah cara saya memecahkan pesan kesalahan itu, sebagian berdasarkan jawaban wildplasser.

find / -name .s.PGSQL.5432 -ls 2> /dev/null
  => ... /tmp/.s.PGSQL.5432

Jadi, ada soket saya atau apa pun, tetapi klien mencarinya di:

/var/run/postgresql/.s.PGSQL.5432

Jadi cukup buat tautan simbolis ke /tmp/.s.PGSQL.5432:

sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

Semoga ini bisa membantu siapa pun. Tampaknya agak salah, tapi hei, berhasil!

Frans
sumber
1
Ini berhasil untuk saya: sudo ln -s /tmp/.s.PGSQL.5432 /var/pgsql_socket/.s.PGSQL.5432
ardochhigh
Thanx :) Ini membantu. Tetapi sebelum membuat symlink jangan lupa untuk membuat sudo mkdir /var/run/postgresqlfolder (dalam kasus saya id tidak ada dan tidak dibuat oleh installer untuk pg 9.3.X).
kovpack
2
Oh, solusi ini ternyata menjadi solusi 'satu kali' yang harus saya ulangi setelah setiap reboot. Untuk Rails, saya telah menemukan solusi lain - ubah file konfigurasi database (tambahkan jawaban di bawah).
kovpack
6

Saya mulai mendapatkan ini setelah memutakhirkan ke postgres baru - saya tidak menyadari bahwa saya memiliki file data.

Pertama saya mencoba memulai server postgres:

postgres -D /usr/local/var/postgres

begitulah cara saya melihat kesalahan ini

FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.0, which is not compatible with this version 9.3.5.

Jadi saya menemukan jawaban ini di SO - terkait dengan kesalahan ketidakcocokan: /server/342626/how-do-i-upgrade-postgresl-database-incompatibility-error

Inilah yang memperbaikinya

mv /usr/local/var/postgres /usr/local/var/postgres.old
initdb -D /usr/local/var/postgres
Tandai Swardstrom
sumber
4

Hanya mengonfirmasi bahwa saya memiliki masalah serupa di PSQL dan Django,

Sepertinya karena server psql saya tidak dimatikan dengan benar dan file postmaster.pid masih ada (harus dihapus saat dimatikan dengan benar secara otomatis) di folder postgres saya.

Menghapus ini dan semuanya bagus

pembelian
sumber
2
Inilah yang memecahkan masalah saya. Komputer saya macet dan saya harus melakukan shutdown keras. Ketika saya memulainya kembali, postgres mengatakan psql: could not connect to server: No such file or directory.Menghapus postmaster.piddari /usr/local/var/postgresmembuat semuanya bekerja lagi.
Ryan Epp
1
Ini juga yang terjadi pada saya. Mac saya restart karena kepanikan kernel dan saya harus menghapus postmaster.pid sebelum kembali bekerja.
Ben
4

Saya mendapatkan kesalahan yang sama (ternyata itu adalah kesalahan dengan postmaster.pid. Berikut cara saya mengaktifkan dan menjalankan postgres lagi ( penghargaan kepada Ricardo Burillo untuk perbaikannya ):

$ rm /usr/local/var/postgres/postmaster.pid 
$ pg_resetxlog -f /usr/local/var/postgres
respondcreate
sumber
Ini bekerja untuk saya, meskipun pg_resetxlogkembali `file kunci" postmaster.pid "ada.
Elise
3

Saya mengalami masalah serupa saat mencoba menggunakan postgresql dengan rel. Memperbarui Gemfile saya untuk menggunakan versi baru permata pg memecahkan masalah ini untuk saya. (gem pg versi 0.16.0 bekerja). Dalam penggunaan Gemfile:

gem 'pg', '0.16.0'

kemudian jalankan perintah berikut untuk memperbarui permata

bundle install --without production
bundle update
bundle install
andr3wll
sumber
1
Ini memperbaiki masalah saya juga. Saya menggunakan 0.15.1 dari melalui Rails 4.0 beta, dan sekarang menggunakan Ruby 2.0.0. Setelah saya meningkatkan ke pg 0.16.0, masalahnya sudah diperbaiki.
bratsche
Memecahkan masalah untuk saya pada 4.1.0.beta1
Andreas
3

Saya membaca banyak topik tentang kesalahan ini dan solusi bagi saya adalah dengan memulai ulang postgres dengan:

sudo service postgresql restart

Yang tidak disebutkan di sini.

ToTenMilan
sumber
3
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Saya mencari solusi untuk sementara waktu. Jadi, yang ini memperbaiki masalah untuk saya juga (reinit db):

rm -r /usr/local/var/postgres  
initdb /usr/local/var/postgres -E utf8  
pg_ctl -D /usr/local/var/postgres -l logfile start

Saya menggunakan OS X 10.11.3 dengan minuman.

Alexander Svetly
sumber
2

Ini terjadi pada saya hari ini setelah baterai Macbook saya mati. Saya pikir ini bisa disebabkan oleh pematian yang tidak tepat. Yang harus Anda lakukan dalam kasus seperti saya adalah menghapus postmaster.pid

Arahkan ke folder tersebut

cd /usr/local/var/postgres

Periksa untuk melihat apakah postmaster.pid ada

ls

Hapus postmaster.pid

rm postmaster.pid
Aaron
sumber
2

Dalam kasus saya, tidak ada solusi sebelumnya yang baik. Alih-alih menggunakan soket, Anda dapat menggunakan nomor TCP host+ portdi file konfigurasi Rails. Jadi dalam database.ymlfile cukup tambahkan dua baris seperti di sini:

...
adapter: postgresql
encoding: unicode
pool: 5
host: localhost
port: 5432

Ini memecahkan masalah saya :)

Sebelum saya menggunakan perbaikan ini:

sudo mkdir /var/run/postgresql
sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

Tetapi setelah setiap reboot /tmp/.s.PGSQL.5432dihapus dan saya harus mengulangi perintah ini. Solusi berfungsi, tetapi mengerikan, jadi lebih baik ubah saja file konfigurasi database Rails :)

kovpack
sumber
2

Mendapat kesalahan ini ketika saya sedang menyiapkan Posgtres dengan Django, saya menggunakan Jalur Belakang dan itu datang dengan Postgres diinstal. Saya berasumsi bahwa pengaturan masalahnya. Saya memperbaikinya dengan menghapusnya sepenuhnya lalu menginstal ulang seperti itu.

sudo apt-get remove postgresql
sudo apt-get purge postgresql

Sekarang jalankan:

apt-get --purge remove postgresql\*

untuk menghapus semua PostgreSQL dari sistem Anda. Hanya membersihkan paket postgres tidak cukup karena ini hanya paket meta kosong.

Setelah semua paket PostgreSQL dihapus, jalankan:

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres

Anda sekarang harus dapat:

apt-get install postgresql

sumber
1

MacOSX di sini. Saya mengalami masalah yang sama setelah memutakhirkan pemasangan postresql saya dari pra-9.1 ke 9.1.2 menggunakan homebrew. (Ngomong-ngomong, ingatlah untuk membuang database sebelum upgrade Anda dengan pg_dump, database pre-9.1 tidak kompatibel.) Masalah yang sama, pesan kesalahan yang sama.

Menghapus instalasi permata pg melakukan trik untuk saya. Sebenarnya saya harus menari sedikit untuk menemukan masalahnya. Pertama saya melakukan pencopotan permata global, membersihkan dek dari semua permata lama (ada beberapa). Kemudian saya menghapus pg dari Gemfile saya, membundel ulang, memulihkan referensi pg, dan memantul sekali lagi.

Setelah itu, itu bekerja dengan sangat baik.

wizardwerdna
sumber
1

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 .bash_profile(yang ada di direktori home saya):

ekspor PATH = / Aplikasi / Postgres93.app / Isi / MacOS / bin /: $ PATH
Ini adalah PATH untuk psqldari Postgres93.app. Baris (perintah) berjalan setiap kali konsol dimulai.

3) Luncurkan Postgres93.appdari /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_namedan perintah lain dan melihat bahwa itu berhasil! Postgres93.appdapat 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 cantik

Tentu saja, ini hanya berguna untuk server lokal. Saya akan senang jika petunjuk ini membantu orang lain yang menghadapi masalah ini.

crazzyaka.dll
sumber
0

Saya memiliki masalah ini mengganggu saya, dan setelah penyelidikan lebih lanjut (berjalan rake db:setup), saya melihat bahwa rel mencoba untuk terhubung ke contoh postgres yang digunakan sebelumnya - yang disimpan dalam variabel env sebagai DATABASE_URL.

Cara mengatasinya: unset DATABASE_URL

sumber: https://stackoverflow.com/a/17420624/2577622

adrichman
sumber
0

Saya mencoba sebagian besar solusi untuk masalah ini tetapi tidak dapat berhasil.

Saya menjalankan lsof -P | grep ':5432' | awk '{print $2}'yang menunjukkan PID dari proses yang sedang berjalan. Namun saya tidak bisa membunuhnya dengan kill -9 <pid>.

Ketika saya menjalankan pkill postgresqlprosesnya akhirnya berhenti. Semoga ini membantu.

Colin Walker
sumber
0
gem uninstall pg

Di OS X dengan Homebrew:

gem install pg -- --with-pg-config=/usr/local/bin/pg_config
Jalur
sumber