Error: log file ./ib_logfile0 is of different size


Ошибка 'log file ib_logfile0 is of different size' в логах может сопроводдать сбои в работе MySQL он может не запускаться или же может просто не инициализироваться движок InnoDB. Полностью сообщения в логе ошибок сервера баз данных могут выглядеть так:



170807 15:00:44 [Note] Plugin 'BLACKHOLE' is disabled.
170807 15:00:44 InnoDB: The InnoDB memory heap is disabled
170807 15:00:44 InnoDB: Mutexes and rw_locks use GCC atomic builtins
170807 15:00:44 InnoDB: Compressed tables use zlib 1.2.7
170807 15:00:44 InnoDB: Using Linux native AIO
170807 15:00:44 InnoDB: Initializing buffer pool, size = 10.0G
170807 15:00:45 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 524288000 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
InnoDB: Possible causes for this error:
(a) Incorrect log file is used or log file size is changed
(b) In case default size is used this log file is from 10.0
(c) Log file is corrupted or there was not enough disk space
In case (b) you need to set innodb_log_file_size = 48M
170807 15:00:45 [ERROR] Plugin 'InnoDB' init function returned error.
170807 15:00:45 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.



Значения здесь имеют строки про innodb_log_file_size и лог файл.



Как устранить ошибку Error: log file ./ib_logfile0 is of different size


В файл /etc/mysql/my.cnf добавляем параметр с указанным в логе ошибок значением, в данном случае добавим

mcedit /etc/mysql/my.cnf

innodb_log_file_size = 48M



Значение можно варьировать, но как правило имеет указывать его таким какое упоминается в логе



Далее удаляем или перемещаем в другой каталог лог-файлы ib_logfile0 и ib_logfile1, размер одного из которых не устраивал MySQL

rm /var/lib/mysql/ib_logfile*



Можно переместить файлы в директорию /root, например. При необходимости вернуть всё в изначальное состояние можно будет переместить их обратною.



Перезапускаем службу

/etc/init.d/mysql restart



После проделанных действий MySQL стартует и инициирует InnoDB. После старта службы нужно проверить её статус через systemctl status mysql и убедиться в том, что в логах ошибок про InnoDB нет.

log file ib_logfile0 is of different size


Читайте про серверную оптимизацию MySQL.

Сказать спасибо