原文连接:Encrypted Replication for MySQL
原文作者:Steve Champion
在8.0版本中,MySQL复制默认设置是加密连接的。 下面的简单示例展示了使用Ubuntu 20.04和MySQL Community 8.0.27进行加密复制的基本设置。 这些步骤可能与其他Linux发行版类似。
此示例所需的文件随此版本的 MySQL 一起安装,可在数据目录中找到(图 1)。它们是五个不同的 .pem 文件,两个属于源服务器,两个将复制到副本服务器,一个将同时存在于源服务器和复制服务器上(表 1)。
图 1:源数据目录内容。请注意全新安装的 MySQL 中自动包含的 .pem 文件
表 1:具有权限的必要 .pem 文件列表
在默认数据目录中找到必要的文件之后,就可以记录该目录,并将客户端文件复制到复制服务器。
对于此示例,在源服务器和复制服务器上创建了一个单独的目录以更好地组织.pem
文件,但这不是必需的。在源端上,这个目录被是“/var/lib/mysql/repl_security
”(图 2)。对于复制端的.pem
文件,这目录是“/var/lib/mysql/repl_sec
”(图 3)。
现在可以适当地分发文件。
对于源文件ca.pem
、server-cert.pem
和server-key.pem
在本地被移动到repl_security
目录(图2)。
图 2:复制所需的 ssl
服务器文件的目录(在源上)。检查文件权限以确保它们可以被 MySQL 使用。
复制服务器上需要的任何文件都必须从源发送到复制服务器。 必要的文件(如表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实例。
现在,加密复制连接已经设置好,可以使用了。
概括
使用自动创建的.pem
文件为 MySQL 设置加密复制过程中涉及的步骤参考:
- 找到必要的
.pem
文件 - 将客户端文件分发到复制服务器
- 确保所有
.pem
文件的权限和所有者正确 - 编辑源端和复制端的配置文件以将
ssl
选项指向适当的目录 - 重新启动源端和复制端
MySQL
实例