Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


19.3.2.1 二进制日志加密范围

当 MySQL 服务器实例上的二进制日志加密活动时,加密范围如下:

  • 在加密开始时,使用上述两级加密架构对写入到二进制日志文件和中继日志文件的数据进行加密。服务器启动加密时,现有的二进制日志文件和中继日志文件不加密。您可以在不再需要时删除这些文件。

  • 在传输到 MySQL 客户端,包括mysqlbinlog的事件流数据进行解密,应该在传输过程中使用连接加密(见第8.3章,“使用加密连接”第19.3.1章,“设置使用加密连接的复制”)进行保护。

  • 在事务中使用的二进制日志事务和语句缓存数据在内存缓冲区中以未加密格式存储。数据如果超过缓冲区可用空间,则写入临时文件到磁盘。服务器上启用二进制日志加密时,用于存储二进制日志缓存的临时文件使用 AES-CTR (AES 计数器模式) 对流加密。由于临时文件是易失的且与单个进程相关,因此使用单级加密,使用随机生成的文件密码和初始化向量,该向量仅存在于内存中,且从不存储在磁盘或密钥环中。每次事务提交后,二进制日志缓存将被重置:缓冲区被清除,任何用于存储二进制日志缓存的临时文件将被截断,并为下一个事务生成新的文件密码和初始化向量。这个重置也在服务器在正常关闭或意外中断后进行。

Note

如果您使用LOAD DATA,并且binlog_format=STATEMENT设置为 STATEMENT,这不是推荐的做法,因为语句被认为是不安全的语句复制,临时文件将在复制服务器上创建,用于存储数据。这些临时文件在服务器上启用二进制日志加密时不加密。使用行基于或混合二进制日志格式代替,这些格式不创建临时文件。