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