MySQL 连接

MySQL 连接类型提供到 MySQL 数据库的连接。

配置连接

主机(必填)

要连接的主机。

架构(可选)

指定要在数据库中使用的架构名称。

登录名(必填)

指定用于连接的用户名。

密码(必填)

指定用于连接的密码。

额外参数(可选)

指定可在 MySQL 连接中使用的额外参数(作为 JSON 字典)。请注意,您可以通过设置 client 额外字段来选择用于连接到数据库的客户端。

对于 mysqlclient(默认),支持以下额外参数

  • charset:指定连接的字符集

  • cursorsscursordictcursorssdictcursor 之一。指定要使用的游标类

  • unix_socket:使用的 UNIX 套接字,而不是默认套接字。

  • ssl:控制使用 SSL 连接的 SSL 参数字典。这些参数是服务器特定的,应包含 cacertkeycapathcipher 参数。有关详细信息,请参阅 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。

此条目有帮助吗?