InnoDB: Ошибка: файл журнала ./ib_logfile0 имеет разный размер

Я просто добавил следующие строки в /etc/mysql/my.cnf после того, как я преобразовал одну базу данных для использования механизма InnoDB.

innodb_buffer_pool_size = 2560M
innodb_log_file_size    = 256M
innodb_log_buffer_size  = 8M
innodb_flush_log_at_trx_commit  = 2
innodb_thread_concurrency   = 16
innodb_flush_method = O_DIRECT

Но он поднимает «ERROR 2013 (HY000) в строке 2: Потерянное соединение с сервером MySQL во время запроса« ошибка перезапуска mysqld. И журнал ошибок mysql показывает следующее

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
100118 20:52:52 [ERROR] Plugin 'InnoDB' init function returned error.
100118 20:52:52 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
100118 20:52:52 [ERROR] Unknown/unsupported table type: InnoDB
100118 20:52:52 [ERROR] Aborting

Итак, я прокомментировал эту строку

# innodb_log_file_size  = 256M

И он успешно перезапустил mysql.

Интересно, что такое «5242880 байт файла журнала», показанное в ошибке mysql? Это первая база данных на движке InnoDB на этом сервере, так когда и где создается этот файл журнала? В этом случае, как я могу включить директиву innodb_log_file_size в my.cnf?

ИЗМЕНИТЬ

Я попытался удалить /var /lib /mysql /ib_logfile0 и перезапустить mysqld, но он все равно не удался. Теперь он показывает следующее в журнале ошибок.

100118 21:27:11  InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 256 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100 200
InnoDB: Error: log file ./ib_logfile1 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!

Разрешение

Теперь он работает после удаления обоих ib_logfile0 и ib_logfile1 в /var /lib /mysql

100 голосов | спросил jack 19 Jam1000000amTue, 19 Jan 2010 06:02:13 +030010 2010, 06:02:13

1 ответ


112

InnoDB безумно придирчив к его конфигурации; если что-то не так, оно просто сдастся и отправится домой. Чтобы внести изменения в размер файла журнала без потери данных:

  1. Отмените любые изменения конфигурации, которые вы внесли в размер файла журнала, и снова запустите MySQL.
  2. В вашем запуске MySQL: SET GLOBAL innodb_fast_shutdown = 0;
  3. Остановить MySQL
  4. Измените конфигурацию на размер файла журнала.
  5. Удалить оба файла журнала.
  6. Запустите MySQL. Он будет жаловаться на отсутствие файлов журналов, но он их создаст, и все будет хорошо.
ответил womble 19 Jam1000000amTue, 19 Jan 2010 06:06:49 +030010 2010, 06:06:49

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132