MySQL


L'esempio di creazione e consultazione di un data base proposto nella pagina precedente ha seri limiti. Chiunque acceda al computer può manipolare o anche distruggere il database costruito in quel modo e comunque il database risiede solo sulla macchina in cui è stato costruito mentre un database importante deve risiedere in un server raggiungibile da molti utenti. Ovviamente solo gli amministratori del database potranno modificarlo, mentre gli utenti, in linea di massima, potranno solo consultarlo. Sono quindi necessarie delle chiavi di accesso, di norma costituite da password, ai cui possessori sono garantite tutte o solo alcune prerogative.

Nel seguito di questa esposizione si continuerà a lavorare sul server locale ma le procedure e i metodi proposti si possono trasferire facilmente su un server di rete.

Lavorando con MySQL in phpMyAdmin è necessario creare da subito un utente 'padrone' dell'applicazione, dotato di tutti i permessi necessari per svolgere tutte le operazioni di gestione dei database, cioè crearli, accedervi, modificarli o eliminarli. A questo scopo si usa la console di MySQL scrivendo in essa le opportune istruzioni.

Cliccando il pulsante mostra icone nascoste in basso a destra del monitor attivare con gli opportuni passaggi la console.

consoleMySQL.png

Appare il messaggio

enter.png

Cliccare OK, aprendo così la console che richiede una password.

enterPassword.png

Dato che al momento non si possiedono password, premere Invio ottenendo nella console il seguente messaggio.

console1.png

A questo punto si può definire un utente proprietario con tutti i diritti, scrivendo successivamente nella console le seguenti istruzioni, ognuna terminata da un 'punto e virgola' ; e premendo Invio al termine di ognuna. Queste istruzioni possono eventualmente essere adattate alle proprie preferenze, sostituendo master e owner con termini di propria scelta.

In seguito l'utente master, accedendo alla console, potrà definire altri utenti con analoghi diritti o con diritti ridotti su un particolare tabella di un database scrivendo nella console istruzioni simili alle seguenti:

Ad esempio, se la seconda istruzione è GRANT SELECT ON nome_database.nome_tabella TO 'xxxxx'@'localhost'; l'utente xxxxx potrà solo cercare records su una particolare tabella di un particolare database.

Ora si può lanciare phpMyAdmin. Cliccare il pulsante mostra icone nascoste in basso a destra del monitor e nel menù che si apre cliccare phpMyAdmin.

phpMyAdmin.png

Si apre l'nterfaccia

welcome.png

Sulla base delle operazioni precedentemente effettuate nella console, inserire username (master) e password (owner) e scegliere MySQL tra le alternative proposte (MariaDB e MySQL). Cliccando Go si apre l'interfaccia MySQL.

MySQL.png

Cliccando New è possibile creare un nuovo database di cui va scritto il nome, ad esempio, ripercorrendo la traccia delle pagina precedente, DBStati.

NewDB.png

Cliccando Create, costruisce il database DBStati nel quale inserire la tabella stati contenente record costituiti da tre campi: conta di tipo numerico, stato e capitale di tipo alfanumerico (varchar) con al massimo 30 caratteri.

table.png

Cliccare Go e procedere alla descrizione dei campi dei records della tabella stati.

campi.png

Il valore di conta non va inserito direttamente perché si autoincrementerà automaticamente all'immissione di ogni nuovo record. Conta risulterà essere un chiave primaria.

Cliccare save

records.png

e procedere al'immissione dei dati cliccando Insert.

insert.png

Cliccare Go.

inserzione.png

Continuare con Insert finché si hanno stati da inserire.

Se si vuole controllare il contenuto del database, cliccare nel riquadro sinistro dbstati.

fine_inserzione.png

Cliccare SQL e scrivere la query nel campo apposito

DBquery.png

Cliccare Go.

queryResult.png

Un'altra query. Cliccare SQL scrivere la nuova query.

queryResult1.png

Si ottiene

queryResult2.png

Se per l'eventuale utente xxxxx di cui si è precedentemente parlato si fosse stabilito

GRANT SELECT ON dbstati.stati TO 'xxxxx'@'localhost';

xxxxx potrebbe solo fare query con SELECT, ma non potrebbe apportare nessuna modifica al contenuto della tabella.

È possibile, in un modo più economico anche se un po' lugubre, svolgere le stesse operazioni direttamente dalla console di MySQL. Esempio:

console2.png