airflow使用mysql作为db
airflow在使用过程中的各种组件是可以进行适当的替换的,方便大家在使用过程中采用比较符合自己技术栈的相关组件。
比如,我们可以将airflow模型链接的数据库换成mysql
- 安装mysql服务
- 对mysql进行一定的配置
- 启动mysql:
mysql
- 常见需要使用的数据库:
create database airflowdb;
- 检查数据库创建是否成功:
show databases;
- 给指定的用户适当的权限
create user 'airflow'@'%' IDENTIFIED BY '123456';
GRANT all privileges on airflowdb.* TO 'airlfow'@'%';
- 将数据库airflowdb的所有权限赋予用户airflow,密码123456,且该用户可以在任何IP段进行操作
- 官方文档中提示airflow只需要CREATE和ALTER权限
- 但是在实际使用中发现需要如下权限:
- CREATE,ALTER,INSERT,UPDATE,INDEX,DEL,SELECT,DROP,ALTER,REFERENCES
- 授权检查:
show grants for 'airflow'@'%';
- 启动mysql:
- airflow.cfg配置文件调整
- sql_alchemy_conn = mysql://airflow:123456@localhost/airflowdb
- sql_engine_encoding = ascii
- 默认值是utf-8,容易导致prefres超长的问题出现
- 重新初始化数据库
airflow db init
如果之前用过sqlite,可以使用airflow db reset
可能出现的问题:- 问题
解决:apt-get install -y python3-mysqldb
- 问题
解决:创建database的时候指定ascii编码
create database airflowdb CHARACTER SET ascii;
- 问题
airflow使用mysql作为db
https://zermzhang.github.io/2023/04/24/airflow/airflow使用mysql作为db/