MySQL 路由器是 MySQL 服务器源代码树的一部分;编译 MySQL 服务器也会编译 MySQL 路由器。这假设 -DWITH_ROUTER=ON
,默认情况下启用。这里的说明很简短,有关特定先决条件和更多详细信息,请参见 从源代码安装 MySQL。
MySQL 路由器源代码可以在 MySQL 服务器源代码存储库中的 router
目录中找到。
获取源代码
要编译 MySQL 路由器,请从 https://dev.mysqlserver.cn/downloads/mysql 下载 MySQL 服务器源代码。或者,git 克隆 GitHub 上的 mysql-server。
下载并解压 MySQL 服务器源文件,例如
$> tar xzf mysql-9.0.0.tar.gz
$> cd mysql-9.0.0
完成此操作后,您需要像使用 MySQL 服务器一样使用 cmake 进行配置。
配置
CMake 程序提供对配置源代码发行版的控制。通常,您使用 CMake 命令行上的选项来执行此操作。CMake 选项在此处没有记录,请参见 MySQL 源代码配置选项。
要编译源代码,请创建一个文件夹来包含已编译的二进制文件和可执行文件,运行 cmake 创建 makefile,然后编译代码。有关更多详细信息,包括特定于平台的先决条件和注意事项,请参见 从源代码安装 MySQL 服务器。
如果您更改了任何内容,并且需要从头开始重新编译,请确保在执行 cmake
命令之前删除 CMakeCache.txt
文件。
首先执行 cmake
命令来创建 makefile。以下命令从 MySQL 服务器源代码树的根目录运行
$> mkdir build && cd build
$> cmake ..
执行 cmake
可能会产生与缺少库或工具相关的错误。例如,macOS 构建可能需要引用更新的 bison 可执行文件
$> cmake .. -DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison
编译
您可以像往常一样编译 MySQL 服务器(只需 make),因为它也会编译 MySQL 路由器,或者构建 MySQL 路由器特定目标。例如,要仅使用其库、插件和测试来构建 MySQL 路由器
$> make mysqlrouter_all
可以选择使用 ctest 执行 MySQL 路由器特定测试
$> ctest -R routertest_
安装
没有仅从源代码安装 MySQL 路由器的 make 选项,因为执行 make install
会启动完整的 MySQL 服务器构建。
与开发相关的说明
有关使用和测试为开发目的而本地编译的 MySQL 路由器版本的说明
-
要运行本地构建而不使用
make install
,请将 Router 配置为找到新构建的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
进行配置