Introduzione

Durante l'amministrazione dei server di database MySQL, una delle attività più comuni che dovrete fare è familiarizzare con l'ambiente. Ciò comporta attività come elencare database che risiedono sul server, visualizzare le tabelle di un determinato database o ottenere informazioni sugli account utente e i loro privilegi.

Questo tutorial spiega come mostrare tutti i database in un server MySQL o MariaDB attraverso la riga di comando.

Mostra database MySQL

Il modo più comune per ottenere un elenco dei database MySQL è utilizzare il client mysql per connettersi al server MySQL ed eseguire il comando SHOW DATABASES.

Accedi al server MySQL usando il seguente comando e inserisci la tua password utente MySQL quando richiesto:

mysql -u user -p

Se non hai impostato una password per il tuo utente MySQL, puoi omettere l'opzione -p.

Dall'interno della shell MySQL eseguire il comando seguente:

SHOW DATABASES;

Il comando stamperà un elenco di tutti i database per i quali all'utente è concesso un privilegio. L'output sarà simile a questo:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| wordpress          |
+--------------------+
2 rows in set (0.00 sec)

Un altro comando che è possibile utilizzare per elencare i database è SHOW SCHEMAS che è sinonimo del comando SHOW DATABASES:

SHOW SCHEMAS;

L'output sarà lo stesso di quando si utilizza il comando SHOW DATABASES:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| wordpress          |
+--------------------+
2 rows in set (0.00 sec)

Mostrare tutti i database MySQL

Per elencare tutti i database sul server MySQL devi effettuare il login come utente che può accedere a tutti i database, per impostazione predefinita è l'utente root di MySQL o imposta un privilegio SHOW DATABASES  globale .

Accedi a un utente root di MySQL:

mysql -u user -p

Esegui il comando SHOW DATABASES:

SHOW DATABASES;

Vedrai un elenco di tutti i database sul server MySQL:

+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| database_name      |
| mysql              |
| magento	         |
| wordpress          |
| performance_schema |
| sys                |
+--------------------+

7 rows in set (0.00 sec)

Filtraggio del risultato

La clausola LIKE può essere utilizzata per filtrare l'output del comando SHOW DATABASES secondo uno schema specifico.

SHOW DATABASES LIKE pattern;

Ad esempio, la seguente istruzione restituirà tutti i database i cui nomi iniziano con 'word':

SHOW DATABASES LIKE 'word%';
+--------------------+
| Database           |
+--------------------+
| wordpress          |
+--------------------+
1 rows in set (0.00 sec)

Il segno di percentuale  % indica zero, uno o più caratteri.

Se si desidera effettuare una ricerca più complessa, eseguire una query sulla tabella schemata dal database information_schema che contiene informazioni su tutti i database.

La seguente dichiarazione fornisce un elenco di tutti i database che iniziano con "aperto" o "parola":

SELECT schema_name
FROM information_schema.schemata
WHERE schema_name LIKE 'word%' OR
schema_name LIKE 'mage%';
+--------------------+
| Database           |
+--------------------+
| wordpress          |
| magento	         |
+--------------------+
2 rows in set (0.00 sec)

Mostrare i database MySQL dalla riga di comando

Per ottenere un elenco dei database senza accedere alla shell MySQL è possibile utilizzare il comando mysql con l'opzione -e che sta indica execute (eseguire) o che mysqlshow visualizza informazioni su database e tabelle.

Ciò è particolarmente utile quando si desidera lavorare con i database MySQL utilizzando script di shell.

Eseguire il comando seguente sul terminale per mostrare un elenco di tutti i database:

mysql -u user -p -e 'show databases;'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| wordpress          |
+--------------------+

Ecco un esempio usando il comando mysqlshow:

mysqlshow -u user -p

L'output sarà identico a quello del comando precedente.

Se vuoi filtrare l'output puoi usare il comando grep.

Conclusione

Hai imparato come ottenere un elenco di tutti i database nel tuo server MySQL.