sql >> Database >  >> RDS >> PostgreSQL

postgresql-poortverwarring 5433 of 5432?

/etc/services is slechts adviserend, het is een lijst van bekende poorten. Het betekent niet dat er daadwerkelijk iets op die poort draait of dat de genoemde service op die poort zal draaien.

In het geval van PostgreSQL is het gebruikelijk om poort 5432 te gebruiken als deze beschikbaar is. Als dit niet het geval is, zullen de meeste installateurs de volgende vrije poort kiezen, meestal 5433.

U kunt zien wat er daadwerkelijk wordt uitgevoerd met behulp van de netstat tool (beschikbaar op OS X, Windows en Linux, waarbij de syntaxis van de opdrachtregel voor alle drie varieert).

Dit wordt verder bemoeilijkt op Mac OS X-systemen door de verschrikkelijke puinhoop van verschillende PostgreSQL-pakketten - Apple's oude versie van PostgreSQL ingebouwd in het besturingssysteem, Postgres.app, Homebrew, Macports, het EnterpriseDB-installatieprogramma, enz.

Wat er uiteindelijk gebeurt, is dat de gebruiker Pg installeert en een server start vanuit één verpakking, maar de psql gebruikt en libpq klant uit een andere verpakking. Meestal gebeurt dit wanneer ze Postgres.app of homebrew Pg gebruiken en verbinding maken met de psql die bij het besturingssysteem is geleverd. Deze hebben niet alleen soms verschillende standaardpoorten, maar de Pg die bij Mac OS X is geleverd, heeft een ander standaard Unix-socketpad , dus zelfs als de server op dezelfde poort draait, luistert hij niet naar dezelfde Unix-socket.

De meeste Mac-gebruikers omzeilen dit door gewoon tcp/ip te gebruiken met psql -h localhost . U kunt indien nodig ook een poort specificeren, bijv. psql -h localhost -p 5433 . Mogelijk hebt u meerdere PostgreSQL-instanties actief, dus zorg ervoor dat u verbinding maakt met de juiste door select version() te gebruiken en SHOW data_directory; .

U kunt ook een unix-socketdirectory specificeren; controleer de unix_socket_directories instelling van de PostgreSQL-instantie waarmee u verbinding wilt maken en specificeer die met psql -h , bijv.psql -h /tmp .

Een schonere oplossing is om uw systeem PATH te corrigeren zodat de psql en libpq geassocieerd met de PostgreSQL die u daadwerkelijk gebruikt, is wat het eerst wordt gevonden op het PATH . De details hiervan zijn afhankelijk van uw Mac OS X-versie en welke Pg-pakketten u hebt geïnstalleerd. Ik gebruik geen Mac en kan aan die kant niet veel meer details geven zonder meer tijd te besteden dan momenteel beschikbaar is.



  1. Hoe PII te vinden en te maskeren in Elasticsearch

  2. SQLite DROP TABLE

  3. Zullen ANSI JOIN-query's anders presteren dan niet-ANSI JOIN-query's?

  4. Kolom toevoegen of verwijderen met behulp van GUI in SQL Server - SQL Server / T-SQL-zelfstudie, deel 39