Documentation Home

2.9.6 配置 SSL 库支持

需要一个 SSL 库来支持加密连接、随机数生成的熵以及其他与加密相关的操作。您的系统必须支持 OpenSSL 或 yaSSL:

  • 所有 MySQL Enterprise Edition 二进制发行版都是使用 OpenSSL 编译的。无法将 yaSSL 与 MySQL 企业版一起使用。

  • 在 MySQL 5.7.28 之前,MySQL Community Edition 二进制发行版是使用 yaSSL 编译的。从 MySQL 5.7.28 开始,删除了对 yaSSL 的支持,所有 MySQL 构建都使用 OpenSSL。

  • 在 MySQL 5.7.28 之前,可以使用 OpenSSL 或 yaSSL 编译 MySQL Community Edition 源代码分发。从 MySQL 5.7.28 开始,删除了对 yaSSL 的支持。

如果您从源代码分发版编译 MySQL, CMake 会将分发版配置为默认使用已安装的 OpenSSL 库。

要使用 OpenSSL 进行编译,请使用以下过程:

  1. 确保您的系统上安装了 OpenSSL 1.0.1 或更高版本。如果安装的 OpenSSL 版本低于 1.0.1, CMake在 MySQL 配置时会产生错误。如果需要获取 OpenSSL,请访问http://www.openssl.org

  2. CMake选项确定 使用哪个 SSL 库来编译 MySQL(请参阅 第 2.9.7 节,“MySQL 源配置选项”)。默认值为,它使用 OpenSSL。要明确这一点,请在 CMake命令行上指定该选项。例如: WITH_SSL -DWITH_SSL=system

    cmake . -DWITH_SSL=system

    该命令将分发配置为使用已安装的 OpenSSL 库。或者,要显式指定 OpenSSL 安装的路径名,请使用以下语法。如果您安装了多个版本的 OpenSSL,这将很有用,以防止CMake选择错误的版本:

    cmake . -DWITH_SSL=path_name
  3. 编译并安装发行版。

要检查mysqld服务器是否支持加密连接,请检查 have_ssl系统变量的值:

mysql> SHOW VARIABLES LIKE 'have_ssl';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_ssl      | YES   |
+---------------+-------+

如果值为YES,则服务器支持加密连接。如果值为 DISABLED,则服务器能够支持加密连接,但未使用适当的 选项启动以启用要使用的加密连接;参见 第 6.3.1 节,“配置 MySQL 以使用加密连接”--ssl-xxx

要确定服务器是使用 OpenSSL 还是 yaSSL 编译的,请检查仅针对 OpenSSL 存在的任何系统或状态变量是否存在。请参阅第 6.3.4 节,“SSL 库相关功能”