Installa postgresql. Perché initdb non è disponibile?


15

Sto seguendo queste istruzioni , tuttavia posso solo andare al punto 17.2.

Nonostante l'installazione di postgresql con successo tramite

sudo apt-get install postgresql

comando, dopo l'esecuzione

initdb -D /usr/local/pgsql/data

Ubuntu mi dice che "initdb" non è installato. Le istruzioni indicano che questo comando è installato da

sudo apt-get install postgresql

quindi cosa sta succedendo? Posso rendere disponibile initdb installando postgres-xc, ma penso che postgres-xc sia solo una strana spazzatura di terze parti e non è dettagliata nelle istruzioni. Qualche idea?

Risposte:


14

initdbè progettato per essere eseguito con l'account utente postgres creato durante l'installazione. Dopo aver installato postgresql puoi fare:

sudo su - postgres

Quindi dovresti essere in grado di eseguire initdb.


4
Citando da /usr/share/doc/postgresql-common/README.Debian.gz:Please note that you can of course also use the upstream tools for creating clusters, such as initdb(1). However, please note that in this case you cannot expect *any* of above pg_* tools to work, since they use different configuration settings and file locations. If in doubt, then do *not* use initdb, but only pg_createcluster. Since merely installing postgresql-X.Y will already set up a default cluster which is ready to work, most people do not need to bother about initdb or pg_createcluster at all.
cdaddr,

3
Anche dopo essere passato all'utente di Postgres ricevo ancora questo errore
Ruota dentata

Questo non funziona per me in Ubuntu Server 14 usando Postgres 9.6.
sudo,

Non funziona, dal momento che initdbè in /usr/lib/postgresql/X.X/bin/.
Li Dong,

27

Troverai initdbsotto /usr/lib/postgresql/x.y/bin/. Vedi anche /usr/share/doc/postgresql-common/README.Debian.gzper maggiori informazioni sulla configurazione su Debian e Ubuntu.


Questa dovrebbe davvero essere la risposta accettata. initdbè il comando sottostante ma gli utenti Debian e Ubuntu dovrebbero usare pg_createcluster e la relativa suite di comandi. Inoltre, normalmente non è necessario initdbOR pg_createclusterdopo apt-get install postgresqlperché l'installazione standard crea già un cluster predefinito, con un server e database predefiniti / modello, per te. Il README menzionato da Peter sopra vale la pena leggere.
cdaddr,

2
@cdaddr No, di solito non è necessario dopo l'installazione di Postgres. Tuttavia, se ti trovi nella necessità di ricreare rapidamente un cluster e non vuoi preoccuparti di reinstallare Postgres o se devi inizializzare un nuovo database in una posizione non standard, questo può tornare utile. Quindi sì, questa è un'ottima risposta.
Erathiel,

1
Lavori. Ed è il migliore perché in questo modo posso essere sicuro di quale versione sto usando.
sudo,

stiamo cercando initdb perché, il tutorial dice così postgresql.org/docs/10/static/creating-cluster.html
nerkn

2

initdbnon è installato come eseguibile dall'utente. È installato solo in /usr/lib/postgresql/X.X/bin/, perché dipende sempre dalla versione. initdbpuò essere eseguito solo da quella directory specifica.

Come menzionato in altre risposte, l'installazione di postgres crea una directory predefinita che può trovarsi in una partizione limitata. Gli utenti potrebbero voler cambiare questo, ma richiede anche altri passaggi. vedi qui .


-2

seguire la seguente procedura dalla radice 1.passwd postgres la password quindi 2.su postgres 3.psql 4. creare l'utente con il proprio nome utente come "CREATE USER SAM;" 5.creare database sam; ora disconnetti 6.type psql per il tuo utente


Questa risposta non affronta direttamente la domanda.
cdaddr,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.