MySQL 连接¶
MySQL 连接类型提供了到 MySQL 数据库的连接。
配置连接¶
- 主机 (必需)
要连接的主机。
- Schema (模式) (可选)
指定要在数据库中使用的模式名称。
- 登录名 (必需)
指定用于连接的用户名。
- 密码 (必需)
指定用于连接的密码。
- 额外参数 (可选)
指定可在 MySQL 连接中使用的额外参数 (以 json 字典格式)。请注意,您可以通过设置
client
额外参数来选择连接数据库的客户端。对于
mysqlclient
(默认),支持以下额外参数:charset
: 指定连接的字符集cursor
:sscursor
,dictcursor
,ssdictcursor
之一。指定要使用的游标类。unix_socket
: 使用 UNIX socket 代替默认 socket。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:XXXXXXXXXXXX@1.1.1.1: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 命令,您需要将 Hook 创建时设置 "local_infile" 参数为 True。