Gli strumenti di Amministrazione di MySQL

Ogni distribuzione Linux ha al suo interno il pacchetto per la gestione dei database MySQL, in questo articolo vedremo gli strumenti a riga di comando per amministrarlo, ben sapendo che la maggior parte degli utenti utilizza PHPMyAdmin oppure Webmin o altro strumento per fare questo lavoro con l’ausilio di una bella interfaccia utente. Personalmente ritengo che saper utilizzare gli strumenti di amministrazione a riga di comando sia utile non solo per lavorare con semplici shell come SSH, ma anche per vedere come il data-engine gestisce i dati e quindi saper migliorare le prestazioni del sistema.
Di solito, nelle maggiori distribuzioni Linux, l’utente standard amministratore di MySQL è lo stesso del sistema che lo ospita, di solito ha anche la stessa password, se così non fosse occorre impostare quest’ultima ricorrendo al comando mysqladmin.

mysqladmin -u root -pmypass password xxxxxx

Questo strumento permette infatti all’amministratore di regolare la vita di tutto il database server, in questo caso di cambiare la password per l’utente root, avente la password mypass, ad xxxxxx. Per eseguire un comando sul server si deve indicare il nome utente ( -u ), la password ( -p ) e nei casi in cui non siamo su localhost, anche l’host ( -h ) da richiamare. Per creare il database “test” su una macchina remota, alla quale l’utente root ha accesso non solo da localhost, si utilizza questo comando:

mysqladmin -u root -pmypass -h myserver create test

Se si omette la password dopo l’opzione -p il comando la chiederà successivamente. Il programma mysqladmin è quindi quello fondamentale per la gestione di base di MySQL, infatti con esso è possibile creare, cancellare database, cambiare password, controllare o fermare il server. La sintassi del comando è:

mysqladmin [opzioni] comando

Le opzioni sono quelle standard viste prima, mentre i principali comandi sono:

  • create <nome> – Crea un nuovo database con il <nome> indicato.
  • drop <nome> – Cancella il database con <nome> indicato.
  • status – Mostra lo stato del server.
  • extended status – Mostra i dettagli dello stato del server.
  • flush-privileges – Ricarica tutte le impostazioni di accesso.
  • password – Cambia la password dell’utente corrente.
  • ping – Controlla se il demone di MySQL è in funzione.
  • processlist – Visualizza tutti i thread attivi nel server.
  • kill <thread> – Termina il <thread> specificato.
  • shutdown – Effettua l’arresto del server.
  • variables – Visualizza i valori delle variabili di sistema.
  • version – Stampa la versione ed alcune informazioni su MySQL.

Una volta terminata la fase di creazione dei database di cui abbiamo bisogno, è necessario strutturare le tabelle e tutto quello che serve per i nostri dati. Per questo dobbiamo utilizzare un altro programma che rappresenta l’utilità principale del server, il comando è mysql. Attraverso questo comando è possibile dare tutti i comandi SQL direttamente sui dati, sia per trattare quelli memorizzati che crearne le strutture. Come per il precedente programma, anche in questo caso dobbiamo inserire le opzioni viste precedentemente, in più abbiamo la possibilità di indicare il database che si vuole utilizzare:

mysql [opzioni] [database]

Una volta entrati all’interno del database troveremo il classico messaggio di benvenuto ed il prompt dei comandi MySQL che ci attende per la digitazione. Nel caso non avessimo scelto il database iniziale è possibile farlo successivamente utilizzando il comando use <nomedb>;. il punto e virgola finale è essenziale per indicare che il comando che stiamo inserendo è terminato. Per conoscere i comandi interni è possibile digitare “\?”.  Al nostro database “test” che abbiamo creato precedentemente, possiamo aggiungere una tabella “clienti” con solo il cognome ed il nome, vediamo come fare:

mysql -u root -pxxxxxx test
mysql> create table clienti (nome char(50), cognome char(50));
mysql> insert into clienti (nome, cognome) values(‘Mario’, ‘Rossi’);
mysql> select * from clienti;
mysql> quit

Con questa serie di istruzioni abbiamo creato la nostra tabella ed abbiamo inserito un record, quindi abbiamo verificato i dati inseriti e poi siamo usciti.
Come potete capire abbiamo bisogno di utilizzare dei comandi molto lunghi in linguaggio SQL che potrebbero dare problemi. Esiste tuttavia un modo per sollevarci da questo gravoso compito, utilizzare cioé le pipe ed inviare a mysql il contenuto di un file. Inseriamo all’interno di un file ( test.sql ) i nostri comandi:

use test;
select * from clienti;

ora è possibile inviare i nostri comandi SQL dando questo comando da shell:

mysql -u root -pxxxxxx < test.sql

come potete osservare abbiamo evitato di dare i comandi direttamente nella shell di mysql, in questo modo è possibile scrivere delle istruzioni anche complesse.

Informazioni su Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.
Questa voce è stata pubblicata in Database, Linux e contrassegnata con . Contrassegna il permalink.