Verificare e Controllare le tabelle di Mysql con lo strumento Mysqlcheck
In questo articolo andremo a descrivere l’ efficacia dello strumento mysqlcheck per verificare, riparare, ottimizzare, analizzare le tabelle su Mysql.
Consideriamo di partire da una macchina preinstallata Ubuntu 18 ( qui l’articolo per l’installazione) ed aggiorniamola
sudo apt-get update
sudo apt-get upgrade
inoltre diamo per assunto di aver installato il database DBMS Mysql.
Lo strumento mysqlcheck è compreso nel pacchetto di installazione di Mysql, per dimostrare la sua utilità consideriamo di avere un database DB1 con due tabelle tabella1 e tabella2.
Per analizzare tutte le tabelle del database ( per semplicità utilizzeremo l’ utente root per la connessione )
sudo mysqlcheck -c DB1 -u root -p
DB1.tabella1 OK
DB1.tabella2 OK
mentre se volessimo controllare solo una tabella
sudo mysqlcheck -c DB1 tabella1 -u root -p
DB1.tabella1 OK
Nel caso in cui una tabella fosse corrotta, facciamo un esempio di un caso reale con il seguente errore
DB1.tabella1
warning : Table is marked as crashed
warning : 1 client is using or hasn’t closed the table properly
warning : Size of indexfile is: 10 Should be: 12
warning : Size of datafile is: 20 Should be: 30
error : Found key at page 10 that points to record outside datafile
error : Corrupt
DB1.tabella2 OK
utilizzeremo il seguente comando
sudo mysqlcheck -r DB1 tabella1 -u root -p
se il problema non risultasse irreversibile avremmo come risultato
DB1.tabella1 OK
Con il comando mysqlcheck è possibile ottimizzare e analizzare le tabelle o i database qualora ci fossero
sudo mysqlcheck -a DB1 tabella1 -u root -p
implementa il comando SQL “ANALIZE TABLE“, mentre per l’ ottimizzazione “OPTIMIZE TABLE”
sudo mysqlcheck -o DB1 tabella1 -u root -p
Esistono differenti opzioni utili anche più complesse da poter sfruttare nel caso si dovesse fare troubleshooting di un problema su database per approfondire utilizzare la guida in linea
sudo mysqlcheck --help