Anscheinend gibt es eine Datenbank "postgres", die standardmäßig bei jeder Installation des postgresql-Servers erstellt wird. Kann mir jemand sagen oder mich auf die Dokumentation verweisen, wofür es verwendet wird?
Antworten:
Es scheint, dass es nicht wirklich einen genau definierten Zweck hat. Laut den Dokumenten:
Das Erstellen eines Datenbankclusters besteht aus dem Erstellen der Verzeichnisse, in denen die Datenbankdaten gespeichert werden, dem Generieren der gemeinsam genutzten Katalogtabellen (Tabellen, die zum gesamten Cluster und nicht zu einer bestimmten Datenbank gehören) und dem Erstellen der Datenbanken "template1" und "postgres".
[...]
Die Postgres-Datenbank ist eine Standarddatenbank, die von Benutzern, Dienstprogrammen und Anwendungen von Drittanbietern verwendet werden kann.
(Quelle: http://www.postgresql.org/docs/current/app-initdb.html )
Wenn eine Clientanwendung eine Verbindung zu einem Postgres-Server herstellt, muss sie angeben, zu welcher Datenbank sie eine Verbindung herstellen möchte. Wenn Sie den Namen einer Datenbank nicht kennen (innerhalb des Clusters, der von dem Postmaster bedient wird, mit dem Sie eine Verbindung herstellen), können Sie mit dem folgenden Befehl eine Liste der Datenbanknamen finden:
psql -l
Wenn Sie diesen Befehl ausführen, stellt psql eine Verbindung zum Server her und fragt pg_database nach einer Liste von Datenbanknamen ab. Da psql jedoch eine Postgres-Clientanwendung ist, kann keine Verbindung zum Server hergestellt werden, ohne den Namen mindestens einer Datenbank zu kennen: Catch-22. Daher ist psql fest codiert, um beim Ausführen eine Verbindung zu einer Datenbank mit dem Namen "postgres" herzustellen. psql -l
In diesem Fall können Sie jedoch eine Vorlagendatenbank angeben:
psql -l -d template1
Es gibt auch die Datenbank template0, Ihr Sicherheitsnetz, wenn Sie alle anderen vermasseln.
postgres
Datenbank oder ähnliches. Wenn Sie beispielsweise einen Speicherauszug Ihrer Datenbank mit den Optionen zum Löschen und Neuerstellen Ihrer Anwendungsdatenbank erstellen, funktioniert dies nicht, wenn Sie versuchen, dieselbe Datenbank wiederherzustellen, da Sie mit der Datenbank verbunden sind, die Sie löschen und erstellen möchten .
In dem obigen Kommentar wurde gefragt: "Ist es sicher, die Postgres-Datenbank zu löschen, wenn Sie sie nicht verwenden?" - CMCDragonkai 22. Oktober 16 um 10:37 Uhr
Aus der PostgreSQL-Dokumentation
Nach der Initialisierung enthält ein Datenbankcluster eine Datenbank mit dem Namen postgres, die als Standarddatenbank für Dienstprogramme, Benutzer und Anwendungen von Drittanbietern gedacht ist. Für den Datenbankserver selbst muss die Postgres-Datenbank nicht vorhanden sein, aber viele externe Dienstprogramme gehen davon aus, dass sie vorhanden ist.
[Hinweis: Ein Datenbankcluster ist eine Sammlung von Datenbanken, die von einer einzelnen Instanz eines laufenden Datenbankservers verwaltet werden.]
Wenn Sie beim Erstellen neuer Datenbanken mehrere Datenbankverbindungen verwenden, können nicht alle Verbindungen zu template1
oder hergestellt werden template0
.
Postgresql gibt einen Fehler aus, wenn andere Verbindungen auf die Quell-DB beim Erstellen einer neuen DB zugreifen.
Zum Erstellen neuer DBs ist es daher besser, eine Verbindung herzustellen postgres
.
postgres
Datenbank zu löschen, wenn Sie sie nicht verwenden?