2013-06-21 29 views
8

Tôi nhận được một lỗi Mac OSX chung cho việc cài đặt Homebrew của Postgres,Mac OSX Lion Postgres không chấp nhận kết nối trên /tmp/.s.PGSQL.5432

No such file or directory 
Is the server running locally and accepting 
connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 

Đây là rõ ràng là do còn dự bị nhiều lượt cài đặt trên hệ thống. Tuy nhiên, các bước thông thường không giải quyết được mọi thứ.

tôi thành công có thể bắt đầu Postgres và chạy:

ps auxw | grep post 

lợi nhuận ..

euanmillar  847 0.0 0.0 2432768 588 s000 R+ 11:19am 0:00.00 grep postgres 
euanmillar  845 0.0 0.0 2439324 448 ?? Ss 11:19am 0:00.00 postgres: 
stats collector process 
euanmillar  844 0.0 0.0 2443176 1520 ?? Ss 11:19am 0:00.00 postgres: 
autovacuum launcher process 
euanmillar  843 0.0 0.0 2443044 544 ?? Ss 11:19am 0:00.00 postgres: wal writer process 
euanmillar  842 0.0 0.0 2443044 584 ?? Ss 11:19am 0:00.00 postgres: writer process 
euanmillar  841 0.0 0.0 2443044 596 ?? Ss 11:19am 0:00.00 postgres: checkpointer process 
euanmillar  839 0.0 0.0 2443044 3616 s000 S 11:19am 0:00.02 /us 

để nó trông giống như postgres đang chạy.

tôi đã nhận xét trong các dòng sau trong postgresql.conf

port = 5432 
unix_socket_directory = '/var/pgsql_socket' 
unix_socket_permissions = 0777 

và trong var/pgsql_socket/tôi có một tập tin ẩn .s.PGSQL.5432

Tôi đã thử các giải pháp cho nhiều các bài đăng ở đây. Cái này đặc biệt có vẻ tương tự:

https://dba.stackexchange.com/questions/21587/postgresql-is-running-locally-but-i-cannot-connect-why

Nhưng sự khác biệt là tôi có một '/ var/pgsql_socket' thư mục đó là chown-ed để tất cả mọi người. Tôi đã sử dụng Homebrew để hoàn toàn loại bỏ và cài đặt lại Postgres và vẫn còn tôi có cùng một vấn đề.

+1

Kết quả đầu ra 'ps' cho thấy postgres là ** not ** running. Xem [câu hỏi khác] (http://dba.stackexchange.com/questions/21587) để biết kết quả mẫu khi nó chạy. Bước đầu tiên của bạn là thực sự khởi chạy máy chủ với các hướng dẫn về homebrew. –

+0

Mô tả của bạn khó hiểu '/ var/postgresql' và'/var/pgsql_socket'. –

+0

Cảm ơn sự giúp đỡ và xin lỗi nếu mô tả của tôi hơi khó hiểu. –

Trả lời

1

Đó không phải là sự cố cụ thể của OS X. Bạn sẽ cần phải dọn dẹp cài đặt postgres của bạn và sau đó cài đặt lại nó. Tôi đã phải đối mặt với vấn đề này trên ubuntu của tôi 12.04. Trong khi làm sạch cài đặt trước đó của bạn, bạn sẽ cần phải loại bỏ tất cả các gói bắt đầu bằng postgres (postgresql, postgresql-common, postgresql-client v.v.), nói cách khác, postgres *. Tôi đã không sử dụng brew, đã sử dụng cổng trên OS X Lion. Tôi đoán lệnh tương đương phải là sudo brew remove postgres*. Một sudo brew cài đặt postgresql sau đó nên làm các trick.

Ngoài ra, nếu bạn cảm thấy máy chủ đang chạy, bạn có thể thử sudo -u postgres createuser. Nếu không thành công, bạn sẽ cần phải cài đặt lại.

Tuy nhiên, đầu ra của số ps aux | grep post của bạn thực sự là lệnh grep. Không phải máy chủ postgres đang chạy.

EDIT: Có vẻ như liên kết sau đây có thể trợ giúp https://dba.stackexchange.com/questions/21587/postgresql-is-running-locally-but-i-cannot-connect-why Nếu có, thì câu hỏi này có thể trùng lặp.

+0

Cảm ơn. Tôi đã làm theo lời khuyên này, đặc biệt là lời khuyên trong liên kết SO và sửa đổi bài viết đầu tiên của tôi. Rất tiếc, tôi vẫn gặp sự cố này. –

9

Giải pháp đơn giản hơn là xác định vị trí ổ cắm thực sự so với vị trí được mong đợi. Trong trường hợp của tôi, tôi chạy:

$ locate PGSQL.5432 
/private/var/pgsql_socket/.s.PGSQL.5432 
/private/var/pgsql_socket/.s.PGSQL.5432.lock 

Sau đó, chỉ cần liên kết tượng trưng vị trí ổ cắm dự kiến ​​với vị trí ổ cắm thực tế.

$ ln -s /private/var/pgsql_socket/.s.PGSQL.5432 /tmp/.s.PGSQL.5432 
2

Máy khách hệ thống đang được sử dụng và không phải là phiên bản bia của bạn. Cách tiếp cận liên kết tượng trưng chỉ kéo dài cho tới lần khởi động lại tiếp theo.Cách tiếp cận này sửa chữa các vấn đề gốc Tôi tin

  1. sudo chỉnh sửa /etc/paths
  2. Move dòng chứa /usr/local/bin để phía trên cùng của tập tin. (Trước /usr/bin)
  3. Gỡ postgres đá quý của bạn (s) (gem uninstall pg)
  4. Bắt đầu lên vỏ mới để tải các thiết lập môi trường mới
  5. bundle
14

Đối với tôi, tôi gỡ bỏ postmaster.pid trong /usr/local/var/postgres . cố định tôi lên.

30

Bạn cần phải loại bỏ các postmaster.pid, mà phải ở trong đường dẫn sau: /usr/local/var/postgres/postmaster.pid

0

tôi đã cùng một vấn đề trên Mac Serria. Trong Mac Serria bạn có thể tìm postmaster.pid bên trong /Users/<user_name>/Library/Application Support/Postgres/var-9.6 nếu bạn sử dụng trình cài đặt GUI thay vì homebrew.

Khi bạn xóa tệp này thì mọi thứ sẽ hoạt động tốt.

Các vấn đề liên quan