pg_dump tidak dapat menemukan database

Poin mudah bagi siapa pun kecuali saya. Saya mencoba menggunakan pg_dump. Saya menjalankan Mac OSx, postgres.app, 9.2, dan saya ingin membuat cadangan db saya. Saya mencoba solusi lain untuk masalah yang sama, tetapi tidak berhasil. Sejauh yang saya tahu, postgres.app berjalan pada 5432. Saya menjalankan perintah di bawah ini dari direktori acak, dan dari direktori data saya, tidak berhasil.

Perintah dicoba:

 $ pg_dump pdbt > pdbt.sql

Kesalahan:

pg_dump: [archiver (db)] connection to database "pdbt" failed: 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"?

person user2104778    schedule 28.09.2013    source sumber
comment
Mungkin masalah OSX (lokasi soket domain unix bawaan // versi kludge salah). Apakah psql pdbt -l berfungsi? Silakan coba dengan -h dirname misalnya pg_dump -h /tmp/ pdbt > pdbt.sql   -  person wildplasser    schedule 28.09.2013
comment
Menjalankan psql pdbt -l memberikan kesalahan berikut: psql: tidak dapat terhubung ke server: Tidak ada file atau direktori seperti itu Apakah server berjalan secara lokal dan menerima koneksi pada soket domain Unix /var/pgsql_socket/.s.PGSQL.5432?   -  person user2104778    schedule 28.09.2013
comment
Namun saya dapat menggunakan psql dengan mengklik ikon postgres.app di bagian atas desktop dan memilih open psql   -  person user2104778    schedule 28.09.2013
comment
Sepertinya Anda telah menginstal beberapa binari lama (satu rilis OSX memiliki jalur bawaan yang berbeda untuk soket domain unix). Apakah psql -h localhost pdbt -l berfungsi? Juga: coba periksa versi biner yang berbeda (dengan yang salah terlebih dahulu di PATH) Terkait: stackoverflow.com/questions/8465508/ (psql bukan pg_dump, tapi mungkin masalah OSX yang sama)   -  person wildplasser    schedule 28.09.2013
comment
psql -h localhost pdbt -l berfungsi. Kemana saya harus pergi dari sini?   -  person user2104778    schedule 28.09.2013
comment
Maka pg_dump -h localhost pdbt mungkin akan berhasil juga.   -  person wildplasser    schedule 28.09.2013
comment
Oke, sekarang saya mendapatkan pg_dump: server version: 9.2.4; versi pg_dump: 9.1.9 pg_dump: dibatalkan karena ketidakcocokan versi server   -  person user2104778    schedule 28.09.2013
comment
Agaknya versi yang lebih lama adalah yang pertama dalam jalurnya. coba find / -name pg_dump -ls (Saya harap Anda akan menemukan lebih dari satu)   -  person wildplasser    schedule 28.09.2013
comment
apa yang saya cari di hasil find (datanya banyak)? Juga, masukkan komentar Anda ke dalam jawaban dan saya akan menerimanya   -  person user2104778    schedule 28.09.2013


Jawaban (1)


  • Mungkin masalah OSX (lokasi soket domain unix bawaan // versi kludge salah). Apakah psql pdbt -l berfungsi?
  • coba juga dengan -h dirname misalnya pg_dump -h /tmp/ pdbt > pdbt.sql
  • Apakah psql -h localhost pdbt -l berfungsi?
  • maka: pg_dump -h localhost pdbt mungkin akan berhasil juga.
  • Untuk mengetahui beberapa versi pg_dump yang hidup berdampingan, Anda dapat mencoba: find / -name pg_dump -ls , setelah itu Anda dapat mencoba berbagai versi menggunakan nama jalur lengkap (misalnya /usr/bin/pg_dump -h localhost atau /usr/local/bin/pg_dump -h localhost atau apa pun yang ditemukan)
  • Agaknya versi yang lebih lama (salah) adalah yang pertama di jalurnya.

Dalam kebanyakan kasus, beberapa proses instalasi OSX membiarkan beberapa binari lama terinstal (satu rilis OSX memiliki jalur bawaan yang berbeda untuk soket domain unix). Juga: coba periksa versi biner yang berbeda (dengan yang salah terlebih dahulu di PATH)

Terkait: (psql bukan pg_dump, tapi mungkin masalah OSX yang sama)

person wildplasser    schedule 28.09.2013
comment
Dengan asumsi bahwa versi lama adalah yang pertama di jalurnya, bagaimana cara mengubahnya? - person user2104778; 29.09.2013
comment
Singkirkan. Atau jika ingin aman : ganti namanya (misal: cd baddirectory; mv -i pg_dump pg_dump.BAD ) - person wildplasser; 29.09.2013
comment
Tampaknya berhasil. Saya mengganti nama pg_dump lama di /usr/local/bin dan menyalin dan menempelkan pg_dump yang diperbarui dari file postgres.app ke /usr/local/bin. Lalu saya menjalankan pg_dump -h localhost pdbt › pdbt.sql. Ini sedang berjalan sekarang tetapi tampaknya berhasil. Terima kasih telah menahan tanganku yang tidak kompeten melalui hal itu. - person user2104778; 29.09.2013