文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 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 參考手冊  /  ...  /  二進制日誌加密金鑰

19.3.2.2 二進制日誌加密金鑰

用於加密日誌檔案的檔案密碼的二進制日誌加密金鑰是 256 位元金鑰,這些金鑰是使用 MySQL 伺服器的金鑰環服務,針對每個 MySQL 伺服器執行個體專門產生的(請參閱第 8.4.4 節,「MySQL 金鑰環」)。金鑰環服務處理二進制日誌加密金鑰的建立、擷取和刪除。伺服器執行個體只會建立和移除為自己產生的金鑰,但如果這些金鑰儲存在金鑰環中,則可以讀取為其他執行個體產生的金鑰,如同檔案複製所複製的伺服器執行個體的情況。

重要事項

MySQL 伺服器執行個體的二進制日誌加密金鑰必須包含在您的備份和還原程序中,因為如果遺失解密目前和保留的二進制日誌檔案或中繼日誌檔案的檔案密碼所需的金鑰,可能無法啟動伺服器。

金鑰環中二進制日誌加密金鑰的格式如下

MySQLReplicationKey_{UUID}_{SEQ_NO}

例如

MySQLReplicationKey_00508583-b5ce-11e8-a6a5-0010e0734796_1

{UUID} 是由 MySQL 伺服器產生的真實 UUID(server_uuid 系統變數的值)。{SEQ_NO} 是二進制日誌加密金鑰的序號,在伺服器上產生每個新金鑰時,序號會遞增 1。

目前伺服器上使用的二進制日誌加密金鑰稱為二進制日誌主金鑰。目前二進制日誌主金鑰的序號儲存在金鑰環中。二進制日誌主金鑰用於加密每個新日誌檔案的檔案密碼,該檔案密碼是針對日誌檔案隨機產生的 32 位元組檔案密碼,用於加密檔案資料。檔案密碼使用 AES-CBC(AES 密碼區塊鏈模式),以 256 位元的二進制日誌加密金鑰和隨機初始化向量 (IV) 進行加密,並儲存在日誌檔案的檔案標頭中。檔案資料使用 AES-CTR(AES 計數器模式),以從檔案密碼產生的 256 位元金鑰和同樣從檔案密碼產生的 nonce 進行加密。如果知道用於加密檔案密碼的二進制日誌加密金鑰,理論上可以使用 OpenSSL 加密工具包中的工具離線解密加密檔案。

如果您使用檔案複製來複製啟用了加密的 MySQL 伺服器實例,使其二進制日誌檔案和中繼日誌檔案都經過加密,請確保同時複製金鑰環,以便複製的伺服器可以從來源伺服器讀取二進制日誌加密金鑰。當在複製的伺服器上啟用加密(在啟動時或隨後)時,複製的伺服器會識別出複製的檔案使用的二進制日誌加密金鑰包含來源伺服器產生的 UUID。它會自動使用自己產生的 UUID 產生新的二進制日誌加密金鑰,並使用此金鑰加密後續二進制日誌檔案和中繼日誌檔案的檔案密碼。複製的檔案會繼續使用來源伺服器的金鑰讀取。