PostgreSQL è tra i database relazionali open source più apprezzati, assieme a MySQL. Negli ultimi anni le differenze tra PostegreSQL e MySQL si sono ridotte notevolmente, tanto che si parla di convergenza tra le due opzioni. Oggi vedremo come installare e configurare PostgreSQL su una macchina Linux. Per semplicità useremo come riferimento la procedura di installazione su Ubuntu.

Possiamo iniziare dal pannello di amministrazione

SistemaAmministrazioneGestore pacchetti

oppure procedere a linea di comando

sudo apt-get install postgresql

Terminata l'installazione ci colleghiamo al client

sudo -u postgres psql postgres

Qui andiamo a modificare la password di accesso al database, tramite il comando

\password postgres

Questo basta e avanza per lavorare in locale. Se invece vogliamo abilitare il collegamento al database da macchine diverse (sia in LAN che in WAN), dovremo editare il file di configurazione, ad esempio

cd /etc/postgresql/8.4/main/

sudo gedit postgresql.conf

e cercare la riga

#listen_addresses = 'localhost'

Che cambiamo come segue

listen_addresses = '*'

Questo per poter lavorare qualsiasi sia la tipologia di IP assegnata al server. A questo punto dobbiamo anche specificare da quali reti accetteremo connessioni. Sempre nella cartella main di postgreSQL editiamo il file

sudo gedit pg_hba.conf

E cerchiamo la riga

# IPv4 local connections:

host all all 127.0.0.1/32 md5

Qui indichiamo le sottoreti che possono accedere al nostro database server. Per includere anche una LAN del tipo 192.168.1.x aggiungeremo una riga del tipo (submask inclusa):

# IPv4 local connections:

host all all 127.0.0.1/32 md5

host all all 192.168.1.0/16 md5

Adesso possiamo finalmente far ripartire il server, eseguendo

sudo service postgresql restart

e collegarci al DB scegliendo un qualsiasi client visuale, come ad esempio pgAdmin oppure Squirrel. Se usiamo Squirrel dovremo scaricare il driver JDBC, ad esempio da qui

http://jdbc.postgresql.org/

e poi aggiungere il driver in questo modo

  1. Cliccare sul tab Drivers
  2. Doppio click su PostgreSQL per aprire il pannellino Change Driver: PostgreSQL
  3. Cliccare sul tab Extra Class Path e poi su Add
  4. Cercare il driver nel file system e confermarlo cliccando su Open

Dopodiché potremo collegarci al DBMS usando la connect string

jdbc:postgresql:postgres:5432

oppure

jdbc:postgresql://localhost:5432/postgres

usando lo user postgres e la password che abbiamo specificato prima. Da Squirrel (o dal client) possiamo facilmente creare un nuovo database usando il comando

CREATE DATABASE prova;

e quindi aprire una nuova connessione al nostro database

jdbc:postgresql://localhost:5432/prova

Se vogliamo, possiamo di nuovo collegarci al client (da shell) ed eseguire il comando \l per listare tutti i database disponibili, per verificare di avere creato correttamente il database prova. Infine creiamo un utente, ad esempio

CREATE USER pippo PASSWORD 'ciao';

anche qui, se vogliamo, possiamo verificare la creazione dell'utente dal client, usando il comando \du, che dovrebbe ritornare qualcosa del genere

Nome ruolo | Attributi | Membro di

------------+--------------+-----------

pippo | | {}

postgres | Superuser | {}

informazioni che possiamo recuperare anche via SQL

select * from pg_user;

Abbiamo finito! PostgreSQL è up and running, non resta che creare le tabelle che ci servono e iniziare a prendere confidenza con lo strumento.