文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

19.5.1.19 複製和 LOAD DATA

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

如果您使用 LOAD DATAbinlog_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 操作的複製錯誤中復原,且複製的事件是可信任的,您可以暫時將 FILE 權限授予 PRIVILEGE_CHECKS_USER 帳戶,並在套用複製的事件後將其移除。

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