Допустим у нас есть mysql база данных site_db, а в ней таблица tablename.
Нам нужно конвертировать таблицу tablename из myisam в innodb.
По идее всё просто.
mysql -u root -p
USE site_db;
ALTER TABLE tablename ENGINE=InnoDB;
Но в жизни мы можем получить следующий ответ ответ
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;
в ответ получим что-то такое
Query OK, 6175950 rows affected (20 min 56.88 sec)
Records: 6175950 Duplicates: 0 Warnings: 0
а затем снова пробуем конвертировать
ALTER TABLE tablename ENGINE=InnoDB;
В этот раз должно всё получиться.
Не забывайте использовать screen, если работаете с большими базами данных.