PhpMyAdmin è un tool che permette di gestire l'amministrazione di database MySQL.
Scritto in linguaggio PHP permette di gestire tramite web browser i database contenuti in un server mySQL.
Tra le varie operazioni che si posso compiere con phpMyAdmin:
- creare o cancellare database;
- creare, copiare, cancellare, rinominare e modificare tabelle;
- manutenere le tabelle;
- rimuovere, modificare ed aggiungere campi;
- eseguire qualsiasi istruzione SQL, anche queries in modalità batch;
- gestire le chiavi (key) nei campi;
- caricare file di testo all'interno delle tabelle;
- creare e leggere dump (backup su file) di tabelle;
- esportare dati in formato CSV, XML e Latex;
- amministrare server multipli;
- gestire utenti e privilegi MySQL;
- verificare l'integrità referenziale delle tabelle in MyISAM;
- usare la modalità Query-by-example (QBE), per la creazione automatica di complesse queries collegando le tabelle richieste;
- creare PDF grafici del layout del Database;
- eseguire ricerche globali all'interno del database o in un sottoinsieme di quest'ultimo;
- trasformare i dati salvati in qualsiasi formato utilizzando un set di funzioni predefinite;
- supportare le tabelle e le chiavi esterne (straniere) InnoDB;
- offrire un'interfaccia grafica in 44 differenti lingue;
Tre le caratteristiche interessanti, il supporto multiutente, il quale permette di accedere a un database solo dopo autenticazione (http o cookie) e secondo i permessi dati all'utente sul server MySQL.
INSTALLAZIONE
Il download dei sorgenti può essere fatto dal sito www.phpmyadmin.net:
root@Joker:/opt# wget --passive http://heanet.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.5.6.tar.gz
--11:55:10-- http://heanet.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.5.6.tar.gz
=> `phpMyAdmin-2.5.6.tar.gz'
Resolving heanet.dl.sourceforge.net... done.
Connecting to heanet.dl.sourceforge.net[193.1.219.87]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1,847,302 [application/x-gzip]
100%[==================================================================================>] 1,847,302 3.42K/s ETA 00:00
12:04:02 (3.42 KB/s) - `phpMyAdmin-2.5.6.tar.gz' saved [1847302/1847302]
A questo punto è sufficiente scompattare il contenuto dell'archivio compresso nella document root del webserver in cui si vuole far girare il tool:
root@Joker:/home/homerweb# tar xvfz phpMyAdmin-2.5.6.tar.gz
phpMyAdmin-2.5.6/
phpMyAdmin-2.5.6/css/
phpMyAdmin-2.5.6/css/phpmyadmin.css.php
phpMyAdmin-2.5.6/Documentation.txt
phpMyAdmin-2.5.6/CREDITS
phpMyAdmin-2.5.6/ChangeLog
phpMyAdmin-2.5.6/Documentation.html
...
phpMyAdmin-2.5.6/scripts/decode_bug.php
phpMyAdmin-2.5.6/scripts/extchg.sh
phpMyAdmin-2.5.6/scripts/inno2pma.sh
phpMyAdmin-2.5.6/scripts/remove_control_m.sh
phpMyAdmin-2.5.6/RELEASE-DATE-2.5.6
CONFIGURAZIONE BASE
Una minima configurazione di base consiste nel settare nel file config.inc.php
l'indirizzo di PhpMyAdmin sul web server, nella variabile $cfg['PmaAbsoluteUri']
. Quindi, per un utilizzo multiente è necessario modificare le variabili $cfg['Servers'][$i]['auth_type']
e $cfg['Servers'][$i]['user']
che identificano rispettivamente il tipo di connessione e l'utente di MySQL di default.
root@Joker:/home/homerweb/phpMyAdmin# cat config.inc.php
...
$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)? (default is config)
$cfg['Servers'][$i]['user'] = ''; // MySQL user (default is root)
...
Impostando l'autenticazione ad http e lasciando vuoto il campo user, connettendosi via browser verrà richiesto user e la password. In questo modo ogni utente avrà accesso solo secondo i permessi impostati in MySQL.
I prerequisiti per l'installazione sono: una versione di PHP 4.1.0 o superiore, di MySql Server versione 3.23.32 o superiore e di un browser.
PhpMyAdmin è un progetto composto da pagine PHP che permettono di interagire con un server MySQL. Il punto di forza di questo client basato sul web è dato dal fatto che, una volta installato e configurato correttamente, ci permette di accedere ai database da qualsiasi sistema operativo tramite un semplice browser. L'interfaccia grafica è inoltre molto intuitiva, in diversi linguaggi e continuamente aggiornata grazie al contributo di diversi utlizzatori/programmatori che contribuiscono a questo progetto Open Source.
Una volta scaricata la distribuzione da www.phpmyadmin.net (questa introduzione è stata scritta basandosi sulla versione 2.5.5), non ci resta altro che pubblicarli sul nostro server web e procedere alla configurazione del tool per l'accesso al nostro database server MySQL.
Il file in cui sono inserite i dati delle connessioni, oltre a molti altri parametri di configuriazione è config.inc.php
dove dovremo indicare immediatamente la URL della nostra installazione modificando il valore di $cfg['PmaAbsoluteUri']
= "http://localhost/phpMyAdmin/";
I parametri sono gestiti come un array multidimensionale $cfg
, quelli che più interessano sono sicuramente quelli che indicano dove si trova il database server e quale utente dovrà essere utilizzato per la connessione, in pratica dovremo impostare almeno questi dati:
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
nell'esempio ci si riferisce alla configurazione standard (e quindi non raccomandata per applicazioni reali) di MySQL che prevede ad esempio un utente root senza password.
Per verificare l'installazione utilizziamo un browser per connetterci a http://localhost/phpMyAdmin.
Ci accoglie una pagina di benvenuto in cui si può notare immediatamente la presenza di 3 frame:
- la parte sinistra in alto, in cui avremo sempre l'elenco dei database e delle tabelle visibili dall'utente che stiamo utilizzando
- la parte sinistra in basso, con un link che ci serve per aprire un pop-up utilizzabile per inviare query
- la parte centrale, che ci permette di svolgere la maggior parte delle funzioni e che ci mostra una serie di link che ci offrono la possibilità di visualizzare informazioni legate alla particolare installazione di MySQL, di riavviare il server stesso oppure di vedere la situazione degli utenti etc.
Notiamo come siano presenti due database mysql e test. Il primo contiene la definizione degli utenti e dei privilegi associati e può essere visto quindi come un database di sistema (se ne sconsiglia vivamente la modifica), mentre il secondo è liberamente modificabile.
Partiamo quindi con la creazione di un nuovo database: corso_php.
Da notare come ci vengano sempre mostrate le istruzioni SQL che svolgono le operazioni che abbiamo richiesto, questo può essere utile quando si debba inserire query SQL nel codice.
Ora possiamo creare delle tabelle che ci serviranno per immagazzinare in modo logico i dati della nostra applicazione.
La pagina successiva ci serve per definire gli attributi degli oggetti che manterremo nella struttura, in linea di massima si tratta di definire i nomi e la tipologia dei campi da cui saranno formati i nostri record.
Cliccando nel frame di sinistra sul nome della tabella viene mostrata la struttura della stessa e lo spazio disco occupato dai dati nonchè informazioni statistiche sugli accessi ai dati. Da questa pagina è possibile inserie o cancellare i campi, le chiavi e gli indici.
Possiamo anche eseguire delle query direttamente inserendo il coedice nella apposita textarea oppure caricare e fare eseguire un file di testo di istruzioni SQL oppure caricare direttamente i dati presenti in un file di tipo CSV.
Possiamo anche inserire direttamente un record (INSERISCI) oppure scaricare (ESPORTA) la struttura e/o i dati della tabella per poterli cosi inserire in un altro database o semplicemente per mantenere un backup degli stessi.
Tramite OPERAZIONI è possibile rinominare la tabella, copiarla o addirittura spostarla (compresi i dati) in un altro database.