2017-08-11 17 views
5

Khi tôi cố gắng truy cập postgres qua webapp hoặc mở vỏ postgres bằng psql -d template1, tôi gặp lỗi.Tại sao tôi không thể truy cập vào bưu điện khi chạy nó dưới dạng dịch vụ?

psql: không thể kết nối đến máy chủ: Không có tập tin hoặc thư mục đó là máy chủ chạy cục bộ và chấp nhận các kết nối trên tên miền Unix ổ cắm "/tmp/.s.PGSQL.5432"?

(* Tôi đã đọc một số SO đề về lỗi này, nhưng đề nghị các giải pháp không sửa lỗi này cho tôi)

postgres Bắt đầu như một dịch vụ:

brew services restart postgresql 

Dừng postgresql ... (có thể mất một lúc) ==> Đã dừng thành công postgresql (nhãn: homebrew.mxcl.postgresql) ==> Sao thành công ted postgresql (label: homebrew.mxcl.postgresql)

thủ chạy postgres trong một thiết bị đầu cuối:

tôi có thể nhận được tất cả mọi thứ để làm việc bằng cách chạy dưới đây trong một cửa sổ terminal, nhưng tôi muốn chạy nó trong nền.

postgres -D /usr/local/var/postgres9.6.3 

Clusters:

Tôi có 3 cụm db trong /usr/local/var, nhưng tôi muốn sử dụng postgres9.6.3/

postgres 
postgres9.5/ 
postgres9.6.3/ 

nào:

which psql lợi nhuận /usr/local/bin/psql

Đường dẫn:

echo $PATH lợi nhuận /usr/local/bin/usr/local/var (thêm)

giải pháp đề nghị khác:

Rất nhiều người nơi có thể sửa lỗi này bằng cách loại bỏ một /postgres/postmaster.pid, nhưng điều này tệp không tồn tại đối với tôi.

CẬP NHẬT

Chạy ps -ef | grep postgres, chỉ có kết quả đầu ra,

501 2135 1530 0 12:08pm ttys002 0:00.00 grep postgres 

Sau khi khởi động postgres với brew servies, postgres.log trong /usr/local/var/log chứa,

FATAL: database files are incompatible with server 
DETAIL: The data directory was initialized by PostgreSQL version 9.5, which is not compatible with this version 9.6.3. 
+0

Sau khi bạn khởi động lại dịch vụ thông qua 'brew services', không có đầu ra của 'ps-ef | grep postgres' hiển thị bất cứ điều gì? Nếu không, máy chủ không thực sự chạy - dường như có khả năng xảy ra lỗi. Kiểm tra nhật ký (phải ở trong /usr/local/var/log/postgres.log) và xem có điều gì thú vị trong đó không. – dmfay

+0

Đã thêm cập nhật cho câu hỏi –

Trả lời

3

Nếu bạn muốn sử dụng dữ liệu 9.5 của mình với máy chủ 9.6. bạn phải chạy:

  • pg_upgrade (here) hoặc
  • pg_dump từ 9,5 đến nộp và pg_restore | psql tùy thuộc vào loại sao lưu trên 9,6 ... (here)

nếu bạn chọn tùy chọn đầu tiên, không có bước tiếp theo cần thiết - phiên bản mặc định của bạn là 9.6 và nó sẽ làm việc với thư mục dữ liệu hiện có.

trước khi chạy pg_upgrade, tạo một bản sao lạnh của data_directory

3

Định nghĩa dịch vụ vẫn xác định cũ 9,5 dữ liệu của bạn danh mục. Nếu bạn mở ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist bạn sẽ thấy một phần đó trông như thế này:

<key>ProgramArguments</key> 
<array> 
    <string>/usr/local/opt/postgresql/bin/postgres</string> 
    <string>-D</string> 
    <string>/usr/local/var/postgres9.5</string> 
</array> 

Thay đổi lý luận chính thức để trỏ đến thư mục dữ liệu 9.6.3 của bạn và khởi động lại dịch vụ . Nếu nó không đưa bạn có thể cần phải đăng xuất và trở lại để nó đọc lại plist.

+0

Tôi đã có thể mở và chỉnh sửa tệp này (nó đã hiển thị phiên bản cũ). Nhưng nó trở lại phiên bản cũ sau khi tôi cập nhật nó nếu tôi khởi động lại postgres với 'brew services restart postgres'. Có cách nào khác tôi cần cập nhật nó hơn 'sudo nano ... ' –

+0

Thư mục dữ liệu mặc định cho cài đặt Homebrew là [/usr/local/var/postgres](https://wiki.postgresql.org/wiki/Installers/Mac_OS_X). Nếu bạn chuyển đổi các thư mục xung quanh bạn sẽ có thể nâng cấp mà không cần lo lắng về nó. – dmfay

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