MySQL 8.0에서 제거된 옵션과 변수
MySQL 8.0으로 업그레이드할 때 기존 설정 파일에 더 이상 유효하지 않은 옵션이 포함되어 있으면 서버 시작이 실패할 수 있습니다. 따라서 제거된 옵션과 변수를 미리 파악해 두는 것이 중요합니다. 아래는 MySQL 8.0에서 제거된 대표적인 옵션과 변수 목록입니다.
1. InnoDB 관련 변수
- innodb_available_undo_logs: InnoDB 롤백 세그먼트(undo logs)의 총 개수를 나타냅니다. 활성 상태의 롤백 세그먼트 수를 표시하는 innodb_rollback_segments와는 의미가 다릅니다. MySQL 8.0.2에서 제거되었습니다.
- innodb_file_format_check: InnoDB가 파일 형식 호환성 검사를 수행할지 여부를 결정하는 변수입니다. MySQL 8.0.0에서 제거되었습니다.
- innodb_file_format_max: 공유 테이블스페이스에 기록된 파일 형식 태그를 나타냅니다. MySQL 8.0.0에서 제거되었습니다.
2. 쿼리 캐시(Query Cache) 관련 변수
MySQL 8.0에서는 쿼리 캐시 기능 자체가 완전히 제거되었기 때문에 관련 변수들도 모두 삭제되었습니다.
- Qcache_free_blocks: 쿼리 캐시에서 사용 가능한 메모리 블록의 수를 나타냅니다. MySQL 8.0.3에서 제거되었습니다.
- Qcache_free_memory: 쿼리 캐시에 사용 가능한 여유 메모리의 양을 나타냅니다. MySQL 8.0.3에서 제거되었습니다.
- query_cache_limit: 지정된 크기보다 큰 쿼리 결과는 캐시에 저장하지 않도록 설정하는 변수입니다. MySQL 8.0.3에서 제거되었습니다.
- query_cache_size: 이전 쿼리의 결과를 저장하기 위해 할당된 메모리 크기를 나타냅니다. MySQL 8.0.3에서 제거되었습니다.
3. 날짜 및 시간 형식 관련 변수
- date_format: DATE 형식을 지정하는 변수였으나 실제로는 사용되지 않았습니다. MySQL 8.0.3에서 제거되었습니다.
- datetime_format: DATETIME/TIMESTAMP 형식을 지정하는 변수였으나 사용되지 않았습니다. MySQL 8.0.3에서 제거되었습니다.
- time_format: TIME 형식을 지정하는 변수였으나 사용되지 않았습니다. MySQL 8.0.3에서 제거되었습니다.
4. 파티셔닝 관련 옵션
- partition: 파티셔닝 지원을 활성화하거나 비활성화하는 옵션입니다. MySQL 8.0.0에서 제거되었습니다.
- skip-partition: 사용자 정의 파티셔닝이 활성화되지 않도록 강제하는 옵션입니다. MySQL 8.0.0에서 제거되었습니다.
5. 트랜잭션 관련 변수
- tx_isolation: 기본 트랜잭션 격리 수준(isolation level)을 지정하는 변수입니다. MySQL 8.0.3에서 제거되었으며, 이후 transaction_isolation으로 대체되었습니다.
- tx_read_only: 기본 트랜잭션 액세스 모드를 지정하는 변수입니다. MySQL 8.0.3에서 제거되었으며, 이후 transaction_read_only로 대체되었습니다.
6. 기타 옵션
- bootstrap: MySQL 설치 스크립트에서 내부적으로 사용되던 옵션입니다. MySQL 8.0.0에서 제거되었습니다.
업그레이드 시 주의사항
MySQL 5.7에서 8.0으로 업그레이드하기 전에 위에서 언급한 옵션이나 변수가 설정 파일(my.cnf 또는 my.ini)에 포함되어 있지 않은지 반드시 확인해야 합니다. 제거된 옵션이 남아 있으면 MySQL 서버가 정상적으로 시작되지 않을 수 있습니다. 특히 쿼리 캐시 관련 변수를 사용 중이었다면, MySQL 8.0에서는 해당 기능이 사라졌으므로 애플리케이션 측 캐싱 전략이나 다른 성능 최적화 방안을 검토하는 것이 좋습니다.