Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

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 权限来执行事件,因此不要授予FILE 权限给PRIVILEGE_CHECKS_USER 帐户。如果您需要从涉及LOAD DATA INFILE 操作的复制错误中恢复,并且复制的事件是可信的,您可以临时授予FILE 权限给PRIVILEGE_CHECKS_USER 帐户,删除权限后复制事件已经应用。

mysqlbinlog 读取LOAD DATA 语句的日志事件时,以基于语句的格式记录,会在临时目录中创建一个本地文件。这些临时文件不会被mysqlbinlog 或任何其他 MySQL 程序自动删除。如果您使用LOAD DATA 语句与基于语句的二进制日志记录,您应该在不再需要语句日志后删除临时文件。有关更多信息,请参阅第 6.6.9 节,“mysqlbinlog — 处理二进制日志文件的实用程序”