PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come configurare Postgresql per la prima volta?

Le altre risposte non sono state completamente soddisfacenti per me. Ecco cosa ha funzionato per postgresql-9.1 su Xubuntu 12.04.1 LTS.

  1. Connettiti al database predefinito con l'utente postgres:

    sudo -u postgres psql template1

  2. Imposta la password per l'utente postgres, quindi esci da psql (Ctrl-D):

    ALTER USER postgres con password crittografata 'xxxxxxx';

  3. Modifica il pg_hba.conf file:

    sudo vim /etc/postgresql/9.1/main/pg_hba.conf

    e cambia "peer" in "md5" nella riga relativa a postgres:

    locale      tutti     postgres pari md5

    Per sapere quale versione di postgresql stai utilizzando, cerca la cartella della versione in /etc/postgresql . Inoltre, puoi utilizzare Nano o un altro editor invece di VIM.

  4. Riavvia il database :

    sudo /etc/init.d/postgresql restart

    (Qui puoi verificare se ha funzionato con psql -U postgres ).

  5. Crea un utente con il tuo stesso nome (per trovarlo, puoi digitare whoami ):

    sudo createuser -U postgres -d -e -E -l -P -r -s <my_name>

    Le opzioni dicono a postgresql di creare un utente che può accedere, creare database, creare nuovi ruoli, è un superutente e avrà una password crittografata. Quelli veramente importanti sono -P -E, in modo che ti venga chiesto di digitare la password che verrà crittografata, e -d in modo da poter eseguire un createdb .

    Attenzione alle password :ti chiederà prima due volte la nuova password (per il nuovo utente), ripetuta, e poi una volta la password postgres (quella specificata al punto 2).

  6. Di nuovo, modifica il pg_hba.conf file (vedi passaggio 3 sopra) e cambia "peer" in "md5" nella riga relativa a "tutti" gli altri utenti:

    locale      tutti     tutti pari md5

  7. Riavvia (come nel passaggio 4) e verifica di poter accedere senza -U postgres:

    modello psql1

    Nota che se esegui un semplice psql , fallirà poiché proverà a connetterti a un database predefinito con il tuo stesso nome (ad esempio whoami ). template1 è il database dell'amministratore presente dall'inizio.

  8. Ora createdb <dbname> dovrebbe funzionare.