Отсутствует InnoDb Engine - PullRequest
       19

Отсутствует InnoDb Engine

2 голосов
/ 06 декабря 2009

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 25 мая 2011

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

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

1 голос
/ 06 декабря 2009

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

ALTER TABLE t1 ENGINE=InnoDB;

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

1 голос
/ 06 декабря 2009

Если поле в ПОКАЗАТЬ ДВИГАТЕЛИ имеет значение «нет», это означает, что оно не скомпилировано. Вам придется либо скомпилировать сервер снова, скомпилировать плагин innodb и загрузить его, либо получить двоичные файлы сервера, на которых он включен.

0 голосов
/ 31 августа 2011

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

...