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。

本條目是否有幫助?