文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (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 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 — 处理二进制日志文件的实用程序”