Setelah saya membuat pembaruan dan membuat pembaruan, postgres saya mengalami masalah. Saya mencoba mencopot postgres dan menginstal lagi, tetapi tidak berhasil juga.
Ini adalah pesan kesalahan. (Saya juga mendapat pesan kesalahan ini ketika saya mencoba melakukan rake db: bermigrasi)
$ psql
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"?
Bagaimana saya bisa menyelesaikannya?
Versi Mac: Singa Gunung.
versi homebrew: 0.9.3
versi postgres: psql (PostgreSQL) 9.2.1
Dan inilah yang saya lakukan.
12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".
initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$ cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions. This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ psql
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"?
Sekarang, setelah saya menginstal ulang howbrew, ketika saya gunakan $ psql
, itu tidak menampilkan pesan kesalahan.
Tapi saya berjalan rake db:migrate
di aplikasi rel saya, itu menunjukkan:
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"?
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}
Akhirnya saya menemukan solusinya.
$ sudo mkdir /var/pgsql_socket/
$ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
Solusi ini sedikit rumit, tetapi berhasil. Semoga ada yang punya solusi yang lebih baik
Memperbarui
Ini juga berfungsi untuk saya.
rm /usr/local/var/postgres/postmaster.pid
sumber
brew postgresql-upgrade-database
Jawaban:
Punya masalah serupa; file pid memblokir postgres dari memulai. Untuk memperbaikinya:
rm /usr/local/var/postgres/postmaster.pid
dan kemudian semuanya baik-baik saja.
sumber
rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
tail /usr/local/var/postgres/server.log
Ini terkadang bisa menjadi masalah dengan peningkatan postgres.
Dalam kasus saya, itu terjadi ketika memutakhirkan dari 9,3 ke 9,4.
Lihat http://www.postgresql.org/docs/9.4/static/upgrading.html
OS X / Homebrew:
Coba jalankan
postgres -D /usr/local/var/postgres
- ini akan memberi Anda lebih banyak keluaran verbose jika postgres gagal memulai.Dalam kasus saya, menjalankan
rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8
menghapus basis data lama saya dan kemudian menginisialisasi ulang skema postgres db.Terima kasih kepada https://github.com/Homebrew/homebrew/issues/35240 untuk solusi itu.
Setelah meregenerasi database saya (dengan
rake db:create
) semuanya bekerja dengan baik lagi.sumber
postgres -D /usr/local/var/postgres
memberi tahu Anda bahwa direktori data diinisialisasi dengan versi Postgres yang lebih lama dan tidak kompatibel, dan Anda tidak ingin kehilangan data lokal Anda, Anda dapat mencoba utas inipg_ctl -D /usr/local/var/postgres -l logfile start
dan kemudian server saya mulai di latar belakangbrew services start postgres
pada OSX untuk memulai postgres di latar bukannyapostgres -D /usr/local/var/postgres
Menemukan solusi yang bekerja untuk saya di sini:
/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory
Anda pada dasarnya menjalankan perintah berikut untuk memulai server secara manual:
sumber
Jika menginstal dan menghapus postgres dengan minuman tidak berfungsi untuk Anda, lihat log instalasi postgresql Anda atau:
jika Anda melihat output seperti ini:
Kemudian coba yang berikut ini:
Kemudian mulai server:
Sumber
sumber
Pada Yosemite, jika file pid memblokir Postgres dari permulaan dan Anda memiliki
launchctl
daemon yang mencoba (dan gagal) untuk memuat daemon database, maka Anda harus membongkar file plist:Kemudian hapus file pid
Kemudian muat ulang
launchctl
daemonsumber
Bagi siapa pun yang membaca ini dan menggunakan Postgres.app, Anda mungkin perlu
host: localhost
di database.yml Anda. http://postgresapp.com/documentation#toc_3sumber
Memutakhirkan database berfungsi untuk saya
brew postgresql-upgrade-database
sumber
bekerja untukku!
sumber
Periksa apakah file soket ada.
Jika tidak maka periksa postgresql.conf Anda untuk perubahan unix_socket_directory.
sumber
$ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation
$ mkdir /var/pgsql_socket/
$ sudo mkdir /var/pgsql_socket/
$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
Solusi ini sedikit rumit, tetapi berhasil. Semoga ada yang punya solusi yang lebih baikMasalahnya juga dapat dikaitkan dengan proses macet yang meninggalkan file postmaster.pid. Saya melakukan ini dan bekerja:
sumber
Masalahnya adalah karena sudah ada layanan yang berjalan pada port 5432 dan kami tidak dapat membuat koneksi soket psql melalui port ini.
Saya menghapus file socket
Kemudian saya menginisialisasi ulang layanan postgres
Ini berhasil untuk saya.
sumber
Cara pembuktian yang paling bodoh adalah dengan melakukannya
Ini akan membuat izin pengguna Anda, dll, semuanya utuh dan semuanya diatur ulang menjadi baru. Bekerja sepanjang waktu!
sumber
rm /usr/local/var/postgres/postmaster.pid
pada mac os tidak berfungsi maka gunakan perintah ini.Mengubah pengaturan konfigurasi postresql atau database.yml, mengubah $ PATH, atau membuat symlink tidak diperlukan bagi saya. Semua perlu saya lakukan adalah
gem uninstall pg
dan kemudianbundle
(ataugem install pg
).Masalahnya adalah permata pg telah diinstal sebelum postingan homebrew, jadi mengambil pengaturan dari versi postgres yang datang dengan MacOS. Menginstal ulang (dan dengan demikian membangun kembali ekstensi asli) memperbaiki masalah.
sumber
Ini terjadi pada saya ketika saya memutakhirkan dari 9.3.4 ke 9.5 karena basis data tidak kompatibel tanpa memutakhirkan.
Saya menggunakan pg_upgrade sebagai berikut:
Hentikan postgres
Tingkatkan basis data:
Arsipkan basis data lama:
Mulai ulang postgres:
Permata yang Diperbarui (untuk rel / catatan aktif):
sumber
Ini sebenarnya yang seharusnya Anda lakukan:
Anda seharusnya melihat /usr/local/var/postgres/postmaster.pid
dan kemudian lihat baris pertama file - ini adalah PID yang buruk
Lari
sebagai contoh:
lalu lakukan
sebagai contoh
Dengan asumsi itu masih berjalan
/superuser/553045/fatal-lock-file-postmaster-pid-already-exists
jangan dengarkan jawaban yang diterima itu buruk dan akan merusak data Anda !!!
sumber
Opsi psql
-h hostname --host = hostname
: Menentukan nama host mesin yang menjalankan server. Jika nilai dimulai dengan garis miring, ini digunakan sebagai direktori untuk soket Unix-domain.
Jalankan psql dengan -host Option
Tidak perlu membuat tautan lunak
sumber
Datang di masalah ini juga pada MacOS Sierra dan ketika kami menjalankan pg_ctl seperti yang dijelaskan di atas kami kemudian memiliki kesalahan berikut
pg_ctl: no database directory specified and environment variable PGDATA unset
. Jadi kami mengikuti langkah-langkah di sini yang memecahkan masalah kami, yaitu:mkdir ~/.postgres
initdb ~/.postgres
pg_ctl -D ~/.postgres start
sumber
Jika postgres diinstal menggunakan homebrew, Anda dapat memperbaikinya dengan menjalankan:
sumber
Ini bekerja untuk saya (sebagai campuran dari jawaban sebelumnya):
Sumber: https://coderwall.com/p/zf-fww/postgres-on-osx-with-homebrew-not-running-after-osx-crash
sumber
Jika Anda mematikan sistem Anda tanpa berhenti dari psql, postgres tidak akan menghapus beberapa file.
Saya tidak menemukan file postmaster.pid di lokasi usr / local / var / postgres
Jadi saya lakukan di bawah ini:
Perintah di atas seharusnya membuat Anda memulai postgres
sumber
Saya mengalami masalah ini setelah mencoba memulihkan / menjatuhkan / membuat db saat proses lain mengaksesnya. Perbaikan MacOSX / Homebrew adalah:
rails server
,rails console
,guard
, dll ...brew info postgres
sumber
FWIW ini terjadi pada saya hari ini, tetapi yang terjadi adalah saya menjalankan pembaruan Ubuntu pada saat itu, yang kemungkinan besar memperbarui Postgres. Setelah pembaruan selesai, saya dapat terhubung tanpa hambatan.
Demi kelengkapan, saya mencoba untuk mengambil catatan dari database dari konsol Rails:
sumber
Sepertinya psql Anda tidak berjalan. Anda harus menjalankannya sebelum terhubung. Anda dapat melakukannya menggunakan Postgres.app hanya untuk Mac OS. (Unduh dan instal aplikasi ini http://postgresapp.com ) Buka aplikasi, dan Anda memiliki server PostgreSQL yang siap dan menunggu koneksi baru. Tutup aplikasi, dan server dimatikan. Anda juga dapat menemukan info ini di sini http://www.postgresql.org/download/macosx/ . Semoga ini bisa membantu Anda.
sumber
Itu karena server sebelumnya masih berjalan, coba tutup semuanya dan jalankan kembali aplikasi Anda.
sumber
Bagi mereka yang menggunakan perintah ini dan tidak berfungsi atau file tidak ada dan menggunakan Ruby on Rails
Atau perintah lain dan terus gagal.
Saya memecahkan masalah ini dengan menghapus instalasi dengan Brew. Saya harus uninstall dengan brew 2 kali, karena pada uninstall pertama akan tetap ada versi postgresql lainnya, dengan uninstall kedua proses akan selesai.
Instal postgresql dengan Brew
Lalu jatuhkan, buat, dan migrasikan basis data proyek
(Jangan lupa untuk memulai server postgresql)
sumber
Saya mendapat masalah yang sama karena saya menggunakan nama pengguna Postgres yang salah dalam kode. Saya masuk ke postgres
psql -d postgres
dan masuk\du
untuk mengambil nama peran dan memperbaiki nama pengguna Postgres.Jadi ketika Anda menghadapi masalah ini, Anda perlu memastikan Anda menggunakan nama pengguna, kata sandi, nama host, dan basis data Postgres yang benar ...
Semoga ini bisa membantu siapa saja
sumber
¿Apakah Anda baru saja mengubah pg_hba.conf? jika Anda baru saja memeriksa salah ketik di:
"local" hanya untuk koneksi soket domain Unix
lokal semua kata sandi
Koneksi lokal IPv4:
host semua 127.0.0.1/32 kata sandi
Koneksi lokal IPv6:
host semua semua :: 1/128 kata sandi
Terkadang kesalahan sederhana bisa membuat kita sakit kepala. Saya harap bantuan ini dan maaf jika bahasa inggris saya tidak bagus sama sekali.
sumber
Ini terjadi ketika server postgres tidak berjalan. Langkah-langkah untuk menginstal Postgres dengan benar melalui Homebrew di MAC:
brew install postgres
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]pg_ctl -D /Users/<username>/db -l logfile start
[Setelah mendapatkan kesuksesan dengan langkah 2 itu akan meminta untuk menjalankan langkah 3. Perintah ini secara manual memulai server.]sumber
Saya mendapat kesalahan yang sama. Ternyata postgres tidak berjalan sama sekali (biasanya selalu berjalan di latar belakang, tetapi untuk alasan apa pun tidak hari ini).
Jika ini masalahnya, cukup ketik
postgres
baris perintah di direktori proyek Andasumber
Setelah banyak bolak-balik, itu benar-benar turun ke
pg
versi permata yang saya gunakan. Pada maverick,pg
versi0.15.1
tidak akan terhubung ke port 5432 tetapi versi0.17.1
berfungsi dengan baik - sangat aneh.sumber