Gestione di Mysql

In questa lezione vedremo la gestione del DBMS
Mysql
Prof. Giuseppe Sportelli
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
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
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.
Parametri aggiuntivi di InnoDB
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.
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.
Sintassi del comando mysql

Mysql -h nome server -u utente -p[password]
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.
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
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.
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.
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.
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.
Gestione di Mysql

In questa lezione vedremo la gestione del DBMS Mysql
Fine Unità
Prof. Giuseppe Sportelli

Utilizzo dei principali comandi di Mysql

  • 1.
    Gestione di Mysql Inquesta lezione vedremo la gestione del DBMS Mysql Prof. Giuseppe Sportelli
  • 2.
    Programmi di mysql Mysqld programmaserver 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 è ilprogramma 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 delfile 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.
  • 5.
  • 6.
    Abilitare InnoDB Per abilitareil 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 Unavolta 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.
  • 8.
    Sintassi del comandomysql Mysql -h nome server -u utente -p[password]
  • 9.
    Programma mysqladmin.exe E' ilprogramma 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 comandomysqladmin 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 tabelledei 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 tabelledei 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 Nellacreazione 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 Persituazioni 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 Inquesta lezione vedremo la gestione del DBMS Mysql Fine Unità Prof. Giuseppe Sportelli