2010-03-03 16 views

risposta

28

Sembra che non abbia davvero uno scopo ben definito. Secondo i documenti:

Creazione di un cluster di database consiste nella creazione delle directory in cui i dati del database vivranno, generando le tabelle di catalogo condivise (tabelle che appartengono all'intero cluster anziché a un determinato database) e creare i database "template1" e "postgres".

[...]

Il database Postgres è un database predefinito significato per l'utilizzo da parte degli utenti, utility e applicazioni di terze parti.

(Fonte: http://www.postgresql.org/docs/8.2/interactive/app-initdb.html)

25

C'è anche il template0 banca dati, la vostra rete di sicurezza quando si fallisce tutti gli altri.

  1. postgres è il database predefinito a connettersi con.
  2. template1 è predefinita per creazione di nuovi database, questi sono creato proprio come template1
  3. template0 è utile quando template1 è danneggiato (impostazioni errate, ecc) e non volete spendere un sacco di tempo per sistemare questo. Basta rilasciare template1 e creare un nuovo modello1 usando il modello di database0.
+5

È sicuro eliminare il 'postg res' database se non lo stai usando? – CMCDragonkai

67

Quando un'applicazione client si connette a un server Postgres, deve specificare il database a cui desidera connettersi. Se non si conosce il nome di un database (all'interno del cluster servito da postmaster a cui ci si connette), è possibile trovare un elenco di nomi di database con il comando:

psql -l 

Quando si esegue questo comando, psql si connette al server e interroga pg_database per un elenco di nomi di database. Tuttavia, poiché psql è un'applicazione client Postgres, non può connettersi al server senza conoscere il nome di almeno un database: Catch-22. Quindi, psql è hardcoded per connettersi a un database chiamato "postgres" quando si esegue "psql -l".

-- Korry 
0

Se si utilizzano più connessioni al database durante la creazione di nuovi database, quindi tutte le connessioni non può essere fatto per template1 o template0.

Postgresql genera un errore se il DB di origine durante la creazione di un nuovo DB è accessibile da altre connessioni.

Quindi per creare nuovi DB è preferibile collegare postgres.

enter image description here

0

Il commento di cui sopra ha chiesto: "E 'sicuro per eliminare il database Postgres se non lo si utilizza?"- CMCDragonkai 22 ottobre '16 a 10:37

Dalla documentazione di PostgreSQL 9.3.3:

Dopo l'inizializzazione, un cluster di database conterrà un database denominato Postgres, che si propone come un database predefinito per l'utilizzo da parte utilità, utenti e applicazioni di terze parti Il server di database non richiede il database postgres, ma molti programmi di utilità esterni presumono che esista

[Nota: un cluster di database è una raccolta di database gestita da un singola istanza di un server di database in esecuzione.]

Problemi correlati