MySQL 또는 MariaDB를 설치한 다음 InnoDB를 데이터베이스로 사용하다 성능 튜닝을 위해 버퍼풀 사이즈를 늘려야 하는 경우 innodb_buffer_pool_size
값을 변경해야 합니다.
InnoDB: Error: log file ./ib_logfile0 is of different size 0 67,108,864 bytes InnoDB: than specified in the .cnf file 0 268435456 bytes!
innodb_buffer_pool_size
를 변경하는 경우 버퍼풀 크기의 25% 정도로 로그 파일을 지정해야 하는데 로그 파일 크기를 지정하는 innodb_log_file_size
값을 변경하고 서비스를 시작하는 경우 기존의 로그 파일 사이즈와 맞지 않아 위와 같은 오류가 나기 때문에 MySQL 서비스를 완전히 내린 다음 InnoDB 파일을 삭제하고 다시 서비스를 올려야 합니다.
목차
innodb_log_file_size 크기 변경하기
innodb_log_file_size = 256M
우선 my.cnf 파일을 편집기로 열어 innodb_log_file_size
항목을 원하는 값으로 설정합니다.
innodb_buffer_pool_size
가 1G인 경우에는 innodb_log_file_size
를 256M로 설정하면 됩니다.
MySQL 레퍼런스에서는 256M 이상의 크기는 Crush 발생시 복구 시간이 오래 걸려 권장하고 있지 않으니 버퍼풀 크기가 더 커도 256M 정도로 설정하면 되겠습니다.
# service mysql stop # ll /var/lib/mysql/ -rw-rw---- 1 mysql mysql 67108864 Mar 25 02:21 ib_logfile0 -rw-rw---- 1 mysql mysql 67108864 Mar 25 02:21 ib_logfile1 -rw-rw---- 1 mysql mysql 67108864 Mar 24 18:18 ib_logfile2 # service mysql start
MySQL 서비스를 내린 다음 InnoDB 파일이 위치한 경로를 확인 후 ib_logfile 형식의 파일을 삭제합니다.
삭제를 완료하면 다시 서비스를 올리면 innodb_buffer_pool_size
값 변경이 완료됩니다.