关于Airflow 2.2.0配置LocalExecutor关联MySQL后端时初始化失败的技术求助
解决Airflow 2.2.0 + LocalExecutor + MySQL初始化时的dagruntype转换错误
我之前也踩过一模一样的坑!在Airflow 2.2.0版本切换到LocalExecutor+MySQL时,确实会因为驱动兼容性问题触发这个dagruntype转换错误,下面是亲测有效的解决步骤:
核心问题原因
Airflow 2.2.0引入了自定义的DagRunType枚举类型,而你使用的mysqlconnector驱动没有为这个类型实现对应的MySQL转换方法(也就是报错里提到的_dagruntype_to_mysql),导致初始化数据库时类型转换失败。换成mysqlclient驱动就能解决这个兼容性问题。
具体解决步骤
第一步:替换MySQL驱动
先卸载可能已安装的mysql-connector-python,然后安装mysqlclient:pip uninstall -y mysql-connector-python pip install mysqlclient第二步:修改Airflow数据库连接配置
打开airflow.cfg文件,保持executor = LocalExecutor不变,将sql_alchemy_conn修改为使用mysqldb驱动的格式:sql_alchemy_conn = mysql+mysqldb://<user>:<pass>@localhost:3306/airflow_db第三步:清理并重新初始化数据库
之前的失败初始化可能导致数据库存在残缺的表结构,建议先清理后重建:DROP DATABASE airflow_db; CREATE DATABASE airflow_db CHARACTER SET utf8; GRANT ALL PRIVILEGES ON airflow_db.* TO <user>; FLUSH PRIVILEGES;然后执行初始化命令:
airflow db init
这样操作后,应该就能顺利完成数据库初始化,LocalExecutor也能正常工作了。
内容的提问来源于stack exchange,提问作者Aaron Gonzalez
相关产品推荐
相关产品推荐

