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 da questo URL.
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.