Dopo aver visto come installare e configurare PHP, ora è il turno di MySQL server, un Relational Database Management System (RDBMS) tra i più diffusi e performanti. Installiamolo sul nostro Ubuntu Server assieme ai pacchetti di integrazione per PHP, digitando il seguente comando:
sudo apt-get install mysql-server php5-mysql
Durante l’installazione ci verrà chiesto di indicare la password dell’utente amministrativo root e di confermarla.
Configurare MySQL
Dopo aver installato MySQL, andiamo a vedere la sua configurazione di base.
Per prima cosa vediamo l’accesso a MySQL partendo dal terminale. È disponibile infatti una console MySQL che consente di gestirlo completamente tramite riga di comando. Per connetterci al server MySQL appena installato, lanciamo il seguente comando:
mysql -u root -p
dopo aver dato invio ci verrà chiesta la password (impostata durante l’installazione): inseriamola e saremo collegati alla console. Per collegarci da una postazione remota dovremo aggiungere il parametro -h seguito dall’indirizzo IP o dall’hostname, in questo modo:
mysql -u root -p -h <em>indirizzo_ip</em>
A questo punto siamo loggati nella console e possiamo iniziare ad operare.
Testiamo, quindi, una prima istruzione: nel nostro caso chiederemo al DBMS di mostrare un elenco dei database presenti. Questa l’istruzione da lanciare:
mysql> show databases;
Questo è l’elenco che ci viene mostrato:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
In merito all’interazione con MySQL è necessario conoscere il linguaggio SQL per il quale vi rimando alla Guida MySQL che trovate sempre su questo sito.
Una volta concluse le operazioni sui database possiamo uscire dalla console. Per farlo diamo il comando:
mysql> quit;
il file my.cnf
Ora che abbiamo visto come funziona (a grandi linee) la console, approfondiamo le impostazioni di MySQL. Anche MySQL infatti ha un file di configurazione e lo possiamo trovare qui:
/etc/mysql/my.cnf
Attraverso di esso vengono specificate alcune configurazioni che, a meno di particolari esigenze, possiamo lasciare invariate.
Soffermiamoci però sulla connessione al database. Di default al momento dell’installazione MySQL accetta connessioni sulla porta 3306 solo dal localhost. Questo è ottimo per la sicurezza dei nostri dati ma è un problema se il database deve essere interrogato da un sito o un’applicazione che risiede su un server differente. Per consentire quindi connessioni remote, o anche della stessa lan, dobbiamo andare sul file my.cnf a modificare il parametro bind-address che definisce su quale IP stare in ascolto. L’opzione di default è questa:
bind-address = 127.0.0.1
Per accettare connessioni remote possiamo, semplicemente, commentare questa istruzione anteponendole un cancelletto:
# bind-address = 127.0.0.1
Se, invece, vogliamo accettare esclusivamente connessioni provenienti da un dato IP (ad esempio 123.123.123.123) possiamo sostituire la riga in questo modo:
bind-address = 123.123.123.123
Fatto ciò dovremo abilitare uno o più utenti alla connessione e per farlo dobbiamo entrare nella console di MySQL e utilizzare il comando GRANT:
mysql> GRANT ALL privileges ON nome_db.* TO 'utente'@'Indirizzo_IP' IDENTIFIED BY 'password_utente';
In questo modo abbiamo abilitato utente a collegarsi dal suo indirizzo_IP al database nome_DB usando la sua password. Ovviamente utente, password e database devono essere già presenti su MySQL.
Per rendere effettive le nuove configurazioni dobbiamo prima ricaricare i privilegi di connessione e utilizzo attraverso il comando:
mysql> FLUSH PRIVILEGES;
Una volta terminato il lavoro sul file my.cnf usciamo dalla console:
mysql> quit;
e riavviamo il servizio MySQL:
sudo service mysql restart
phpMyAdmin
Naturalmente dalla console è possibile amministrare per intero il server MySQL (rimando, ancora una volta, alla guida dedicata), ma potrebbe esserci utile avere a disposizione uno strumento che ci consenta di gestire i nostri database in maniera più immediata, senza la necessità di ricordarci tutti i comandi della console dedicata, ma usufruebndo di una semplice interfaccia grafica.
Esiste un software che fa tutto questo, scritto con il linguaggio PHP che abbiamo appena installato: PhpMyAdmin è un software open source che ci permette di gestire i database MySQL (locali o remoti) tramite una semplice interfaccia web. Attraverso PhpMyAdmin possiamo comodamente eseguire tutte le operazioni di amministrazione del nostro database come ad esempio: manutenzione delle tabelle, dei dati e dei backup. È comodo anche per le interrogazioni SQL che, venendo effettuate in un ambiente grafico, rendono più facilmente leggibili i risultati. Per installarlo è sufficiente lanciare il comando:
sudo apt-get install phpmyadmin
durante l’installazione ci verrà chiesto quale web server vogliamo configurare automaticamente per PhpMyAdmin. Ovviamente nel nostro caso spuntiamo, tramite la bara spaziatrice, la voce apache2 e diamo ok:
Successivamente lasciamo che sia il tool dbconfig-common a configurare per noi il database necessario a phpmyadmin:
Digitiamo poi la password di amministratore (root) di MySQL inserita al momento della sua installazione:
Infine inseriamo e confermiamo la password di amministratore di PhpMyAdmin:
Al termine dell’installazione Apache leggerà la configurazione di PhpMyAdmin automaticamente, andando a aggiungere il file di configurazione qui:
/etc/apache2/conf-enabled/phpmyadmin.conf
Fatto questo, PhpMyAdmin è già installato e si è già interfacciato alla nostra installazione MySQL avendone ricevuto la password di amministrazione. Accediamoci quindi via browser:
http://IP_DEL_SERVER/phpmyadmin/
Eseguiamo l’accesso con la password indicata in precedenza e ci troveremo all’interno del pannello di gestione:
Come potete notare nel menù di sinistra sono indicati i database che avevamo visto prima, con in più quello creato per se stesso da PhpMyAdmin. Tramite i menù grafici potrete gestire in modo intuitivo i vostri database. Attenzione però a non prendere alla leggera questa facilità di manovra, il software agisce direttamente sui database pertanto le operazioni fatte non sono reversibili!