原文連接:Encrypted Replication for MySQL
原文作者:Steve Champion

在8.0版本中,MySQL復制默認設置是加密連接的。 下面的簡單示例展示了使用Ubuntu 20.04和MySQL Community 8.0.27進行加密復制的基本設置。 這些步驟可能與其他Linux發(fā)行版類似。
此示例所需的文件隨此版本的 MySQL 一起安裝,可在數(shù)據(jù)目錄中找到(圖 1)。它們是五個不同的 .pem 文件,兩個屬于源服務器,兩個將復制到副本服務器,一個將同時存在于源服務器和復制服務器上(表 1)。

圖 1:源數(shù)據(jù)目錄內容。請注意全新安裝的 MySQL 中自動包含的 .pem 文件

表 1:具有權限的必要 .pem 文件列表
在默認數(shù)據(jù)目錄中找到必要的文件之后,就可以記錄該目錄,并將客戶端文件復制到復制服務器。
對于此示例,在源服務器和復制服務器上創(chuàng)建了一個單獨的目錄以更好地組織.pem文件,但這不是必需的。在源端上,這個目錄被是“/var/lib/mysql/repl_security”(圖 2)。對于復制端的.pem 文件,這目錄是“/var/lib/mysql/repl_sec”(圖 3)。
現(xiàn)在可以適當?shù)胤职l(fā)文件。
對于源文件ca.pem、server-cert.pem和server-key.pem在本地被移動到repl_security目錄(圖2)。

圖 2:復制所需的 ssl 服務器文件的目錄(在源上)。檢查文件權限以確保它們可以被 MySQL 使用。
復制服務器上需要的任何文件都必須從源發(fā)送到復制服務器。 必要的文件(如表1所示)是:ca.pem, client-cert.pem, client-key.pem。 在這種情況下,使用linux命令“scp”將客戶端的.pem文件移動到復制服務器。 一旦在服務器上,文件就被移動到repl_sec目錄。 在此之后,文件所有者和權限(通過chown、chgrp和chmod)更改為圖 3 中所示的內容。

圖 3:在配置文件中找到的目錄中具有權限的副本文件。確保權限與此處顯示的內容相匹配。
在所有文件都在所需的目錄中之后,設置配置文件。
源端:
圖 4 顯示了包含要編輯的配置文件的默認目錄,圖 5 顯示了要進行的更改。重要的是要注意 .pem 文件目錄位于 [mysqld] 部分下(如圖 5 所示)。

圖 4:包含源配置文件的目錄

圖 5:源配置文件。以“ssl”開頭的選項與安全連接有關
復制端:
圖 6 顯示了包含要編輯的配置文件的默認目錄,圖 7 顯示了要進行的更改。需要注意的是,.pem 文件目錄位于 [client] 部分下(如圖 7 所示)。

圖 6:復制端配置文件位置

圖 7:復制端配置文件。必要的 ssl文件位于 [client] 下,并以“ssl”開頭。
設置兩個配置文件之后,請確保在兩個服務器上重新啟動MySQL實例。
現(xiàn)在,加密復制連接已經(jīng)設置好,可以使用了。
概括
使用自動創(chuàng)建的.pem文件為 MySQL 設置加密復制過程中涉及的步驟參考:
- 找到必要的
.pem文件 - 將客戶端文件分發(fā)到復制服務器
- 確保所有
.pem文件的權限和所有者正確 - 編輯源端和復制端的配置文件以將
ssl選項指向適當?shù)哪夸?/li> - 重新啟動源端和復制端
MySQL實例




