airflow 的配置文件中需要写MySQL、MQ的连接信息,很可能出现特殊字符
例如 @
就以 sql_alchemy 的配置为例吧
sql_alchemy_conn = mysql+mysqldb
:
//usr
:
p@d@1.1.*.*
:
3306/db
如果存在 @ 这种字符需要先 urlencode 然后把 % 改成 %% 拼到字符串里
1. urlencode 是因为 @ 是 连接串的特殊字符,这在新版的 sqlalchemy 中不支持,urlencode的结果中一定存在 %
2. % 改成两个是因为这个连接串写在airflow的配置文件中,所以需要对 % 进行转义
转换后的结果
sql_alchemy_conn = mysql+mysqldb
:
//usr
:p%%40
d@1.1.*.*:
3306/db
其中 %40 是 @ 的urlencode ,最前面的 % 是对第二个 % 的转义