Как изменить innodb_log_file_size?
Aug 4, 2016 15:08 · 186 words · 1 minute read
Если остановить MySQL-сервер, изменить значение параметра innodb_log_file_size
в конфигурациионном файле /etc/mysql/my.cnf
и запустить сервер, то увидим ошибку InnoDB: Error: log file ./ib_logfile0 is of different size
. Давайте разберемся!
Движок InnoDB для повышения скорости работы системы сначала пишет изменения в бинарный лог innodb_log_file
. При значительном количестве данных размер этого файла тоже следует увеличить (по умолчанию используется значение 5 МБ).
Просмотреть текущее значение параметра innodb_log_file_size
можно таким запросом:
show variables like 'innodb_log_file_size';
Пример результата:
+----------------------+---------+
| Variable_name | Value |
+----------------------+---------+
| innodb_log_file_size | 5242880 |
+----------------------+---------+
1 row in set (0.00 sec)
Для того, чтобы увеличить размер бинарного лога, останавливаем MySQL-сервер:
/etc/init.d/mysql stop
Далее в конфигурационном файле /etc/mysql/my.cnf
находим и изменяем значение параметра innodb_log_file_size
:
...
innodb_log_file_size = 64M
...
Далее переименуем (или переместим из рабочей директории в другой каталог) существующие лог-файлы:
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bak
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bak
После всех проделанных действий нужно запустить MySQL-сервер и увидеть в логах следующие сообщения:
...
InnoDB: Log file ./ib_logfile0 did not exist: new to be created
...
InnoDB: Log file ./ib_logfile1 did not exist: new to be created
...
Если все прошло гладко, старые бинарные логи можно удалить:
rm -rf /var/lib/mysql/ib_logfile*.bak