Допустим у нас есть mysql база данных site_db, а в ней таблица tablename.
Нам нужно конвертировать таблицу tablename из myisam в innodb.

По идее всё просто.

1
2
3
mysql -u root -p
USE site_db;
ALTER TABLE tablename ENGINE=InnoDB;

Но в жизни мы можем получить следующий ответ ответ

1
ERROR 1214 (HY000): The used table type doesn't support FULLTEXT indexes

И вот здесь можно побороться. SHOW CREATE TABLE tablename;

Нам покажут много строк, среди которых будет строчка с текстом FULLTEXT KEY key_name (column_list)

или что-то около того. Важно чтоб в начале было FULLTEXT KEY. Запомнили этот ‘key_name’. Удаляем этот индекс ALTER TABLE tablename DROP INDEX key_name;

в ответ получим что-то такое

1
2
Query OK, 6175950 rows affected (20 min 56.88 sec)
Records: 6175950 Duplicates: 0 Warnings: 0

а затем снова пробуем конвертировать ALTER TABLE tablename ENGINE=InnoDB;

В этот раз должно всё получиться. Не забывайте использовать screen, если работаете с большими базами данных.