文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  複製和 LOAD DATA

19.5.1.20 複製和 LOAD DATA

LOAD DATA 被認為對於基於陳述式的日誌記錄是不安全的 (請參閱 第 19.2.1.3 節,「在二進制日誌中判斷安全和不安全的陳述式」)。當設定 binlog_format=MIXED 時,該陳述式會以基於列的格式記錄。當設定 binlog_format=STATEMENT 時,請注意,與其他不安全的陳述式不同,LOAD DATA 不會產生警告。

如果您使用 LOAD DATA 搭配 binlog_format=STATEMENT,則將套用變更的每個副本都會建立一個包含資料的暫存檔。然後,副本會使用 LOAD DATA 陳述式來套用變更。即使來源上啟用了二進制日誌加密,此暫存檔也不會加密。如果需要加密,請改用基於列或混合的二進制日誌格式,這樣副本就不會建立暫存檔。

如果使用 PRIVILEGE_CHECKS_USER 帳戶來協助保護複寫通道(請參閱第 19.3.3 節「複寫權限檢查」),強烈建議您使用基於列的二進制日誌 (binlog_format=ROW) 記錄 LOAD DATA 操作。如果為通道設定了 REQUIRE_ROW_FORMAT,則必須使用基於列的二進制日誌。使用此記錄格式,執行事件不需要 FILE 權限,因此請勿授予 PRIVILEGE_CHECKS_USER 帳戶此權限。如果您需要從涉及以陳述式格式記錄的 LOAD DATA INFILE 操作的複寫錯誤中恢復,並且複製的事件是受信任的,您可以暫時授予 PRIVILEGE_CHECKS_USER 帳戶 FILE 權限,並在複製的事件套用後將其移除。

mysqlbinlog 讀取以陳述式為基礎格式記錄的 LOAD DATA 陳述式的日誌事件時,會在臨時目錄中建立一個產生的本地檔案。這些臨時檔案不會由 mysqlbinlog 或任何其他 MySQL 程式自動移除。如果您使用帶有以陳述式為基礎的二進制日誌記錄的 LOAD DATA 陳述式,則在您不再需要陳述式日誌後,應自行刪除臨時檔案。如需更多資訊,請參閱第 6.6.9 節「mysqlbinlog — 二進制日誌檔案處理工具」