/etc/services
ist nur eine Empfehlung, es ist eine Auflistung bekannter Häfen. Dies bedeutet nicht, dass tatsächlich etwas auf diesem Port ausgeführt wird oder dass der genannte Dienst auf diesem Port ausgeführt wird.
Im Fall von PostgreSQL ist es typisch, Port 5432 zu verwenden, wenn dieser verfügbar ist. Ist dies nicht der Fall, wählen die meisten Installateure den nächsten freien Port, normalerweise 5433.
Mit dem netstat
Tool können Sie sehen, was tatsächlich ausgeführt wird (verfügbar unter OS X, Windows und Linux, wobei die Befehlszeilensyntax in allen drei Bereichen variiert).
Dies wird auf Mac OS X-Systemen durch das schreckliche Durcheinander verschiedener PostgreSQL-Pakete noch komplizierter - Apples alte Version von PostgreSQL, die in das Betriebssystem, Postgres.app, Homebrew, Macports, das EnterpriseDB-Installationsprogramm usw. integriert ist.
Am Ende installiert der Benutzer Pg und startet einen Server aus einer Verpackung, verwendet jedoch den psql
und den libpq
Client aus einer anderen Verpackung. In der Regel tritt dies auf, wenn sie Postgres.app oder Homebrew Pg ausführen und eine Verbindung mit dem psql
mit dem Betriebssystem gelieferten herstellen. Diese haben nicht nur manchmal unterschiedliche Standardports, sondern die mit Mac OS X gelieferte Pg hat auch einen anderen Standard-Unix-Socket-Pfad . Selbst wenn der Server auf demselben Port ausgeführt wird, hört er nicht denselben Unix-Socket ab.
Die meisten Mac-Benutzer umgehen dies, indem sie nur tcp / ip mit verwenden psql -h localhost
. Bei Bedarf können Sie auch einen Port angeben, z psql -h localhost -p 5433
. Möglicherweise werden mehrere PostgreSQL-Instanzen ausgeführt. Stellen Sie daher sicher, dass Sie mit select version()
und eine Verbindung zur richtigen herstellen SHOW data_directory;
.
Sie können auch ein Unix-Socket-Verzeichnis angeben. Überprüfen Sie die unix_socket_directories
Einstellung der PostgreSQL-Instanz, zu der Sie eine Verbindung herstellen möchten, und geben Sie diese mit psql -h
z psql -h /tmp
.
Eine sauberere Lösung besteht darin, Ihr System PATH
so zu korrigieren, dass das psql
und libpq
das mit dem PostgreSQL verknüpfte System , das Sie tatsächlich ausführen, das ist, was zuerst auf dem System gefunden wird PATH
. Die Details dazu hängen von Ihrer Mac OS X-Version und den von Ihnen installierten Pg-Paketen ab. Ich benutze keinen Mac und kann auf dieser Seite nicht viel mehr Details anbieten, ohne mehr Zeit als derzeit verfügbar zu verbringen.
PGPORT
ist: postgresql.org/docs/current/static/libpq-envars.html