MySQL 連線¶
MySQL 連線類型提供與 MySQL 資料庫的連線。
設定連線¶
- 主機 (必填)
要連線的主機。
- Schema (選填)
指定要在資料庫中使用的 schema 名稱。
- 登入 (必填)
指定要連線的使用者名稱。
- 密碼 (必填)
指定要連線的密碼。
- 額外參數 (選填)
指定可用於 MySQL 連線的額外參數 (以 JSON 字典形式)。 請注意,您可以透過設定
client
額外欄位來選擇要連線到資料庫的用戶端。對於
mysqlclient
(預設),支援以下額外參數charset
: 指定連線的字元集cursor
:sscursor
、dictcursor
、ssdictcursor
其中之一。 指定要使用的 cursor 類別unix_socket
: 使用 UNIX socket 而非預設 socket。ssl
: 控制使用 SSL 連線的 SSL 參數字典。 這些參數是伺服器特定的,應包含ca
、cert
、key
、capath
、cipher
參數。 有關詳細資訊,請參閱 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。