Airflow2.4.3 - 使用 MySQL5.7 数据库 作者:马育民 • 2023-04-09 19:39 • 阅读:10077 # 说明 登录 Airflow 网页后,提示推荐使用 MySQL 数据库存储元信息,如下: [![](/upload/0/0/1IX5HteNoBjF.png)](/upload/0/0/1IX5HteNoBjF.png) # 安装 MySQL 大数据环境中,在 Hive 部分已经安装 MySQL,这里不再讲解安装 MySQL,详见:[hive3.1.x centos7安装部署mysql5.7.32(.tar.gz解压缩版)](https://www.malaoshi.top/show_1IX25H3si710.html "hive3.1.x centos7安装部署mysql5.7.32(.tar.gz解压缩版)") **提示:** 该MySQL 在 hadoop1 服务器上 ## 修改配置 初始化数据库时,表中时间字段是 空值 或 类似 `0000-00-00 00:00:00` 的数据,MySQL 默认不允许,所有报错如下: ``` Invalid default value for 'updated_at' ``` ### 解决 修改下面配置 ``` vim /etc/my.cnf ``` 增加下面配置: ``` [mysqld] explicit_defaults_for_timestamp = ON ``` 输入 `esc`,`:wq` 保存退出 ### 重启 MySQL ``` service mysql restart ``` ## 创建数据库 ``` CREATE DATABASE airflow_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` # 安装 MySQL 驱动 Python 连接 MySQL,需要使用驱动,类似 java 连接 MySQL ``` (airflow) [root@hadoop3 ~]# pip install mysql-connector-python -i https://pypi.tuna.tsinghua.edu.cn/simple ``` # 修改配置文件 ``` (airflow) [root@hadoop3 ~]# vim airflow/airflow.cfg ``` 将下面这行注销掉: ``` # sql_alchemy_conn = sqlite:////root/airflow/airflow.db ``` 增加下面行: ``` sql_alchemy_conn = mysql+mysqlconnector://root:root@hadoop1:3306/airflow_db ``` 执行 `esc`,`:wq` 保存退出 # 初始化数据库 ``` (airflow) [root@hadoop3 program]# airflow db init ``` 看到下面信息,说明初始化完成: ``` Initialization done ``` # 创建用户 ``` (airflow) [root@hadoop3 ~]# airflow users create \ --username admin \ --firstname admin \ --lastname admin \ --role Admin \ --email 65242847@qq.com ``` 提示输入密码,如下: ``` Password: ``` 输入密码:`admin`,敲回车 提示确认输入密码,如下: ``` Repeat for confirmation: ``` 输入密码:`admin`,敲回车 提示下面信息,说明成功: ``` [2023-04-09 19:00:24,510] {manager.py:212} INFO - Added user admin User "admin" created with role "Admin" ``` # 重新启动 ``` [root@hadoop3 bin]# ./airflow.sh stop ``` ``` [root@hadoop3 bin]# ./airflow.sh start ``` 再次访问 web 网页,没有本文开头的提示信息,说明配置成功 原文出处:http://malaoshi.top/show_1IX5HuO4pvTB.html