Как включить поддержку inno-db в MySql 5, установленном выше MySql 4?

Как включить поддержку inno-db для установленного экземпляра MySql?

Я установил mysql-5.0.67-win32. «InnoDB» «ОТКЛЮЧЕН» при выполнении «show engine». Согласно документации, MySql скомпилирован с поддержкой inno-db (Из документа: значение DISABLED возникает либо потому, что сервер был запущен с параметром, отключающим движок, либо потому, что были заданы не все параметры, необходимые для его включения.)

В my.ini я прокомментировал строку «skip-innodb». Это не помогло. Все остальные переменные, связанные с inno-db, остаются без изменений.

Я совершил какое-то необычное действие, прежде чем столкнулся с описанной ситуацией. У меня установлен mysql-4.0.17-win. Я удаляю его и после этого устанавливаю mysql-5.0.67-win32. В мастере установки я выбрал только поддержку MyISAM (насколько я понимаю, таким образом я отключил поддержку inno-db. Когда я пытался переустановить с поддержкой inno-db, у меня были проблемы с использованием моей предыдущей базы данных «mysql» с информацией об учетной записи) .

В документации MySQL сказано, что я должен использовать mysqldump для экспорта данных, а затем для импорта экспортированных данных в процессе обновления. Я пытался так сделать, но при импорте данных получил сообщение о синтаксической ошибке (думаю, что это связано с какой-то несовместимостью 4-й и 5-й версии mysql)


person sergtk    schedule 21.09.2008    source источник


Ответы (6)


Должен быть включен по умолчанию. Есть некоторые ситуации, когда неправильные разрешения для папки lib MySQL вызывают лай InnoDB. Проверьте журнал ошибок MySQL на наличие ошибок разрешений.

person Armin Ronacher    schedule 21.09.2008
comment
Я отключил его по умолчанию. Я добавляю в описание причину этого. Разрешение в порядке. - person sergtk; 22.09.2008

У меня есть следующие параметры innodb в my.ini. Это очень минимальная конфигурация, поэтому не используйте эти значения, если хотите, чтобы mysql имел хорошую производительность. Пожалуйста, перезапустите mysql после изменения my.ini.

#*** INNODB Specific options ***
innodb_data_home_dir="C:/mysqldata/"
#skip-innodb
innodb_additional_mem_pool_size=120M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=16M
innodb_buffer_pool_size=10M
innodb_log_file_size=2M
innodb_thread_concurrency=8
person boes    schedule 21.09.2008

Возможно, у вас отключен inno-db в файле глобальной конфигурации. В Linux это будет что-то вроде /etc/mysql/my.cnf — возможно, в Windows есть аналогичный глобальный файл конфигурации.

person PiedPiper    schedule 21.09.2008
comment
Я прокомментировал строку с помощью «skip-innodb». Это не помогает :( - person sergtk; 22.09.2008

Убедитесь, что вы меняете правильный файл my.ini. В Windows это читается из многих мест. Порядок:

  1. WINDIR\my.ini, WINDIR\my.cnf
  2. C:\my.ini, C:\my.cnf
  3. КАТАЛОГ УСТАНОВКИ\my.ini, КАТАЛОГ УСТАНОВКИ\my.cnf
  4. дополнительный файл по умолчанию

Введите mysql --help в командной строке, чтобы увидеть фактический порядок на вашем компьютере, например:

Параметры по умолчанию считываются из следующих файлов в указанном порядке: C:\my.ini C:\my.cnf C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\Program Files\MySQL\M ySQL Server 5.0\my.ini C:\Program Files\MySQL\MySQL Server 5.0\my.cnf

person daremon    schedule 21.09.2008
comment
Спасибо за информацию. Мне было интересно, каким образом mysql находит файлы конфигурации. Но теперь у меня есть только один (выбранный) my.ini. Я даже переименовал стандартный файл my.ini. - person sergtk; 22.09.2008

вы проверяли параметры запуска? возможно, сценарий оболочки или пакетный файл, который вы используете для запуска сервера, отключают двигатель в командной строке. Флаги командной строки IIRC превосходят настройки .ini.

person paan    schedule 21.09.2008

Я решил проблему.

Вкратце: у меня не получилось сбросить базы на MySql4 и восстановить на MySql5 из-за каких-то странных синтаксических ошибок при импорте данных.

Я попытался после установки переопределить базы данных MySql5 старыми, включая базу данных «mysql». Он работает нормально, но мне не удалось включить поддержку inno-db. (Так я даже смог использовать функцию PASSWORD для старых паролей (вместо OLD_PASSWORD))

Поскольку структура базы данных «mysql» изменена в версии 5, я попытался снова установить MySql5 и скопировал свои старые базы данных, кроме «mysql». После этого я обновил базу данных «mysql» с исправленной версией экспортированных данных из «mysql». Таким образом я получил работающий mysql 5.

В конце концов, я также выполнил
mysqlcheck --all-databases --auto-repair
для обновления своих таблиц.

P.S. Спасибо авторам всех ответов, которые подсказывают мне правильный путь решения проблемы.

person sergtk    schedule 23.09.2008