Конвертація типу движка таблиць mysql з myisam в innodb і назад enchanted technology

Якщо перед вами постало завдання конвертувати таблиці MyISAM в InnoDB (або навпаки), то можете скористатися моєю інструкцією.

Я проводжу конвертацію sql дампа через це створює даунтайм на час операції.

попередньо

Перед тим як почати варто переконатися, що в конфіги mysql включена підтримка InnoDB і інші параметри налаштовані вірно, інакше втратите і час і нерви.

Відкрийте конфиг mysql 1) і переконайтеся що там немає або закоментірована точки skip-innodb (якщо ви навпаки відмовляєтеся від innodb, то надалі можете додати цей рядок, це дозволить заощадити пам'ять на непотрібному движку).

Так само для innodb переконайтеся в правильності параметра innodb_data_file_path. Він повинен бути схожий на:

де 100M - мінімальний створюваний розмір файлу під зберігання таблиць, autoextend - дозволяє автоматичне збільшення цього файлу.

Якщо у цього параметра встановлено ще ключ max: NN - то або видаліть його зовсім, або виставите * NN * в максимальний розмір для однієї таблиці, інакше імпорт дампа може випасти за цей ліміт і доведеться його міняти.

Або за місце innodb_data_file_path використовувати innodb_file_per_table. тоді під кожну таблицю буде використовуватися свій окремий файл.

Будь-які зміни в конфігурації зажадає перезапуску mysql сервера.

Конвертація

Всі операції виконуються в консолі.

Створення вихідного дампа бази: