2.9.6 配置 SSL 库支持

SSL 库是支持加密连接,用于生成随机数的熵以及其他与加密相关的操作所必需的。您的系统必须支持 OpenSSL 或 yaSSL:

  • MySQL Enterprise Edition 二进制发行版使用 OpenSSL 进行编译。 yaSSL 无法与 MySQL Enterprise Edition 一起使用。

  • MySQL Community Edition 二进制发行版使用 yaSSL 进行编译。

  • 可以使用 OpenSSL 或 yaSSL 编译 MySQL Community Edition 源发行版。

Note

仅在 MySQL 5.7.28 之前,才可以使用 yaSSL 替代 OpenSSL 来编译 MySQL。从 MySQL 5.7.28 开始,对 yaSSL 的支持已删除,所有 MySQL 构建都使用 OpenSSL。

如果从源发行版编译 MySQL,则 CMake 将发行版配置为默认使用已安装的 OpenSSL 库。

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

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

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

cmake . -DWITH_SSL=system

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

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

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

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

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

要确定服务器是使用 OpenSSL 还是 yaSSL 编译的,请检查是否存在仅适用于 OpenSSL 的任何系统变量或状态变量。见第 6.3.4 节“依赖于 SSL 库的功能”