Convert MySQL database from MyISAM to InnoDB

In MySQL, you have a command to convert a table from MyISAM engine to InnoDB engine. ALTER TABLE table_name ENGINE = InnoDB; However, this command needs to be done for EVERY table, so here’s a way to do it by scripting if you want to do the entire database :) 1) Backup your database 2) Create the script (change DATABASE_NAME by yours): mysql -p -e "show tables in <DATABASE_NAME>;" | tail --lines=+2 | xargs -i echo "ALTER TABLE {} ENGINE=INNODB;" > alter_table.sql 3) Check the file alter_table.sql to see if it looks correct 4) Run the script: mysql --database=<DATABASE_NAME> -p < alter_table.sql 5) Verify: mysql> show table status; ...