Для начала настройте сервер на поддержку движка InnoDB или уберите, в зависимости от того в какую сторону вам нужно конвертировать таблицы
Откройте конфиг mysql и убедитесь что там нет или закоментирована сточка skip-innodb или добавьте ее в случае использования MyISAM
Так же для innodb убедитесь в параметре innodb_data_file_path. :
1 | innodb_data_file_path = ibdata1:100M:autoextend |
Процедура конвертации
Создаем дамп нужной нам базы
1 | mysqldump -u USER -pPASSWD DBNAME > db.sql |
Для конвертации движка таблис с MyISAM в InnoDB выполните следующую команду:
1 | sed 's/ENGINE=MyISAM/ENGINE=InnoDB/g' db.sql > dbinnodb.sql |
или обратно с InnoDB в MyISAM:
1 | sed s/ENGINE=InnoDB/ENGINE=MyISAM/g db.sql > dbmyisam.sql |
удаляем старую базу:
1 | mysqladmin -u USER -p drop DBNAME |
Создаем ее заново:
1 | mysqladmin -u USER -p create DBNAME |
и заливаем готовую с конвертированную базу:
1 | mysql -u USER -p DBNAME < db.sql |