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。