에어플로우 설치중 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
반응형