MySQL 連線

MySQL 連線類型提供與 MySQL 資料庫的連線。

設定連線

主機 (必填)

要連線的主機。

Schema (選填)

指定要在資料庫中使用的 schema 名稱。

登入 (必填)

指定要連線的使用者名稱。

密碼 (必填)

指定要連線的密碼。

額外參數 (選填)

指定可用於 MySQL 連線的額外參數 (以 JSON 字典形式)。 請注意,您可以透過設定 client 額外欄位來選擇要連線到資料庫的用戶端。

對於 mysqlclient (預設),支援以下額外參數

  • charset: 指定連線的字元集

  • cursor: sscursordictcursorssdictcursor 其中之一。 指定要使用的 cursor 類別

  • unix_socket: 使用 UNIX socket 而非預設 socket。

  • ssl: 控制使用 SSL 連線的 SSL 參數字典。 這些參數是伺服器特定的,應包含 cacertkeycapathcipher 參數。 有關詳細資訊,請參閱 MySQLdb 文件。 請注意,為了在 URL 表示法中有效,此參數也可能是一個字串,其中 SSL 字典是字串編碼的 JSON 字典。

「額外參數」欄位範例

{
   "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。

此條目是否有幫助?