MySQL è uno dei sistemi di gestione di database relazionali (RDBMS) più utilizzati al giorno d’oggi. Si tratta di una solida piattaforma di database che consente di creare e gestire database scalabili, principalmente utilizzando un linguaggio di interrogazione strutturato (SQL, da Structured Query Language).

Il server MySQL è l’ambiente in cui risiedono i database — e dove potete accedere a essi. In qualità di amministratori del server, avrete spesso bisogno di recuperare i dettagli di questo ambiente — listare i database presenti sul server, visualizzare le tabelle di un determinato database, visualizzare i ruoli e i privilegi degli utenti, accedere ai vincoli e così via.

In questo articolo vi spieghiamo come listare i database MySQL tramite il prompt dei comandi.

Prerequisiti per Elencare i Database MySQL

Per iniziare dovete avere il server MySQL in esecuzione sul vostro computer locale. Se non avete MySQL, ci sono alcuni modi per installarlo:

  • Installate WAMPServer, XAMPP, MAMP o qualsiasi altro stack di distribuzione software che includa MySQL.
  • Scaricate ed eseguite il programma di installazione di MySQL direttamente dal sito web ufficiale, seguendo il processo di configurazione per installare il server MySQL e gli altri strumenti.

Per eseguire comodamente i comandi MySQL tramite la riga di comando, dovrete aggiungere il percorso dell’eseguibile MySQL all’ambiente del vostro sistema. Se avete installato MySQL utilizzando la seconda opzione, questo passaggio non è necessario, quindi potete saltare la prossima sezione.

Aggiungere il Percorso di MySQL all’Ambiente delle Variabili di Sistema

In questa sezione vi guidiamo nell’aggiunta del percorso eseguibile di MySQL all’ambiente delle variabili del vostro sistema se state eseguendo XAMPP o WAMP su un computer Windows.

Per prima cosa, avviate l’Esplora file di Windows e andate sul comando Questo PC. Fate clic sull’unità in cui avete installato il pacchetto WAMP o XAMPP (C:).

Se state usando XAMPP, andate su xampp > mysql > bin e copiate il percorso completo della cartella bin. Per WAMP, andate in {vostro-wamp-version} > bin > mysql > {vostro-mysql-version} > bin fino al percorso completo.

Schermata del percorso completo per accedere alla cartella bin in MySQL CLI.
Il percorso completo della cartella bin.

Fate clic sul menu Start e cercate “path”. Fate clic su Edit the system environment variable.

Quindi, fate clic su Environment Variables sotto Startup and Recovery, selezionate la variabile PATH e fate clic su Edit.

Successivamente, fate clic su Next e incollate il percorso completo dell’eseguibile MySQL (che avete copiato in precedenza).

Schermata Edit Environment Variables da cui modificare la variabile.
Modifica della variabile d’ambiente.

Quindi, salvate le modifiche cliccando su OK.

Ora che avete aggiunto il percorso, potete eseguire i comandi di MySQL nel Terminal.

Accedere a MySQL

Per listare i database MySQL, l’utente deve essere autorizzato ad accedere a tutti i database, oppure dovete impostare un privilegio globale SHOW DATABASES che garantisca l’accesso a tutti gli utenti.

Verificate che il server MySQL sia in funzione prima di effettuare l’accesso tramite il prompt dei comandi:

mysql -u  -p

NOTA: sostituite con il vostro nome utente. Il nome utente predefinito di MySQL è root e la password è vuota (non c’è alcuna password di default).

Schermata del Command Prompt per accedere da MySQL tramite il Terminal.
Accesso a MySQL.

Mostrare i Database all’Interno del Server MySQL

Ora che avete effettuato il login, potete listare i database MySQL presenti nel server eseguendo il comando SHOW DATABASES:

SHOW DATABASES;

In cambio, otterrete tutti i database presenti nello storage:

Mostrare i database MySQL.
Un elenco dei database presenti nello storage.

Dei 6 database restituiti, information_schema e performance_schema sono i database predefiniti che vengono generati automaticamente quando si installa MySQL.

Il database information_schema è un database non modificabile che memorizza tutte le informazioni relative ai database e agli altri oggetti (viste, privilegi utente, tabelle, vincoli, ecc.) memorizzati nel server MySQL.

Filtrare i Risultati dell’Output del Database

In precedenza, tutti i database del server MySQL venivano visualizzati con SHOW DATABASES, ma spesso è necessario filtrare l’output del database, soprattutto quando ci sono molti database sul server.

La clausola LIKE filtra il risultato di SHOW DATABASE in base a uno schema specificato. Ecco la sintassi generale:

SHOW DATABASES LIKE '';

