Как включить поддержку inno-db на MySql 5, установленном выше MySql 4? - PullRequest
2 голосов
/ 22 сентября 2008

Как включить поддержку 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)

Ответы [ 6 ]

4 голосов
/ 22 сентября 2008

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

3 голосов
/ 22 сентября 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
1 голос
/ 22 сентября 2008

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

  1. WINDIR \ my.ini, WINDIR \ my.cnf
  2. C: \ my.ini, C: \ my.cnf
  3. INSTALLDIR \ my.ini, INSTALLDIR \ my.cnf
  4. по умолчанию-экстра-файл

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

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

1 голос
/ 22 сентября 2008

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

0 голосов
/ 23 сентября 2008

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

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

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

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

Ведь я тоже казнил
mysqlcheck --all-databases --auto-repair
обновить мои таблицы.

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

0 голосов
/ 22 сентября 2008

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

...