文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (美国信纸) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  二进制日志加密密钥

19.3.2.2 二进制日志加密密钥

用于加密日志文件文件密码的二进制日志加密密钥是 256 位密钥,这些密钥是使用 MySQL 服务器的密钥环服务 (请参见 第 8.4.4 节,“MySQL 密钥环”) 为每个 MySQL 服务器实例专门生成的。密钥环服务处理二进制日志加密密钥的创建、检索和删除。服务器实例仅创建和删除为自身生成的密钥,但如果密钥存储在密钥环中,则它可以读取为其他实例生成的密钥,例如在通过文件复制克隆服务器实例的情况下。

重要

MySQL 服务器实例的二进制日志加密密钥必须包含在备份和恢复程序中,因为如果丢失解密当前和保留的二进制日志文件或中继日志文件的文件密码所需的密钥,则可能无法启动服务器。

密钥环中二进制日志加密密钥的格式如下

MySQLReplicationKey_{UUID}_{SEQ_NO}

例如

MySQLReplicationKey_00508583-b5ce-11e8-a6a5-0010e0734796_1

{UUID} 是 MySQL 服务器生成的真实 UUID ( server_uuid 系统变量的值)。 {SEQ_NO} 是二进制日志加密密钥的序列号,它在服务器上生成每个新密钥时递增 1。

服务器当前正在使用的二进制日志加密密钥称为二进制日志主密钥。当前二进制日志主密钥的序列号存储在密钥环中。二进制日志主密钥用于加密每个新日志文件的日志文件密码,日志文件密码是一个随机生成的 32 字节文件密码,特定于用于加密文件数据的日志文件。使用 256 位二进制日志加密密钥和随机初始化向量 (IV) 使用 AES-CBC (AES 密码块链接模式) 对文件密码进行加密,并存储在日志文件的日志文件标头中。使用从文件密码生成的 256 位密钥和同样从文件密码生成的 nonce 使用 AES-CTR (AES 计数器模式) 对文件数据进行加密。如果知道用于加密文件密码的二进制日志加密密钥,则从技术上讲可以使用 OpenSSL 密码工具包中提供的工具离线解密加密文件。

如果使用文件复制来克隆具有激活的加密的 MySQL 服务器实例,以便其二进制日志文件和中继日志文件被加密,请确保也复制密钥环,以便克隆服务器可以从源服务器读取二进制日志加密密钥。当在克隆服务器上激活加密时(在启动时或之后),克隆服务器会识别出与复制的文件一起使用的二进制日志加密密钥包含源服务器生成的 UUID。它会自动使用自身生成的 UUID 生成一个新的二进制日志加密密钥,并将其用于加密后续二进制日志文件和中继日志文件的文件密码。使用源服务器的密钥继续读取复制的文件。