Quando si lavora con ambienti di hosting basati su Linux, la gestione dei database tramite la riga di comando è un’abilità cruciale, soprattutto se si gestisce un server virtuale o un server dedicato senza interfaccia grafica. In questa guida vi spiegheremo come elencare tutti i database MySQL utilizzando il terminale. Sia che siate sysadmin esperti o proprietari di siti web che stanno imparando le regole, questo articolo vi copre.

Perché potreste aver bisogno di elencare i database MySQL

Prima di immergerci nei comandi, esaminiamo rapidamente alcuni scenari in cui questo comando è utile:

  • Si gestiscono più siti web con database diversi.
  • Dovete confermare che un database è stato creato correttamente.
  • Si stanno risolvendo problemi o si stanno ripulendo database inutilizzati.
  • Si sta preparando un processo di backup o di migrazione.

Passiamo ora ai comandi veri e propri.

Passo 1: accedere alla CLI di MySQL

Per interagire con MySQL tramite la riga di comando, è necessario innanzitutto accedere alla shell di MySQL:

mysql -u root -p
  • -u root – Specifica l’utente MySQL. Se necessario, sostituite root con un altro utente.
  • -p – Richiede la password (non includete la password direttamente nel comando per motivi di sicurezza).

suggerimento: se l’utente root di MySQL non ha una password (non è raccomandato per la produzione), si può ignorare -p.

Passo 2: Elenco di tutti i database

Una volta entrati nella shell di MySQL, eseguite semplicemente:

SHOW DATABASES;

Vedrete un risultato simile a quello che segue:

 -------------------- 
| Database
 -------------------- 
| information_schema |
| mysql
| performance_schema |
| sys |
| Nome_della_database
 -------------------- 

Ogni riga rappresenta un database memorizzato sul server MySQL. Alcuni di questi (come information_schema, performance_schema) sono database di sistema e non devono essere modificati.

Elencare i database senza entrare in MySQL

Se si preferisce elencare i database direttamente dalla shell senza aprire il prompt di MySQL, si può utilizzare il comando

mysql -u root -p -e 'SHOW DATABASES;'

Questo è utile per le attività di scripting e automazione.

Filtrare o cercare nomi di database specifici

Per filtrare l’output e trovare nomi di database specifici, è possibile combinare il comando con grep:

mysql -u root -p -e 'SHOW DATABASES;' | grep your_keyword

Sostituire parola_chiave con una parte del nome del database. Questo trucco è utile quando si gestiscono più client o applicazioni.

Dove sono archiviati i database MySQL su Linux?

Se siete curiosi di sapere dove si trova l’archivio fisico, i database MySQL sono in genere memorizzati in:

/var/lib/mysql/

Ogni cartella all’interno corrisponde al nome di un database. Non modificate o cancellate nulla manualmente, a meno che non sappiate esattamente cosa state facendo: utilizzate sempre i comandi SQL o gli strumenti di amministrazione.

Errori comuni e correzioni

Errore: Accesso negato per l’utente ‘root’@’localhost’

  • Ricontrollare il nome utente e la password.
  • Assicuratevi che il servizio MySQL sia in esecuzione:
sudo systemctl status mysql

Errore: Comando ‘mysql’ non trovato

  • Installare gli strumenti del client MySQL:
    sudo apt install mysql-client
    

Riepilogo

Per elencare i database MySQL tramite la riga di comando su Linux:

  • Accedere con mysql -u root -p
  • Usare SHOW DATABASES; all’interno della shell MySQL
  • Oppure eseguite mysql -u root -p -e ‘SHOW DATABASES;’ direttamente nel terminale

Questo metodo è veloce, sicuro e funziona perfettamente in ambienti SSH: esattamente ciò che serve per una gestione efficace di server e database.