Premier Training & Business Partner Red Hat

Basi di MySQL per la creazione di un ambiente LAMP ( Linux Apache MySQL PHP )

Michele Milaneschi
Ti piacerebbe diventare anche tu uno di noi e
pubblicare i tuoi articoli nel blog degli RHCE italiani?

MySQL è il database relazionale maggiormente diffuso che si basa sul linguaggio SQL.

Per database relazionale o anche detto RDBMS si intende una struttura di dati organizzata secondo tabelle che sono in relazione tra di loro.
Ogni tabella ha al suo interno degli attributi che vengono usati per dividere le informazioni che si devono inserire riguardanti una certa cosa:

Ad esempio se parliamo di un elenco di persone generico le loro informazioni ( parlando di database si chiamano “attributi” ) che potrebbero essere cognome, sesso, data di nascita, ecc vengono inserite in una tabella che potremmo chiamare Persone organizzandole secondo dei criteri ben precisi.
Ogni riga relativa all’inserimento di un utente con tutte le sue informazioni viene chiamata “tupla”.

mysql2

SQL invece è il linguaggio standard di interrogazione del DataBase.

Quando parliamo di database è importate anche chiarire il concetto di DBMS.

Mentre il DataBase rappresenta la struttura dove i dati risiedono il DBMS possiamo considerarlo il motore del database ossia colui che appoggiandosi al sistema operativo e ad altri applicativi consente tramite interfaccia di gestire i dati all’interno del database: dalla creazione alla loro manipolazione e all’interrogazione.

Un esempio di DBMS riferito a MySQL potrebbe essere phpMyAdmin.

 

Il MySQL ha una parte client che puo essere usata per connettersi al database in mancanza o alternativamente al DBMS e una parter server che rappresenta che rappresenta il server vero e proprio e sta in ascolto sulla porta TCP 3306

 

Fatta questa breve introduzione andiamo a vedere come installare MySQL su una distribizione CentOS 6.

Per installarlo diamo il semplice comando:

yum install mysql mysql-server

mysql3

Facciamo partire il servizio:

service mysqld start

 

Sul MySQL possiamo creare più utenti ognuno con i suoi database ma chi amministra il database è l’utente root da non confondere con l’utente root di sistema.

Per impostare una passoword per l’utente root diamo il seguente comando:

mysqladmin -u root -p password PASSWORD

Su PASSWORD inseriamo la password relativa all’utente amministratore.

A questo punto per vedere se la connessione va a buon fine usiamo il client mysql a riga di comando e ci connettiamo da utente root con la password precedentemente impostata.

mysql -u root -p

mysql14

Se tutto è andato bene siamo dentro il database.

 

Vediamo adesso una serie di semplici comandi:

CREARE UN UTENTE:

CREATE USER 'davide@localhost' IDENTIFIED BY 'password_utente';

mysql6

CAMBIARE PASSWORD AD UN UTENTE:

SET PASSWORD FOR USER=PASSWORD('nuovapassword');

mysql4

ELIMINARE UN UTENTE:

DROP USER nome_utente;

mysql5

 

Creare un DataBase di nome contatti;

CREATE DATABASE contatti;

mysql7

Visualizzare i DataBase presenti:

SHOW DATABASES;

 

mysql8Selezionare il Database contatti per Iniziare a lavorarci:

USE contatti;

mysql15

ASSEGNARE AL DATABASE contatti I PERMESSI per l’utente michele:
Vogliamo garantire tutti i privilegi sul database dati:

USE contatti;
GRANT ALL PRIVILEGES ON dati .* TO 'michele'@'localhost';

mysql10

VISUALIZZARE I PERMESSI ASSEGNATI ad un UTENTE su un DATABASE:

SHOW GRANT FOR 'nome_utente'@'localhost';

mysql11Come vediamo i permessi sul Database contatti sono per l’utente pippo e michele ma con la differenza che michele è un utente con accesso da localhost ( localhost ) mentre per l’utente pippo non ha importanza l’host di provenienza ( % )

RIMUOVERE I PERMESSI:
Vogliamo rimuovere i permessi per l’utente michele dal database contatti

REVOKE ALL PRIVILEGES ON contatti .* FROM 'michele'@'localhost' IDENTIFIED BY 'nuovapassword';

mysql12Potremmo anche in un unico comando creare un utente e assegnargli i privilegi su uno specifico Database.
Ad esempio:
Vogliamo creare l’utente giacomo ( proveniente da localhost ) e assegniargli i privilegi sul database rubrica:
mysql13AL FINE DI OGNI MODIFICA:

FLUSH PRIVILEGES;

Eliminare il Database contatti:

DROP DATABASE contatti;

mysql9
BACKUP TOTALE DATABASE:
Per eseguire un Backup di tutti i Database usiamo il comando mysqldump.
Facciamo un esempio:
Vogliamo fare il backup di tutti i Database nel file backup.dmp dell’host stesso:

mysqldump --host=localhost --user=root --password=password_utente_root --all-database > backup.dmp

RIPRISTINO DEL DATABASE:
Vogliamo ripristinare il Database che abbiamo precedentemente salvato:

mysql --host=localhost --user=root --password=password_utente_root < backup.dmp

Infine per uscire e quindi disconnetersi diamo il seguente comando:

exit

 

Come potete aver gia notato il linguaggio che usiamo è l’ SQL che per queste semplici operazioni piuttosto che per altre potrebbe tornare più veloce rispetto all’uso di un DBMS.

 

Adesso andremo a parlare di DBMS:

Come abbiamo detto il DBMS è colui che appoggiandosi al sistema operativo e ad altri applicativi consente tramite interfaccia di gestire i dati all’interno del database: dalla creazione alla loro manipolazione e all’interrogazione.

Parleremo in questo caso di phpMyAdmin

 

Per usare phpMyAdmin come dice la parola stessa dobbiamo installare nel nostro sistema anche il php e ovviamente il tutto sarà accessibile via web quindi dovremo installare anche apache.

Procediamo quindi alle installazioni:

yum install httpd php php-mysql php-mbstring

Fatto ciò scarichiamo il phpMyAdmin:

wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.0.8/phpMyAdmin-4.0.8-all-languages.tar.bz2

Lo scompattiamo e lo rinominiamo:

tar -jxvf phpMyAdmin-4.0.8-all-languages.tar.bz2
mv phpMyAdmin-4.0.8-all-languages phpmyadmin

Copiamo l’intera cartella nella DocumentRoot di Apache:

cp -Rf phpmyadmin /var/www/html

Entriamo dentro la directory e rinominiamo il file config.sample.inc.php in config.inc.php:

cd /var/www/html/phpmyadmin
mv config.sample.inc.php config.inc.php

Avviamo Apache:

service httpd start


Fatto ciò da browser ci colleghiamo al VirtualHost o direttamente all’indirizzo ip che nel nostro caso sarà 192.168.0.34 seguito dalla cartella phpmyadmin e se tutto è andato bene ci troveremo davanti l’interfaccia grafica con cui poter accedere al database MySQL.

http://192.168.0.34/phpmyadmin

Info about author

Michele Milaneschi

RHCE Consultant