/etc/services
є лише дорадчою, це перелік відомих портів. Це не означає, що на цьому порту насправді працює що-небудь або що названа служба працюватиме на цьому порту.
У випадку PostgreSQL типово використовувати порт 5432, якщо він є. Якщо це не так, більшість установців виберуть наступний безкоштовний порт, як правило, 5433.
Ви можете побачити, що насправді працює за допомогою netstat
інструменту (доступний в OS X, Windows та Linux, причому синтаксис командного рядка змінюється на всіх трьох).
Це ще більше ускладнюється в системах Mac OS X жахливим безладом різних пакетів PostgreSQL - старовинною версією PostgreSQL від Apple, вбудованою в ОС, Postgres.app, Homebrew, Macports, установщиком EnterpriseDB тощо, тощо.
У кінцевому підсумку відбувається те, що користувач встановлює Pg і запускає сервер з однієї упаковки, але використовує psql
і libpq
клієнта з іншої упаковки. Зазвичай це відбувається під час роботи Postgres.app або Pg homebrew та підключення до тієї, psql
що постачається з ОС. Мало того, що у них іноді є різні порти за замовчуванням, але у Pg, який постачається з Mac OS X, є інший шлях до роз'єму unix за замовчуванням , так що навіть якщо сервер працює на одному порту, він не буде слухати той же сонікс-сокет.
Більшість користувачів Mac працюють над цим, просто використовуючи tcp / ip з psql -h localhost
. Ви також можете вказати порт, якщо потрібно, наприклад psql -h localhost -p 5433
. У вас може працювати декілька екземплярів PostgreSQL, тому переконайтеся, що ви підключаєтесь до потрібного за допомогою select version()
та SHOW data_directory;
.
Ви також можете вказати каталог Unix socket; перевірити unix_socket_directories
налаштування екземпляра PostgreSQL, до якого ви хочете підключитися, і вкажіть це psql -h
, наприклад, наприклад psql -h /tmp
.
Більш чистим рішенням є виправлення вашої системи PATH
таким чином, що psql
та, libpq
пов’язане з PostgreSQL, який ви насправді виконуєте, - це те, що знайдено першим у PATH
. Деталі цього залежать від вашої версії Mac OS X та пакетів Pg, які ви встановили. Я не використовую Mac і не можу запропонувати набагато більше деталей з цього боку, не витрачаючи більше часу, ніж зараз є.
PGPORT
: postgresql.org/docs/current/static/libpq-envars.html