Como MySQL DBA, confío en MySQL para hacer la conversión haciendo que MySQL escriba el script por mí.
Forma el comando Linux ejecuta esta consulta
mysql -h... -u... -p... -A --skip-column-names -e"SELECT CONCAT('ALTER TABLE ',db,'.',tb,' ENGINE=InnoDB;') FROM (SELECT A.db,A.tb,A.tbsize FROM (SELECT table_schema db,table_name tb,(data_length+index_length) tbsize FROM information_schema.tables WHERE engine='MyISAM' AND table_schema NOT IN ('information_schema','mysql')) A LEFT JOIN (SELECT table_schema db,table_name tb FROM information_schema.statistics WHERE index_type='FULLTEXT') B USING (db,tb) WHERE B.db IS NULL) AA ORDER BY tbsize" > /root/ConvertMyISAM2InnoDB.sql
El script convertirá primero las tablas más pequeñas. Este script también omitió las tablas MyISAM que tienen índices FULLTEXT.
Después de revisar el script, simplemente puede ejecutarlo en MySQL de la siguiente manera:
mysql -h... -u... -p... -A < /root/ConvertMyISAM2InnoDB.sql
o si desea ver el momento de cada conversión, inicie sesión en mysql y ejecute esto:
mysql> source /root/ConvertMyISAM2InnoDB.sql
Esto no debería estropearse porque se produce un bloqueo completo de la tabla cuando se ejecuta la conversión.
Una vez que se convierten todas las tablas, debe ajustar la configuración de MySQL para el uso de InnoDB y reducir el key_buffer.
Lea esto para configurar el InnoDB Buffer Pool: /dba/1/what-are-the-main-differences-between-innodb-and-myisam/2194#2194
Lea esto también: /drupal/1715/what-would-the-optimal-mysql-configuration-for-a-drupal-7-site-be/2367#2367
Darle una oportunidad !!!