pg_dump ไม่พบฐานข้อมูล

คะแนนง่ายๆสำหรับทุกคนยกเว้นฉัน ฉันกำลังลองใช้ pg_dump ฉันใช้ Mac OSx, postgres.app, 9.2 และฉันต้องการสำรองฐานข้อมูลของฉัน ฉันลองใช้วิธีแก้ไขปัญหาอื่นสำหรับปัญหาเดียวกัน แต่ไม่ประสบความสำเร็จ postgres.app ทำงานบน 5432 เท่าที่ฉันสามารถบอกได้ ฉันรันคำสั่งด้านล่างจากไดเร็กทอรีแบบสุ่ม และจากไดเร็กทอรีข้อมูลของฉัน โชคไม่ดีเลย

คำสั่งพยายาม:

 $ pg_dump pdbt > pdbt.sql

ข้อผิดพลาด:

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 แหล่งที่มา
comment
อาจเป็นปัญหา OSX (ตำแหน่งที่ไม่ถูกต้องของซ็อกเก็ตโดเมน unix ในตัว // เวอร์ชัน kludge) psql pdbt -lได้ผลไหม? โปรดลองด้วย -h dirname เช่น pg_dump -h /tmp/ pdbt > pdbt.sql   -  person wildplasser    schedule 28.09.2013
comment
การรัน psql pdbt -l ให้ข้อผิดพลาดต่อไปนี้: psql: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว เซิร์ฟเวอร์ทำงานอยู่ในเครื่องและยอมรับการเชื่อมต่อบนซ็อกเก็ตโดเมน Unix /var/pgsql_socket/.s.PGSQL.5432 หรือไม่   -  person user2104778    schedule 28.09.2013
comment
อย่างไรก็ตาม ฉันสามารถใช้ psql ได้โดยคลิกที่ไอคอน postgres.app ที่ด้านบนของเดสก์ท็อปแล้วเลือก open psql   -  person user2104778    schedule 28.09.2013
comment
ดูเหมือนว่าคุณได้ติดตั้งไบนารีเก่าไว้แล้ว (OSX รุ่นหนึ่งมีเส้นทาง buit-in ที่แตกต่างกันสำหรับซ็อกเก็ตโดเมน unix) psql -h localhost pdbt -lได้ผลไหม? นอกจากนี้: ลองตรวจสอบเวอร์ชันที่แตกต่างกันของไบนารี (โดยที่ผิดก่อนใน PATH) ที่เกี่ยวข้อง: stackoverflow.com/questions/8465508/ (psql แทนที่จะเป็น pg_dump แต่อาจเป็นปัญหา OSX เดียวกัน)   -  person wildplasser    schedule 28.09.2013
comment
psql -h localhost pdbt -l ใช้งานได้ ฉันจะไปจากที่นี่ที่ไหน?   -  person user2104778    schedule 28.09.2013
comment
จากนั้น pg_dump -h localhost pdbt ก็อาจจะได้ผลเช่นกัน   -  person wildplasser    schedule 28.09.2013
comment
ตกลง ตอนนี้ฉันได้รับ pg_dump: server version: 9.2.4; เวอร์ชัน pg_dump: 9.1.9 pg_dump: ยกเลิกเนื่องจากเวอร์ชันเซิร์ฟเวอร์ไม่ตรงกัน   -  person user2104778    schedule 28.09.2013
comment
สันนิษฐานว่าเวอร์ชันเก่าเป็นอันดับแรกในเส้นทาง ลอง find / -name pg_dump -ls (ฉันหวังว่าคุณจะพบมากกว่าหนึ่ง)   -  person wildplasser    schedule 28.09.2013
comment
ฉันกำลังมองหาอะไรในผลการค้นหา (มีข้อมูลจำนวนมาก)? ใส่ความคิดเห็นของคุณเป็นคำตอบแล้วฉันจะยอมรับ   -  person user2104778    schedule 28.09.2013


คำตอบ (1)


  • อาจเป็นปัญหา OSX (ตำแหน่งที่ไม่ถูกต้องของซ็อกเก็ตโดเมน unix ในตัว // เวอร์ชัน kludge) psql pdbt -lได้ผลไหม?
  • ลองด้วย -h dirname เช่น pg_dump -h /tmp/ pdbt > pdbt.sql
  • psql -h localhost pdbt -lได้ผลไหม?
  • จากนั้น: pg_dump -h localhost pdbt อาจจะได้ผลเช่นกัน
  • หากต้องการค้นหา pg_dump ที่มีอยู่หลายเวอร์ชันคุณสามารถลอง: find / -name pg_dump -ls หลังจากนั้นคุณสามารถลองใช้เวอร์ชันต่าง ๆ โดยใช้ชื่อพา ธ ที่สมบูรณ์ (เช่น /usr/bin/pg_dump -h localhost หรือ /usr/local/bin/pg_dump -h localhost หรืออะไรก็ตามที่ค้นพบ)
  • สันนิษฐานว่ารุ่นเก่า (ผิด) เป็นอันดับแรกในเส้นทาง

ในกรณีส่วนใหญ่ กระบวนการติดตั้ง OSX บางกระบวนการจะทิ้งไบนารีเก่าไว้บางส่วน (OSX รุ่นหนึ่งมีพาธในตัวที่แตกต่างกันสำหรับซ็อกเก็ตโดเมนยูนิกซ์) นอกจากนี้: ลองตรวจสอบเวอร์ชันที่แตกต่างกันของไบนารี (โดยที่ผิดเป็นอันดับแรกใน PATH)

ที่เกี่ยวข้อง: (psql แทนที่จะเป็น pg_dump แต่อาจเป็นปัญหา OSX เดียวกัน)...

person wildplasser    schedule 28.09.2013
comment
สมมติว่าเวอร์ชันเก่าเป็นเวอร์ชันแรกในเส้นทาง ฉันจะเปลี่ยนแปลงได้อย่างไร - person user2104778; 29.09.2013
comment
ย้ายมัน. หรือ ถ้าคุณต้องการที่จะปลอดภัย : เปลี่ยนชื่อ (เช่น: cd baddirectory; mv -i pg_dump pg_dump.BAD ) - person wildplasser; 29.09.2013
comment
ดูเหมือนว่าจะได้ผล ฉันเปลี่ยนชื่อ pg_dump เก่าใน /usr/local/bin และคัดลอกและวาง pg_dump ที่อัปเดตจากไฟล์ postgres.app เป็น /usr/local/bin จากนั้นฉันก็รัน pg_dump -h localhost pdbt › pdbt.sql มันกำลังทำงานอยู่ในขณะนี้ แต่ดูเหมือนว่าจะทำงาน ขอบคุณที่จับมืออันไร้ความสามารถของฉันผ่านมือนั้น - person user2104778; 29.09.2013