/etc/services
chỉ là lời khuyên, đó là một danh sách các cổng nổi tiếng. Điều đó không có nghĩa là mọi thứ thực sự đang chạy trên cổng đó hoặc dịch vụ được đặt tên sẽ chạy trên cổng đó.
Trong trường hợp của PostgreQuery, việc sử dụng cổng 5432 là khả dụng. Nếu không, hầu hết các trình cài đặt sẽ chọn cổng miễn phí tiếp theo, thường là 5433.
Bạn có thể thấy những gì thực sự đang chạy bằng netstat
công cụ (có sẵn trên OS X, Windows và Linux, với cú pháp dòng lệnh khác nhau trên cả ba).
Điều này còn phức tạp hơn trên các hệ thống Mac OS X bởi mớ hỗn độn khủng khiếp của các gói PostgreQuery khác nhau - phiên bản cổ của PostgreQuery của Apple được tích hợp trong HĐH, Postgres.app, Homebrew, Macports, trình cài đặt EnterpriseDB, v.v.
Điều cuối cùng xảy ra là người dùng cài đặt PG và khởi động máy chủ từ một bao bì, nhưng sử dụng psql
và libpq
ứng dụng khách từ một bao bì khác. Thông thường, điều này xảy ra khi họ đang chạy Postgres.app hoặc homebrew PG và kết nối với psql
giao hàng được vận hành cùng với HĐH. Không chỉ đôi khi chúng có các cổng mặc định khác nhau, mà PG được cung cấp với Mac OS X còn có đường dẫn ổ cắm unix mặc định khác , vì vậy ngay cả khi máy chủ đang chạy trên cùng một cổng, nó sẽ không nghe cùng một ổ cắm unix.
Hầu hết người dùng Mac đều khắc phục điều này bằng cách chỉ sử dụng tcp / ip với psql -h localhost
. Bạn cũng có thể chỉ định một cổng nếu được yêu cầu, ví dụ psql -h localhost -p 5433
. Bạn có thể có nhiều phiên bản PostgreSQL đang chạy, vì vậy hãy đảm bảo bạn đang kết nối với bên phải bằng cách sử dụng select version()
vàSHOW data_directory;
.
Bạn cũng có thể chỉ định một thư mục ổ cắm unix; kiểm tra unix_socket_directories
cài đặt của phiên bản PostgreQuery mà bạn muốn kết nối và chỉ định điều đó với psql -h
, vd psql -h /tmp
.
Một giải pháp sạch hơn là sửa hệ thống của bạn PATH
sao cho psql
và libpq
liên kết với PostgreQuery mà bạn thực sự đang chạy là thứ được tìm thấy đầu tiên trên PATH
. Các chi tiết phụ thuộc vào phiên bản Mac OS X của bạn và gói PG nào bạn đã cài đặt. Tôi không sử dụng Mac và không thể cung cấp nhiều chi tiết hơn về phía đó mà không mất nhiều thời gian hơn hiện có.
PGPORT
được xác định không: postgresql.org/docs/civerse/static/libpq-envars.html