Deve essere una stringa che rappresenti lo schema a cui volete corrispondere. La stringa deve terminare con il simbolo di percentuale, %, che indica uno o più caratteri.

Per esempio, se volete visualizzare solo i database il cui nome inizia con la lettera w, eseguite il seguente comando:

SHOW DATABASES LIKE 'w%';

Ecco il risultato filtrato:

Schermata della risposta filtrata del database
La risposta filtrata del database quando si usa ‘w%’.

Usare Information Schema per Interrogare i Metadati delle Tabelle

Prima avete visto come il database information_schema memorizza tutte le informazioni relative a database, tabelle e altri oggetti nell’ambiente del server MySQL.

Il database information_schema usa la tabella schema per memorizzare le informazioni relative a tutti i database. Per filtrare i database, potete eseguire una ricerca complessa per interrogare la tabella degli schemi per database specifici.

Per esempio, se volete ottenere database i cui nomi inizino con “samp” o “word”, potete combinare diverse altre clausole per creare una query complessa:

SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';

Ecco il risultato:

Schermata del comando di MySQL's
I risultati della query complessa.

Inoltre, avete a disposizione la tabella tables del database information_schema, che contiene informazioni su tutte le tabelle. Allo stesso modo, potete eseguire una query per recuperare solo le tabelle che corrispondono a un modello specificato.

Per esempio, la seguente query restituisce le informazioni sullo schema delle sole tabelle di WordPress — solo le tabelle il cui nome inizia con “wp_”:

SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

Ecco il risultato:

Schermata con l’elenco della tabella wp_tables del database di MySQL.
I risultati delle informazioni sullo schema delle sole tabelle di WordPress.

Le altre tabelle presenti in information_schema includono columns, constraints, table_constraints, check_constraints e referential_constraints.

Problemi Comuni e Buone Pratiche

Una delle cause più comuni di errore durante l’esecuzione di SQL è il mancato utilizzo del punto e virgola alla fine delle istruzioni.

Un’altra è l’utilizzo di una sintassi SQL non valida o di un nome di tabella/colonna scritto in modo errato. Per evitare questo problema, fate un controllo incrociato del nome della tabella o della colonna per verificare che sia scritto correttamente. Controllate anche la sintassi.

Ecco altre buone pratiche da tenere a mente.

Usare il Maiuscolo per le Parole Chiave SQL

Quando scrivete il codice SQL, usate sempre il maiuscolo per le parole chiave SQL e il minuscolo per i nomi delle tabelle e delle colonne. In questo modo il codice è più leggibile e meno soggetto a errori.

Quindi, invece di questo:

select * from information_schema.tables where table_name like 'wp_%';

Fate così:

SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

Evitare di Usare SELECT *

Evitate di usare SELECT * nelle vostre query SQL. La vostra richiesta non è chiara perché non potete sempre sapere cosa restituirà. Specificate invece le colonne che volete selezionare dalla tabella.

Quindi, invece di questo:

SELECT * EXCEPT(phone) FROM users.profile

Fate così:

SELECT name,
    dob,
    address,
    country,
    address,
FROM user.profile

Indentare il Codice

Infine, un altro consiglio per facilitare la ricerca degli errori è quello di indentare il codice perché lo rende più leggibile.

Gestori di Database

In alternativa, potete scegliere di gestire i vostri database senza scrivere SQL attraverso l’uso di un gestore di database. Questo permette agli utenti di accedere alle funzioni di gestione del database senza dover scrivere query SQL. Questo software si collega a un server MySQL e fornisce un’interfaccia utente per esporre le funzioni del database. Una volta collegato, l’interfaccia utente mostrerà tutti i database presenti sul server. L’aspetto e le caratteristiche variano a seconda degli strumenti di gestione, ma il processo è simile.

Schermata del gestore di database di DevKinsta.
Il gestore di database di DevKinsta.

Sono disponibili diversi strumenti, tra cui phpMyAdmin e Adminer, entrambi accessibili tramite DevKinsta. Lo strumento di gestione predefinito di DevKinsta è Adminer, perché è leggero, facile e veloce, ma anche phpMyAdmin è facilmente accessibile.

Riepilogo

Come amministratori di un server, dovete poter recuperare in modo efficiente e accurato i dettagli sui database del vostro server MySQL. La possibilità di vedere quali database sono presenti sul server, di visualizzare tabelle specifiche e le informazioni al loro interno e di accedere alle informazioni sui ruoli e sui privilegi degli utenti sono tutte attività cruciali. L’uso di SQL dalla riga di comando può semplificare tantissimo questo processo.

Quando la gestione del database va oltre l’interrogazione delle tabelle, Kinsta può essere di aiuto. Scoprite tutti i dettagli sulle nostre soluzioni di hosting di database scalabili!

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.