เช่นเดียวกับคนอื่น ๆ ฉันพบข้อผิดพลาดนี้เมื่อฉันเรียกใช้ rake db: migrate ในโครงการของฉันหรือลองใช้งานฐานข้อมูลส่วนใหญ่สำหรับแอปพลิเคชันRuby on Rails 3.2 ของฉัน
PGError (ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์: ไม่มีไฟล์หรือไดเรกทอรีเซิร์ฟเวอร์ทำงานในเครื่องและยอมรับการเชื่อมต่อบนซ็อกเก็ตโดเมน Unix "/tmp/.s.PGSQL.5432" หรือไม่
ฉันติดตั้งPostgreSQLด้วยHomebrewเป็นเวลานานแล้วและติดตามการติดตั้งของMongoDBเมื่อไม่นานมานี้การติดตั้ง PostgreSQL ของฉันก็ไม่เหมือนเดิม ฉันใช้ OS X v10.6 Snow Leopard
มีอะไรผิดปกติและฉันจะเข้าใจได้อย่างไรว่า PostgreSQL เป็นอย่างไรและควรติดตั้งบน Mac ของฉันอย่างไร
จนถึงตอนนี้ (ฉันคิดว่า) สิ่งนี้บอกฉันว่า PostgreSQL ไม่ทำงาน (?)
ps -aef|grep postgres (ruby-1.9.2-p320@jct-ana) (develop) ✗
501 17604 11329 0 0:00.00 ttys001 0:00.00 grep postgres
แต่สิ่งนี้บอกได้ไหมว่า PostgreSQL กำลังทำงานอยู่
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
ฉันจะแก้ไขได้อย่างไร ฉันไม่เห็นอะไร
PS: ~/Library/LaunchAgents
มีไฟล์ .plist PostgreSQL สองไฟล์ ฉันไม่แน่ใจว่าเกี่ยวข้องหรือไม่
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
ฉันลองต่อไปนี้และได้ผลลัพธ์ดังนี้
$ psql -p 5432 -h localhost
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
ฉันได้อ่านมาตั้งแต่ตอนนี้ว่าเกิดขึ้นเพราะ OS X ติดตั้ง PostgreSQL รุ่นของตัวเองและ Homebrew ติดตั้งรุ่นที่แตกต่างกันในสถานที่ที่แตกต่างกันและคำสั่ง PostgreSQL กำลังมองหาใน / tmp / ไดเรกทอรี คุณจะต้องค้นหาเพิ่มเติมเกี่ยวกับ Stack Overflow แต่โดยทั่วไปคุณจะเชื่อมโยง PostgreSQL เพื่อให้ทุกสิ่งที่ดูในเส้นทาง tmp นั้นค้นหาเส้นทางที่แท้จริงจริง ๆ ถ้ามันสมเหตุสมผล
นี้คือการเชื่อมโยงที่ผมพบว่าสิ่งที่อีกไม่กี่ที่จะลองทำ symlink เฉพาะตามข้างต้นMac OSX Lion Postgres ไม่ยอมรับการเชื่อมต่อบน /tmp/.s.PGSQL.5432 ฉันยังหวังว่าจะมีคนรวบรวมคำอธิบายที่ดีเกี่ยวกับแนวคิดเบื้องหลังการติดตั้ง PostgreSQL บน OS X และทำไมมันจึงยาก
ข้อมูลเชิงลึกล่าสุดเพื่อช่วยในการแก้ปัญหา:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
จากนั้นเรียกใช้:
$ echo $PATH
สิ่งสำคัญที่ต้องคำนึงถึงคือ:
ตรวจสอบให้แน่ใจว่ารายการพา ธ สำหรับสำเนา PostgreSQL ที่คุณต้องการเรียกใช้ COMES ก่อนที่จะพา ธ ไปยัง PostgreSQL ของระบบ OS X
นี่เป็นข้อกำหนดหลักที่ตัดสินใจ PostgreSQL ที่ทำงานและเป็นสิ่งที่ฉันบอกว่านำไปสู่ปัญหาส่วนใหญ่