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。

本条目是否有帮助?