1. Gestione di Mysql
In questa lezione vedremo la gestione del DBMS
Mysql
Prof. Giuseppe Sportelli
2. Programmi di mysql
Mysqld
programma server
Mysql
programma client
Mysqladmin
programma amministrativo
Mysqlimport
programma per importare dati da
file di testo in vari formati
Mysqldump programma per fare backup di
database e tabelle
Winmysqladmin programma per la gestione visuale
in Windows del DBMS
3. Mysld
Mysqld è il programma server che deve essere
mandato in esecuzione affinché i client si possano
collegare e gestire le tabelle e i database. Esso
può essere avviato con vari parametri di avvio.
Normalmente i parametri di avvio sono scritti in
un file di configurazione di nome my.cnf.
In linux tale file è locato in /etc
In Windows in genere nella cartella principale di
mysql o in bin
4. Parametri importanti del file
my.cnf
Port numero di porta TCP utilizzata di solito 3306
Password la password da passare da chiedere ai client per collegarsi come root
Basedir, tmpdir, datadir le cartelle dove sono locati i file binari, i file temporanei e i database
Old-passwords imposta le password nello stile precedente compatibile con mysql versioni prima
della 4.1
Character-server indica la codifica ASCII del Server conviene impostarla a utf8
Collation-server indica la codifica ASCII del Server per definire le regole di controllo e
confronto su dati di tipo carattere.
Skip-bdb se non si vuole utilizzare il metodo BDB per le tabelle
Skip-innodb se non si vuole utilizzare il metodo InnoDB per le tabelle
Se attivo InnoDB devo impostare una serie di parametri come mostrato nella figura.
6. Abilitare InnoDB
Per abilitare il motore InnoDB occorre abilitare
alcune voci in my.cnf o passarle al servente
all'avvio. InnoDB è il motore che supporta la
chiavi esterne e le relazioni.
Bisogna commentare skip-innodb nel file citato e
abilitare le impostazioni successive.
7. Salvataggio delle modifiche
Una volta modificate le impostazioni riavviare il server mysqld per
applicare le nuove modifiche
Il collegamento al server avviene mediante il programma mysql.
La sintassi del programma client prevede vari parametri due
obbligatori e uno opzionali. Le prime due opzioni sono il nome
utente e le password che devono essere disponibili per gli utenti
del database. Se la macchina servente è locale si omette il
parametro host. Invece se il servente è su un'altra macchina si
deve specificare il nome del server o l'indirizzo IP.
9. Programma mysqladmin.exe
E' il programma amministrativo che permette la
gestione del DBMS
Permette di cambiare le passowrd degli utenti
mediante il parametro passwrd o old-passowrd (per
compatibilità con Mysql 4.1)
Permette di ricaricare le tabelle dei privilegi con
l'opzioni flush-privileges il comando è eseguibile
solo da utenti abilitati. E' utile per i comandi SQL di
tipo DCL (Database Control Language) come
GRANT e REVOKE.
10. Sintassi del comando mysqladmin
mysqladmin -u utente -p[password] -h nome server
[opzioni]
mysqladmin -u utente -p[password] -h nome server
password nuova password
Questo comando cambia la password all'utente
mysqladmin -u utente -p[password] -h nome server
flush-privileges
Ricarica le tabelle dei privilegi
11. Organizzazione delle tabelle dei
privilegi
Il database che contiene i privilegi è mysql
Tale database contiene innumerevoli tabelle le più importanti sono: db, user,
host, columns_privs.
Nella tabella user sono presenti una serie di colonne fra cui db,
user,host,password ovvero il nome del database, l'utente, e i client permessi
all'accesso al database specifico e la password criptata.
Nella tabella host sono presenti l'insieme dei client consentiti ad un utente
specifico.
Nella tabella db sono presenti il nome dei database, degli host abilitati
all'accesso e il nome dell'utente.
Insieme a questi campi sono presenti le abilitazioni ai vari tipi di operazioni
come Inserimento, Modifica dati, Interrogazione, Modifica Struttura, e
modifica dei privilegi.
12. Organizzazione delle tabelle dei
privilegi
Il database che contiene i privilegi è mysql
Tale database contiene innumerevoli tabelle le più importanti sono: db, user,
host, columns_privs.
Nella tabella user sono presenti una serie di colonne fra cui db,
user,host,password ovvero il nome del database, l'utente, e i client permessi
all'accesso al database specifico e la password criptata.
Nella tabella host sono presenti l'insieme dei client consentiti ad un utente
specifico.
Nella tabella db sono presenti il nome dei database, degli host abilitati
all'accesso e il nome dell'utente.
Insieme a questi campi sono presenti le abilitazioni ai vari tipi di operazioni
come Inserimento, Modifica dati, Interrogazione, Modifica Struttura, e
modifica dei privilegi.
13. Creazione delle utenze
Nella creazione delle utenze si deve stabilire quindi
che cosa può fare l'utente da quale host, e su quali
database.
Nella norma se il server mysql deve funzionare con
utenze multiple ad esempio nell'hosting di servizi
web ciascun utente deve agire solo sui propri
database e non visualizzare nulla degli altri.
L'utente “root“ in genere non deve essere utilizzato e
deve avere accesso solo dalla macchina locale per
motivi di sicurezza.
14. Ulteriori considerazioni di
sicurezza
Per situazioni molto critiche si possono utilizzare
connessioni ssl
E' possibile consentire le operazioni in modo selettivo
solo da certi host. Se ad esempio l'utente che
gestisce il database si collega sempre dallo stesso IP
si abilita solo quell'IP.
E' possibile utilizzare mysql in un tunnel ssh. Nella
buona sostanza do accesso al server mediante ssh e
accedo al server mysql solo da locale.
15. Gestione di Mysql
In questa lezione vedremo la gestione del DBMS Mysql
Fine Unità
Prof. Giuseppe Sportelli