Archivi tag: amministrazione

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.