/etc/servicesist 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 netstatTool 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 psqlund den libpqClient aus einer anderen Verpackung. In der Regel tritt dies auf, wenn sie Postgres.app oder Homebrew Pg ausführen und eine Verbindung mit dem psqlmit 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_directoriesEinstellung der PostgreSQL-Instanz, zu der Sie eine Verbindung herstellen möchten, und geben Sie diese mit psql -hz psql -h /tmp.
Eine sauberere Lösung besteht darin, Ihr System PATHso zu korrigieren, dass das psqlund libpqdas 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.
PGPORTist: postgresql.org/docs/current/static/libpq-envars.html