MySQL 连接¶
MySQL 连接类型提供到 MySQL 数据库的连接。
配置连接¶
- 主机(必填)
要连接的主机。
- 架构(可选)
指定要在数据库中使用的架构名称。
- 登录名(必填)
指定用于连接的用户名。
- 密码(必填)
指定用于连接的密码。
- 额外参数(可选)
指定可在 MySQL 连接中使用的额外参数(作为 JSON 字典)。请注意,您可以通过设置
client
额外字段来选择用于连接到数据库的客户端。对于
mysqlclient
(默认),支持以下额外参数charset
:指定连接的字符集cursor
:sscursor
、dictcursor
、ssdictcursor
之一。指定要使用的游标类unix_socket
:使用的 UNIX 套接字,而不是默认套接字。ssl
:控制使用 SSL 连接的 SSL 参数字典。这些参数是服务器特定的,应包含ca
、cert
、key
、capath
、cipher
参数。有关详细信息,请参阅 MySQLdb 文档。请注意,为了在 URL 表示法中有用,此参数也可能是一个字符串,其中 SSL 字典是一个字符串编码的 JSON 字典。
示例“extras”字段
{ "charset": "utf8", "cursor": "sscursor", "unix_socket": "/var/socket", "ssl": { "cert": "/tmp/client-cert.pem", "ca": "/tmp/server-ca.pem", "key": "/tmp/client-key.pem" } }
或
{ "charset": "utf8", "cursor": "sscursor", "unix_socket": "/var/socket", "ssl": "{\"cert\": \"/tmp/client-cert.pem\", \"ca\": \"/tmp/server-ca.pem\", \"key\": \"/tmp/client-key.pem\"}" }
当将连接指定为 URI(在
AIRFLOW_CONN_{CONN_ID}
变量中)时,您应该按照数据库连接的标准语法指定它 - 其中额外参数作为 URI 的参数传递。请注意,URI 的所有组件都应进行 URL 编码。例如
export AIRFLOW_CONN_MYSQL_DEFAULT='mysql://mysql_user:[email protected]:3306/mysqldb?ssl=%7B%22cert%22%3A+%22%2Ftmp%2Fclient-cert.pem%22%2C+%22ca%22%3A+%22%2Ftmp%2Fserver-ca.pem%22%2C+%22key%22%3A+%22%2Ftmp%2Fclient-key.pem%22%7D'
注意
如果在使用 MySQL 连接时遇到 UnicodeDecodeError,请检查定义的字符集是否与数据库字符集匹配。
对于
mysql-connector-python
,不支持任何额外参数
在这两种情况下,当您想使用 MySQl 的 LOAD DATA LOCAL INFILE
SQL 命令时,您需要使用设置为 True 的“local_infile”参数创建 Hook。