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
Sistema – Amministrazione – Gestore 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
- Cliccare sul tab Drivers
- Doppio click su PostgreSQL per aprire il pannellino Change Driver: PostgreSQL
- Cliccare sul tab Extra Class Path e poi su Add
- 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.