Вот простой трюк для перевода всех MySQL MyISAM таблиц в таблицы InnoDB.
Сперва необходимо подготовить файл содержащий список SQL запросов на конвертацию каждой таблицы в отдельности. Это просто сделать выполнив следующий запрос (заменив your_database_name
на имя базы):
/usr/bin/mysql --defaults-extra-file=/etc/mysql/debian.cnf --batch --skip-column-names -e "SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' engine=InnoDB;') FROM information_schema.tables WHERE TABLE_SCHEMA='your_database_name' AND ENGINE = 'MyISAM';" > myisam.txt
Получив таким образом список SQL запросов в файле myisam.txt
, необходимо его выполнить используя команду:
/usr/bin/mysql --defaults-extra-file=/etc/mysql/debian.cnf your_database_name < myisam.txt