/etc/services
to tylko wskazówka, jest to lista dobrze znanych portów. Nie oznacza to, że cokolwiek faktycznie działa na tym porcie lub że nazwana usługa będzie działać na tym porcie.
W przypadku PostgreSQL typowe jest używanie portu 5432, jeśli jest dostępny. Jeśli tak nie jest, większość instalatorów wybierze następny wolny port, zwykle 5433.
Możesz zobaczyć, co faktycznie działa za pomocą netstat
narzędzia (dostępne w systemach OS X, Windows i Linux, z różną składnią wiersza poleceń we wszystkich trzech).
Jest to dodatkowo skomplikowane w systemach Mac OS X przez okropny bałagan różnych pakietów PostgreSQL - starożytna wersja PostgreSQL firmy Apple wbudowana w system operacyjny, Postgres.app, Homebrew, Macports, instalator EnterpriseDB itp.
Kończy się tak, że użytkownik instaluje Pg i uruchamia serwer z jednego pakietu, ale używa klienta psql
i libpq
z innego pakietu. Zwykle dzieje się tak, gdy używają Postgres.app lub homebrew Pg i łączą się z tym, psql
który jest dostarczany z systemem operacyjnym. Nie tylko czasami mają one różne porty domyślne, ale Pg dostarczony z Mac OS X ma inną domyślną ścieżkę gniazda unixowego , więc nawet jeśli serwer działa na tym samym porcie, nie będzie nasłuchiwał tego samego gniazda unix.
Większość użytkowników komputerów Mac omija ten problem, używając po prostu tcp / ip z psql -h localhost
. W razie potrzeby możesz również określić port, np psql -h localhost -p 5433
. Możesz mieć uruchomionych wiele instancji PostgreSQL, więc upewnij się, że łączysz się z właściwą za pomocą select version()
i SHOW data_directory;
.
Możesz także określić katalog gniazda unixowego; sprawdź unix_socket_directories
ustawienia instancji PostgreSQL, z którą chcesz się połączyć i określ to psql -h
np psql -h /tmp
.
Czystszym rozwiązaniem jest poprawienie systemu PATH
tak, aby psql
i libpq
skojarzony z aktualnie używanym PostgreSQL był tym, co znajduje się jako pierwsze w PATH
. Szczegóły zależą od wersji systemu Mac OS X i zainstalowanych pakietów Pg. Nie używam Maca i nie mogę podać więcej szczegółów po tej stronie, nie spędzając więcej czasu niż jest to obecnie dostępne.
PGPORT
jest zdefiniowana: postgresql.org/docs/current/static/libpq-envars.html