Отсутствует движок InnoDb

Я только что просмотрел одну из баз данных моего сайта и заметил, что все таблицы были преобразованы в MyISAM (раньше они были InnoDB).

Более того, кажется, что InnoDB отсутствует, как и BerkeleyDB, Federated и другие.

Несколько месяцев назад я обновился с MySql 5.0 до 5.1.38. Я не могу себе представить, что я бы не заметил, если бы InnoDB не был установлен после обновления, но, возможно, так оно и было с момента обновления. Наличие нескольких 10-гигабайтных таблиц, автоматически конвертирующих себя в MyISAM без каких-либо сообщений о простоях, кажется мне очень маловероятным.

Несмотря на это, для системной переменной mysql have_innodb установлено значение NO. Могу ли я просто изменить это на YES или это означает, что InnoDB отсутствует в установке?


person Greg    schedule 05.12.2009    source источник


Ответы (4)


Возможно, параметры InnoDB были изменены во время обновления? Этот совет от MySQL Forums помог мне в похожей ситуации: http://forums.mysql.com/read.php?22,397052,408970

Вкратце: остановите демон MySQL, удалите ib_logfile* из каталога данных, перезапустите MySQL.

person karttu    schedule 25.05.2011

Если в поле SHOW ENGINES указано "нет", это означает, что он не скомпилирован. Вам нужно либо снова скомпилировать сервер, либо скомпилировать плагин innodb и загрузите его или получите двоичные файлы сервера, на которых он включен.

person johannes    schedule 05.12.2009

Вы не можете просто установить для системной переменной mysql значение YES, чтобы преобразовать таблицу из MyISAM в InnoDB.

ALTER TABLE t1 ENGINE=InnoDB;

Когда поддержка InnoDB отключена, даже если вы используете ENGINE=InnoDB в своих операторах создания таблицы, таблица будет использовать механизм хранения по умолчанию для MySQL, которым обычно является MyISAM.

person Yada    schedule 06.12.2009

Также может быть, что файл журнала innodb[01] поврежден. В этом случае движок будет отображаться как отключенный, а таблицы — как ISAM. В журнале это будет упомянуто.

person Joel Box    schedule 30.08.2011