Giống như một số người khác Tôi gặp lỗi này khi chạy rake db: di chuyển trong dự án của tôi hoặc thậm chí thử hầu hết các tác vụ cơ sở dữ liệu cho các ứng dụng Ruby on Rails 3.2 của tôi .
PGError (không thể kết nối với máy chủ: Không có tệp hoặc thư mục như vậy. Máy chủ có chạy cục bộ và chấp nhận kết nối trên ổ cắm tên miền Unix "/tmp/.s.PGQuery.5432" không?
Tôi đã cài đặt PostgreSQL với Homebrew từ lâu và sau khi cài đặt MongoDB gần đây, cài đặt PostgreQuery của tôi chưa bao giờ giống như vậy. Tôi đang chạy OS X v10.6 Snow Leopard.
Có gì sai và làm cách nào để hiểu rõ hơn về PostgreSQL như thế nào và nên được thiết lập trên máy Mac của tôi?
Cho đến nay (tôi nghĩ) điều này cho tôi biết rằng PostgreSQL không chạy (?).
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
Nhưng điều này có nói với tôi rằng PostgreSQL đang chạy không?
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
Làm thế nào để tôi sửa lỗi này? tôi không thấy gì
PS: ~/Library/LaunchAgents
bao gồm hai tệp .gist PostgreSQL. Tôi không chắc nếu điều đó có liên quan.
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
Tôi đã thử sau đây và nhận được một kết quả như dưới đây.
$ 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?
Tôi đã đọc vì điều này xảy ra do OS X cài đặt phiên bản PostgreSQL và Homebrew của riêng nó cài đặt một phiên bản khác ở một nơi khác và các lệnh PostgreQuery đang tìm trong thư mục / tmp /. Bạn sẽ cần tìm kiếm nhiều hơn trên Stack Overflow, nhưng về cơ bản, bạn symlink PostgreSQL để mọi thứ tìm kiếm trong đường dẫn tmp đó thực sự tìm thấy đường dẫn thực, nếu điều đó hợp lý.
Đây là liên kết nơi tôi tìm thấy thêm một vài thứ để thử, cụ thể là thực hiện liên kết tượng trưng như trên, Mac OSX Lion Postgres không chấp nhận kết nối trên /tmp/.s.PGQuery.5432 . Tôi vẫn mong muốn ai đó sẽ đưa ra một lời giải thích hợp lý về các khái niệm đằng sau việc cài đặt PostgreSQL trên OS X và tại sao mọi việc lại khó khăn đến vậy.
Những hiểu biết mới nhất để giúp khắc phục sự cố:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
Sau đó chạy:
$ echo $PATH
Điều quan trọng cần tính đến là:
Đảm bảo rằng mục nhập đường dẫn cho bản sao của PostgreQuery mà bạn muốn chạy COMES TRƯỚC KHI đường dẫn đến PostgreQuery của hệ thống OS X.
Đây là một yêu cầu cốt lõi quyết định PostgreQuery nào sẽ được chạy và đó là những gì tôi đã nói dẫn đến hầu hết các vấn đề này.