Wenn eine Client-Anwendung eine Verbindung zu einem Postgres-Server herstellt, muss sie angeben, mit welcher Datenbank sie sich verbinden möchte. Wenn Sie den Namen einer Datenbank nicht kennen (innerhalb des Clusters, der von dem Postmaster bedient wird, zu dem Sie sich verbinden), können Sie mit dem Befehl:
eine Liste der Datenbanknamen findenpsql -l
Wenn Sie diesen Befehl ausführen, stellt psql eine Verbindung zum Server her und fragt pg_database nach einer Liste mit Datenbanknamen ab. Da psql jedoch eine Postgres-Clientanwendung ist, kann es keine Verbindung zum Server herstellen, ohne den Namen mindestens einer Datenbank zu kennen:Catch-22. psql ist also fest codiert, um eine Verbindung zu einer Datenbank namens „postgres“ herzustellen, wenn Sie psql -l
ausführen , aber Sie können in diesem Fall eine Vorlagendatenbank angeben:
psql -l -d template1