1298: Unknown or incorrect time zone
MySQL의미
지정한 시간대 이름을 MySQL이 인식하지 못했다. CONVERT_TZ() 호출, time_zone 설정, 또는 이름 있는 시간대(예: 'Europe/Istanbul')를 참조하는 작업이 해당 시간대가 서버에 정의되어 있지 않아 실패했다.
원인
MySQL이 이름 있는 시간대를 사용하려면 mysql 스키마의 시간대 테이블(time_zone, time_zone_name 등)이 로드되어 있어야 한다. 이 테이블이 비어 있으면 숫자 오프셋('+03:00')만 동작하고 이름 있는 시간대는 알 수 없어 이 오류가 발생한다.
해결 방법
시간대 테이블을 로드한다. Linux에서는 mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql로 시스템 zoneinfo 데이터를 가져온 후 서버를 재시작하거나 FLUSH TABLES를 실행한다. 이름 있는 시간대를 로드할 수 없다면 숫자 오프셋('+03:00')을 사용한다. 이름의 철자를 확인한다(대소문자, 'Europe/Istanbul').
같은 데이터베이스의 다른 항목
- 1197Multi-statement transaction required more than 'max_binlog_cache_size' (다중 문장 트랜잭션이 'max_binlog_cache_size'보다 많은 공간을 요구함)
- 1785Statement violates GTID consistency
- 3024Query execution was interrupted, maximum statement execution time exceeded (쿼리 실행이 중단됨. 최대 문장 실행 시간 초과)
- 1418Function has none of DETERMINISTIC, NO SQL, or READS SQL DATA (binary logging enabled) (함수에 DETERMINISTIC, NO SQL, READS SQL DATA 중 어느 것도 없음)
- 1231Variable can't be set to the value of ... (변수를 해당 값으로 설정할 수 없음)