Ответ 1
/etc/services
является лишь рекомендательным, это список известных портов. Это не означает, что на этом порту что-то действительно выполняется или что именованная служба будет работать на этом порту.
В случае PostgreSQL обычно используется порт 5432, если он доступен. Если это не так, большинство установщиков выберут следующий свободный порт, обычно 5433.
Вы можете увидеть, что на самом деле работает, используя инструмент netstat
(доступный в OS X, Windows и Linux, с синтаксисом командной строки, различающимся для всех трех).
Это еще более усложняется в системах Mac OS X из-за ужасной путаницы различных пакетов PostgreSQL - древней версии Apple, встроенной в ОС PostgreSQL, Postgres.app, Homebrew, Macports, установщика EnterpriseDB и т.д. И т.д.
В конечном итоге пользователь устанавливает Pg и запускает сервер из одной упаковки, но использует клиента psql
и libpq
из другой упаковки. Обычно это происходит, когда они запускают Postgres.app или homebrew Pg и соединяются с psql
, который поставляется с ОС. Они не только иногда имеют разные порты по умолчанию, но и Pg, поставляемый с Mac OS X, имеет другой путь к сокету Unix по умолчанию, поэтому даже если сервер работает на том же порту, он не будет слушать тот же сокет Unix.
Большинство пользователей Mac работают с этим, просто используя tcp/ip с psql -h localhost
. При необходимости вы также можете указать порт, например, psql -h localhost -p 5433
. Возможно, у вас запущено несколько экземпляров PostgreSQL, поэтому убедитесь, что вы подключаетесь к нужному экземпляру, используя select version()
и SHOW data_directory;
.
Вы также можете указать каталог сокетов Unix; проверьте настройку unix_socket_directories
экземпляра PostgreSQL, к которому вы хотите подключиться, и укажите его с помощью psql -h
, например psql -h /tmp
.
Более чистое решение состоит в том, чтобы исправить вашу систему PATH
так, чтобы psql
и libpq
, связанные с PostgreSQL, на котором вы в действительности работали, были первыми найдены в PATH
. Детали этого зависят от вашей версии Mac OS X и от того, какие пакеты Pg вы установили. Я не пользуюсь Mac и не могу предложить гораздо больше деталей в этой области, не тратя больше времени, чем доступно в настоящее время.