Prosegue la panoramica sulla procedura di installazione e configurazione dei più popolari DBMS (DataBase Management System). Nelle scorse puntate abbiamo già visto come installare MySQL su Windows e Linux, sia come servizio che come server stand-alone, usando XAMPP o EasyPHP. Abbiamo anche visto come installare Oracle su Windows e PostgreSQL su Linux: oggi concludiamo il percorso vedendo la procedura di installazione e configurazione di PostgreSQL su Windows.

Installazione

Iniziamo con scaricare PostgreSQL qui.

Alla data di questo articolo, la sezione download di PostgreSQL ci offre due possibilità: il one click installer e un file zip da scaricare. Scegliamo l'opzione one click installer per scaricare il file di setup, che dovrebbe avere un nome del tipo

postgresql-<versione>-windows-x<architettura CPU>.exe

ad esempio

postgresql-9.1.3-1-windows-x64.exe

eseguiamo il file per lanciare il wizard di installazione. Confermiamo tutte le impostazioni di default, facendo attenzione a due passaggi

  • Directory di installazione: se abbiamo spazio abbondante su disco, confermiamo la scelta di default. Un'alternativa può essere quella di installare il database sulla partizione dedicata ai dati (solitamente D:\), per non consumare spazio sulla partizione principale (C:\)
  • Superuser: ricordiamoci la password che inseriamo per lo superuser, perché ci servirà dopo. La creazione di un superutente significa che a fine installazione avremo a disposizione uno superuser avente nome postgres e la password da noi assegnata

Al termine dell'installazione ci verrà detto dove trovare il log dell'operazione, che dovrebbe essere un percorso come questo

 C:\Users\<nome computer>\AppData\Local\Temp

Un problema abbastanza frequente, quando si installa PostgreSQL su Windows, è la comparsa di un errore di questo tipo nel file di log

Installing the adminpack module in the postgres database...

Executing 'C:\Users\L500\AppData\Local\Temp\radB00EC.bat'...

psql: FATAL: the database system is starting up

Failed to install the 'adminpack' module in the 'postgres' database

loadmodules.vbs ran to completion

La causa del problema sembra essere la mancata sincronizzazione tra il processo di setup e l'avvio del database, per cui il setup non riesce a connettersi al database (da cui la risposta system is starting up), o meglio: cerca di connettersi troppo presto, quando il database sta ancora eseguendo il primo avvio.

L'errore non dovrebbe essere bloccante, nella maggior parte dei casi possiamo lavorare anche senza l'adminpack. Se invece ci serve anche questo componente, possiamo provare a completare l'installazione a riga di comando. Dobbiamo spostarci nella directory dove abbiamo installato PostgreSQL, ad esempio

D:\app\PostgreSQL\installer\server

Ed eseguire manualmente il comando loadmodules.vbs (quello che ha fallito durante il setup)

loadmodules.vbs postgres <pwd> D:\app\PostgreSQL D:\app\PostgreSQL\Data 5432

dove al posto di <pwd> dovremo inserire la password che abbiamo specificato nel wizard.

Configurazione

Il setup one click installer per Windows contiene anche pgAdmin, che è l'applicazione standard per aprire un client visuale e compiere le ordinarie attività che si servono. Lanciando pgAdmin possiamo collegarci al database locale, che dovrebbe essere in ascolto sull'indirizzo

localhost:5432

per collegarci usiamo l'utente postgres con la password che abbiamo specificato durante l'installazione. Qui possiamo configurare il database come preferiamo, creare un nuovo database e iniziare a lavorare sin da subito.

Concludiamo osservando che PostgreSQL risulterà installato come servizio. Se vogliamo controllare il suo stato ci basterà aprire il pannello di controllo, selezionare la sezione Visualizza servizi locali e cercare una voce del tipo

postgresql-x<architettura CPU>-<versione>

qui, se vogliamo, possiamo impostare il servizio su manuale anziché automatico, in modo da poter avviare e arrestare il database a nostro piacimento. Se vogliamo lavorare in questo modo ricordiamoci però che la configurazione sarà effettiva solo dopo aver riavviato la macchina: durante l'installazione PostgreSQL sarà avviato dal wizard senza notificarlo al gestore dei servizi, per cui il servizio potrebbe risultare arrestato anche se il database sta girando! Per toglierci ogni dubbio riavviamo Windows e tutto dovrebbe mettersi a posto.