본문 바로가기
빅데이터/airflow

[airflow] 에어플로우 DB 초기화 중 Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql 오류

by hs_seo 2021. 11. 30.

에어플로우 설치중 mysql 5.x 버전을 이용할 때 다음과 같은 오류가 발생하는 경우가 있습니다.

 

  File "/home/deploy/.local/lib/python3.6/site-packages/alembic/runtime/migration.py", line 560, in run_migrations
    step.migration_fn(**kw)
  File "/home/deploy/.local/lib/python3.6/site-packages/airflow/migrations/versions/0e2a74e0fc9f_add_time_zone_awareness.py", line 44, in upgrade
    raise Exception("Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql")
Exception: Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql

 

이 경우 mysql 에 해당 설정을 변경하고, 재시작 해주어야 합니다. mysql 8.x 버전 부터는 해당 설정이 기본값이 1(on)이기 때문에 변경하지 않아도 됩니다.

 

mysql 설정 확인

mysql> SHOW GLOBAL VARIABLES LIKE '%timestamp%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| explicit_defaults_for_timestamp | OFF   |
| log_timestamps                  | UTC   |
+---------------------------------+-------+
2 rows in set (0.01 sec)

 

해결방법: mysql 설정 변경

# /etc/mysql/my.cnf 설정 변경
[mysqld]
explicit_defaults_for_timestamp=1

 

반응형