Подтвердить что ты не робот

Неизвестный движок таблицы 'InnoDB'

Недавно я узнал, что могу максимизировать производительность mysql, если у меня есть хорошее оборудование. Поскольку я использовал InnoDB, я добавил дополнительную конфигурацию в my.ini

Вот недавно добавленные конфигурации:

innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 2G
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 120

Затем я перезапускаю все службы. Но когда я использовал свою программу, произошла ошибка "Неизвестный движок таблицы" InnoDB ".

Что я пытался решить эту проблему:

  • Я удаляю файл журнала для перезапуска службы, но у меня все еще есть ошибка.
4b9b3361

Ответ 1

Другие решения не устранили мою проблему. Двигатель InnoDB был отключен после настройки конфигурации.

Удаление файлов borked ib_ * в mysql data dir исправил мою проблему и разрешил использовать буферный буфер 2G для InnoDB: http://www.turnkeylinux.org/forum/support/20090111/drupal-6-problem-enable-innodb#comment-131

Ответ 2

1. Проверьте, включена ли поддержка InnoDB:

mysql> show variables like 'have_innodb';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb   | YES   |
+---------------+-------+
1 row in set (0.00 sec)

2.Если значение выше ВЫКЛЮЧЕНО, вам необходимо включить InnoDB.

3. Откройте файл конфигурации MySQL. На разных платформах файл конфигурации может отличаться в имени и местоположении файла:

  • Windows: $MYSQL_INSTALL_DIRECTORY/my.ini

  • Linux/Unix:/etc/mysql/my.cnf

4.Если параметр skip-innodbis раскомментирован/существует, то просто прокомментируйте его:

 # skip-innodb

сервер 5.Shutdown MySQL, удалите/переименуйте журналы MySQL, чтобы обновить всю регистрацию сервера, и перезапустите сервер MySQL:

  • Linux:

    ~$: /etc/init.d/mysql stop

    ~$: rm /var/lib/mysql/ib_logfile*

    ~$: /etc/init.d/mysql start

  • Окна:

    Перейдите в $MYSQL_INSTALL_DIRECTORY/data и удалите/переместите файлы журнала с префиксом ib_logfile.

Ответ 3

Я просто попробовал удалить файл журнала и перезапустил службы, и он работает! Но остерегайтесь выделения 2G, потому что innodb может не компилироваться, используйте 1G, если 2G не работает.

Ответ 4

Я столкнулся с этой проблемой. Проблема заключалась в том, что я выделял больше памяти для InnoDB, чем сервер с переменной innodb_buffer_pool_size. MySQL не жаловался на то, что не смог выделить память в своих журналах об этом.

Ответ 5

Я пробовал все эти (и многие другие), но тот метод, который работал для меня:

  • Остановить сервер MySql
    /etc/init.d/mysql stop
  • Удалить файлы журнала
    rm ib_logfile0 ib_logfile1
  • Переименуйте файл InnoDB (Если ничего не работает, потому что он будет воссоздан) mv ibdata1 old_ibdata1
  • У меня есть это configs в /etc/mysql/my.cnf → Даже если вы не укажете это, MySql будет использовать значения по умолчанию.

    [mysqld]
    datadir=/data/mysql/data
    socket=/var/run/mysqld/mysqld.sock
    
    #Not a must to define the following
    innodb_log_file_size=1G
    innodb_file_per_table=1
    innodb_flush_method=O_DIRECT
    innodb_buffer_pool_size=1G
    innodb_data_file_path=ibdata1:10M:autoextend
    innodb_lock_wait_timeout=18000
    
  • Запустите сервер MySql
    /etc/init.d/mysql start

Ответ 6

Еще один вариант, который вы имеете, если полностью замаскировать свой файл my.cnf, - это заменить его конфигурацией по умолчанию из установки mysql. Для linux:

У вас есть следующие опции:

/usr/share/mysql/my-huge.cnf
/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-small.cnf

Вот пример его установки:

#backup original config
mv /etc/my.cnf{,.bak}

#copy new my.cnf from template
cp /usr/share/mysql/my-large.cnf /etc/my.cnf

Более подробную информацию об этих параметрах можно найти на http://dev.mysql.com/doc/mysql/en/option-files.html

Ответ 7

Была ли эта проблема при восстановлении из резервной копии. Проблема в том, что у меня были разные настройки в my.ini. Поэтому, если кто-то получит эту проблему, обязательно установите одинаковые настройки (скопируйте my.ini), остановите службу MySQL, затем восстановите всю папку данных и снова запустите службу MySQL.