Ошибка MySQL: «Неизвестный движок таблиц« InnoDBopt »» - PullRequest
0 голосов
/ 21 ноября 2010

Я получаю следующую ошибку для некоторого кода из старого приложения:

A Database Error Occurred
Error Number: 1286

Unknown table engine 'InnoDBopt'

INSERT INTO `sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`) VALUES ('2ef196aba7f060308be6b7bc1133671f', '127.0.0.1', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) Ap', 1290342372)

Я использую MySQL версии 5.1.36.Это приложение было разработано некоторое время назад, поэтому, скорее всего, мне просто нужно понизить версию MySQL, чтобы запустить это?Если это так, пожалуйста, сообщите, какая версия мне нужна для запуска.

Редактировать: Чтобы уточнить, мне пришлось скопировать базу данных из одной установки mysql в другую, поэтому я скопировал все внутри `c: / mysql / data 'для другой установки MySQL, это, вероятно, причина этой проблемы.

Ответы [ 5 ]

3 голосов
/ 06 ноября 2012

Убедитесь, что пользователь mysql может писать в / tmp. Я получил «Неизвестный движок таблиц InnoDB» после восстановления, где / tmp не был доступен для записи для этого пользователя.

2 голосов
/ 04 февраля 2014

Есть еще одна причина, по которой движок INNODB отсутствует в MySQL.Если ваша переменная innodb_buffer_pool_size слишком велика и MySQL не может выделить буфер, он отключит механизм INNODB.

В журнале ошибок вы должны увидеть что-то подобное:

140204 13:12:26  InnoDB: Initializing buffer pool, size = 4.9G
140204 13:12:26  InnoDB: Error: cannot allocate 5242896384 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 36878736 bytes. Operating system errno: 12
InnoDB: Check if you should increase the swap file or
InnoDB: ulimits of your operating system.
InnoDB: On FreeBSD check you have compiled the OS with
InnoDB: a big enough maximum process size.
InnoDB: Note that in most 32-bit computers the process
InnoDB: memory space is limited to 2 GB or 4 GB.
InnoDB: We keep retrying the allocation for 60 seconds...
140204 13:13:26InnoDB: Fatal error: cannot allocate the memory for the buffer pool
140204 13:13:26 [ERROR] Plugin 'InnoDB' init function returned error.
140204 13:13:26 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

Эта ошибкабыл зарегистрирован на сервере с 1 ГБ ОЗУ при запросе пула буферов 4.9G

1 голос
/ 21 ноября 2010

Как предположил Пекка, нет движка 'InnoDBopt'

Попробуйте show engines;

Если mysql возвращает что-то вроде

+------------+----------+----<br> | Engine | Support | ...<br> +------------+----------+----<br> | InnoDB | DISABLED | ...

Скорее всего, двигатель innodb отключен.
Ищите опцию skip-innodb в вашей конфигурации mysql (например, my.cnf),
закомментируйте эту опцию,
перезапустите демон mysql, он должен исправить

0 голосов
/ 21 ноября 2010

Выполнить SHOW CREATE TABLE sessions, а затем выполнить SHOW engines

В конце результата первой команды вы увидите что-то вроде ENGINE = xyz

xyz должен быть в списке, возвращаемомSHOW engine

Редактировать: Чтобы быть более точным: результат SHOW CREATE TABLE sessions примерно такой:

Table: sessions Create Table: CREATE TABLE sessions ( ................ ) ENGINE=xyz

, где xyz может быть MyIssam, Innodb и т. Д.

0 голосов
/ 21 ноября 2010

где определяется движок таблицы? в my.cnf? проверьте правописание в my.cnf ... "opt" звучит как путь к файлу журнала или что-то определенное в файле конфигурации.

...