Вот простой трюк для перевода всех 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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *