MySQL路由器8.0  / 第 2 章安装 MySQL Router  /  2.5 从源代码安装 MySQL Router

2.5 从源代码安装 MySQL Router

MySQL Router 是 MySQL Server 源代码树的一部分;编译 MySQL Server 也会编译 MySQL Router。这假定 -DWITH_ROUTER=ON,默认情况下启用。此处的说明很简短, 有关特定先决条件和其他详细信息 ,请参阅从源代码安装 MySQL 。

笔记

在 v8.0.13 之前,MySQL Router 源代码与 MySQL Server 是分开的。它现在位于router MySQL 服务器源代码存储库内的目录中。

获取源代码

要编译 MySQL Router,请从 https://mysql.net.cn/downloads/mysql下载 MySQL Server 源代码。或者, GitHub 上的git clone mysql-server 。

下载并解压 MySQL 服务器源文件,例如:

$> tar xzf mysql-8.0.31.tar.gz
$> cd mysql-8.0.31

完成后,您需要像配置 MySQL 服务器一样使用 cmake 进行配置。

配置

CMake 程序可以控制您如何配置源代码分发。通常,您使用 CMake 命令行上的选项来执行此操作。此处未记录 CMake 选项,请参阅 MySQL Source-Configuration Options

要编译源代码,请创建一个文件夹以包含已编译的二进制文件和可执行文件,运行 cmake 以创建 make 文件,然后编译代码。有关其他详细信息,包括特定于平台的先决条件和注意事项, 请参阅 从源安装 MySQL 服务器。

笔记

如果您更改了任何内容并需要从头开始重新编译,请务必CMakeCache.txt在执行cmake命令之前删除该文件。

首先执行cmake创建 make 文件的命令。以下命令从 MySQL 服务器源代码树的根目录运行:

$> mkdir build && cd build
$> cmake ..

执行cmake可能会产生与缺少库相关的错误。例如,在 macOS 上它可能需要特定的 boost 和 OpenSSL 选项:

$> cmake .. \
  -DDOWNLOAD_BOOST=1 \ 
  -DWITH_BOOST=/tmp \
  -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 \
  -DOPENSSL_LIBRARIES=/usr/local/opt/openssl@1.1/lib

编译

您可以像往常一样编译 MySQL 服务器(简单地 make),因为它还编译 MySQL 路由器,或构建 MySQL 路由器特定目标。例如,只构建 MySQL Router 及其库、插件和测试:

$> make mysqlrouter_all

可选择使用ctest 执行 MySQL Router 特定测试 :

$> ctest -R routertest_

安装

没有只从源安装 MySQL Router 的 make 选项,因为执行会make install启动完整的 MySQL 服务器构建。

开发人员相关说明

与出于开发目的使用和测试本地编译的 MySQL Router 版本相关的注意事项:

  • 要在没有 的情况下运行本地构建make install,请配置路由器以查找新构建 plugin_folder的编译生成非标准安装目录结构。手动编辑生成的mysqlrouter.conf或在引导程序期间设置它,例如: --conf-set-option=DEFAULT.plugin_folder=../plugin_output_directory

    同样,也进行runtime_folder 相应的设置,例如: --conf-set-option=DEFAULT.runtime_folder=../runtime_output_directory

  • 虽然单个目标确实会生成二进制文件,例如 make mysqlrouter_password,建议构建所有 Router 目标

  • 为避免构建单元测试,还需要配置 -DWITH_UNIT_TESTS=0