Archivi tag: mysql

Convertire tutte le tabelle di un DB MySQL da MyISAM a InnoDB con uno script linux

E’ possibile convertire in un colpo solo tutte le tabelle di un database MySQL da MyISAM a InnoDB tramite due comandi digitati dalla shell di linux:

 mysql -p -e "show tables in nome_database;" | tail --lines=+2 | xargs -i echo "ALTER TABLE {} ENGINE=INNODB;" > converti_engine.sql

Il primo comando si connette al database, recupera tutti i nomi delle tabelle (e delle viste!) e le combina, tramite il comando xargs, con il comando SQL che permette di cambiare l’engine a InnoDB. Ovviamente nome_database è da sostituire con il nome dello schema in questione. Il risultato è uno script SQL che verrà lanciato in seguito. L’unico accorgimento da adottare è quello di rimuovere le eventuali righe che contengono l’alter table di viste (che darebbero errore durante l’interpretazione e bloccherebbero lo script).

Controllato lo script, è sufficiente eseguirlo con il comando di seguito:

mysql -u root -p nome_database < converti_engine.sql

che chiederà la password ed eseguirà lo script appena preparato.

 

Analizzare ed ottimizzare tutti i database di un server MySQL

Sarà capitato di dover analizzare, riparare ed ottimizzare alcune tabelle di un database che si sta riempiendo troppo in fretta. Se l’operazione la si vuole realizzare a livello di server, esiste un comando pronto all’uso:
mysqlcheck -u root -p --auto-repair --check --optimize --all-databases

basta lanciarlo, inserire la password, ed effettuerà le operazioni di manutenzione ed ottimizzazione in tutte le tabelle di tutti i database del server!