The CMake program provides a great deal of control over how you configure a MySQL source distribution. Typically, you do this using options on the CMake command line. For information about options supported by CMake, run either of these commands in the top-level source directory
$> cmake . -LH
$> ccmake .You can also affect CMake using certain environment variables. See Section 6.9, “Environment Variables”.
For boolean options, the value may be specified as 1 or ON to enable the option, or as 0 or OFF to disable the option.
Many options configure compile-time defaults that can be overridden at server startup. For example, the CMAKE_INSTALL_PREFIX, MYSQL_TCP_PORT, and MYSQL_UNIX_ADDR options that configure the default installation base directory location, TCP/IP port number, and Unix socket file can be changed at server startup with the --basedir, --port, and --socket options for mysqld. Where applicable, configuration option descriptions indicate the corresponding mysqld startup option.
The following sections provide more information about CMake options.
The following table shows the available CMake options. In the Default column, PREFIX stands for the value of the CMAKE_INSTALL_PREFIX option, which specifies the installation base directory. This value is used as the parent location for several of the installation subdirectories.
表 2.13 MySQL 源代码配置选项参考 (CMake)
| 格式 | 描述 | 默认 |
|---|---|---|
ADD_GDB_INDEX |
是否启用在二进制文件中生成 .gdb_index 部分 | |
BUILD_CONFIG |
使用与官方版本相同的构建选项 | |
BUNDLE_RUNTIME_LIBRARIES |
将运行时库捆绑到 Windows 的服务器 MSI 和 Zip 包中 | OFF |
CMAKE_BUILD_TYPE |
要生成的构建类型 | RelWithDebInfo |
CMAKE_CXX_FLAGS |
C++ 编译器的标志 | |
CMAKE_C_FLAGS |
C 编译器的标志 | |
CMAKE_INSTALL_PREFIX |
安装基目录 | /usr/local/mysql |
COMPILATION_COMMENT |
有关编译环境的注释 | |
COMPILATION_COMMENT_SERVER |
有关 mysqld 使用的编译环境的注释 | |
COMPRESS_DEBUG_SECTIONS |
压缩二进制可执行文件的调试部分 | OFF |
CPACK_MONOLITHIC_INSTALL |
包构建是否生成单个文件 | OFF |
DEFAULT_CHARSET |
默认服务器字符集 | utf8mb4 |
DEFAULT_COLLATION |
默认服务器排序规则 | utf8mb4_0900_ai_ci |
DISABLE_PSI_COND |
排除性能模式条件检测 | OFF |
DISABLE_PSI_DATA_LOCK |
排除性能模式数据锁检测 | OFF |
DISABLE_PSI_ERROR |
排除性能模式服务器错误检测 | OFF |
DISABLE_PSI_FILE |
排除性能模式文件检测 | OFF |
DISABLE_PSI_IDLE |
排除性能模式空闲检测 | OFF |
DISABLE_PSI_MEMORY |
排除性能模式内存检测 | OFF |
DISABLE_PSI_METADATA |
排除性能模式元数据检测 | OFF |
DISABLE_PSI_MUTEX |
排除性能模式互斥锁检测 | OFF |
DISABLE_PSI_PS |
排除性能模式预处理语句 | OFF |
DISABLE_PSI_RWLOCK |
排除性能模式读写锁检测 | OFF |
DISABLE_PSI_SOCKET |
排除性能模式套接字检测 | OFF |
DISABLE_PSI_SP |
排除性能模式存储过程检测 | OFF |
DISABLE_PSI_STAGE |
排除性能模式阶段检测 | OFF |
DISABLE_PSI_STATEMENT |
排除性能模式语句检测 | OFF |
DISABLE_PSI_STATEMENT_DIGEST |
排除性能模式 statements_digest 检测 | OFF |
DISABLE_PSI_TABLE |
排除性能模式表检测 | OFF |
DISABLE_PSI_THREAD |
排除性能模式线程检测 | OFF |
DISABLE_PSI_TRANSACTION |
排除性能模式事务检测 | OFF |
ENABLED_LOCAL_INFILE |
是否为 LOAD DATA 启用 LOCAL | OFF |
ENABLED_PROFILING |
是否启用查询分析代码 | ON |
ENABLE_EXPERIMENTAL_SYSVARS |
是否启用实验性 InnoDB 系统变量 | OFF |
ENABLE_GCOV |
是否包含 gcov 支持 | |
ENABLE_GPROF |
启用 gprof(仅限优化后的 Linux 构建) | OFF |
FORCE_COLORED_OUTPUT |
是否对编译器输出进行着色 | OFF |
FORCE_INSOURCE_BUILD |
是否强制进行源代码内构建 | OFF |
FORCE_UNSUPPORTED_COMPILER |
是否允许使用不受支持的编译器 | OFF |
FPROFILE_GENERATE |
是否生成 profile guided optimization 数据 | OFF |
FPROFILE_USE |
是否使用 profile guided optimization 数据 | OFF |
HAVE_PSI_MEMORY_INTERFACE |
启用性能模式内存跟踪模块,用于在动态存储过对齐类型时使用的内存分配函数 | OFF |
IGNORE_AIO_CHECK |
对于 -DBUILD_CONFIG=mysql_release,忽略 libaio 检查 | OFF |
INSTALL_BINDIR |
用户可执行文件目录 | PREFIX/bin |
INSTALL_DOCDIR |
文档目录 | PREFIX/docs |
INSTALL_DOCREADMEDIR |
README 文件目录 | PREFIX |
INSTALL_INCLUDEDIR |
头文件目录 | PREFIX/include |
INSTALL_INFODIR |
Info 文件目录 | PREFIX/docs |
INSTALL_LAYOUT |
选择预定义的安装布局 | STANDALONE |
INSTALL_LIBDIR |
库文件目录 | PREFIX/lib |
INSTALL_MANDIR |
手册页目录 | PREFIX/man |
INSTALL_MYSQLSHAREDIR |
共享数据目录 | PREFIX/share |
INSTALL_MYSQLTESTDIR |
mysql-test 目录 | PREFIX/mysql-test |
INSTALL_PKGCONFIGDIR |
mysqlclient.pc pkg-config 文件的目录 | INSTALL_LIBDIR/pkgconfig |
INSTALL_PLUGINDIR |
插件目录 | PREFIX/lib/plugin |
INSTALL_PRIV_LIBDIR |
安装私有库目录 | |
INSTALL_SBINDIR |
服务器可执行文件目录 | PREFIX/bin |
INSTALL_SECURE_FILE_PRIVDIR |
secure_file_priv 的默认值 | 平台特定 |
INSTALL_SHAREDIR |
aclocal/mysql.m4 安装目录 | PREFIX/share |
INSTALL_STATIC_LIBRARIES |
是否安装静态库 | ON |
INSTALL_SUPPORTFILESDIR |
额外的支持文件目录 | PREFIX/support-files |
LINK_RANDOMIZE |
是否随机化 mysqld 二进制文件中的符号顺序 | OFF |
LINK_RANDOMIZE_SEED |
LINK_RANDOMIZE 选项的种子值 | mysql |
MAX_INDEXES |
每个表的最大索引数 | 64 |
MSVC_CPPCHECK |
启用 MSVC 代码分析。 | ON |
MUTEX_TYPE |
InnoDB 互斥锁类型 | event |
MYSQLX_TCP_PORT |
X 插件使用的 TCP/IP 端口号 | 33060 |
MYSQLX_UNIX_ADDR |
X 插件使用的 Unix 套接字文件 | /tmp/mysqlx.sock |
MYSQL_DATADIR |
数据目录 | |
MYSQL_MAINTAINER_MODE |
是否启用 MySQL 维护者特定的开发环境 | OFF |
MYSQL_PROJECT_NAME |
Windows/macOS 项目名称 | MySQL |
MYSQL_TCP_PORT |
TCP/IP 端口号 | 3306 |
MYSQL_UNIX_ADDR |
Unix 套接字文件 | /tmp/mysql.sock |
NDB_UTILS_LINK_DYNAMIC |
导致 NDB 工具动态链接到 ndbclient | |
ODBC_INCLUDES |
ODBC 包含目录 | |
ODBC_LIB_DIR |
ODBC 库目录 | |
OPTIMIZER_TRACE |
是否支持优化器跟踪 | |
OPTIMIZE_SANITIZER_BUILDS |
是否优化 sanitizer 构建 | ON |
REPRODUCIBLE_BUILD |
格外注意创建独立于构建位置和时间的构建结果 | |
SHOW_SUPPRESSED_COMPILER_WARNING |
是否显示被抑制的编译器警告,并且不使用 -Werror 失败。 | OFF |
SYSCONFDIR |
选项文件目录 | |
SYSTEMD_PID_DIR |
systemd 下 PID 文件的目录 | /var/run/mysqld |
SYSTEMD_SERVICE_NAME |
systemd 下 MySQL 服务的名称 | mysqld |
TMPDIR |
tmpdir 的默认值 | |
WIN_DEBUG_NO_INLINE |
是否禁用函数内联 | OFF |
WITHOUT_SERVER |
不构建服务器 | OFF |
WITHOUT_xxx_STORAGE_ENGINE |
从构建中排除存储引擎 xxx | |
WITH_ANT |
构建 GCS Java 包装器使用的 Ant 的路径 | |
WITH_ASAN |
启用 AddressSanitizer | OFF |
WITH_ASAN_SCOPE |
启用 AddressSanitizer -fsanitize-address-use-after-scope Clang 标志 | OFF |
WITH_AUTHENTICATION_CLIENT_PLUGINS |
如果构建了任何相应的服务器身份验证插件,则自动启用 | |
WITH_AUTHENTICATION_LDAP |
如果无法构建 LDAP 身份验证插件,是否报告错误 | OFF |
WITH_AUTHENTICATION_PAM |
构建 PAM 身份验证插件 | OFF |
WITH_AWS_SDK |
Amazon Web Services 软件开发工具包的位置 | |
WITH_BUILD_ID |
在 Linux 系统上,生成唯一的构建 ID | ON |
WITH_CLASSPATH |
构建 MySQL Cluster Connector for Java 时要使用的类路径。默认值为一个空字符串。 | |
WITH_CLIENT_PROTOCOL_TRACING |
构建客户端协议跟踪框架 | ON |
WITH_CURL |
curl 库的位置 | |
WITH_DEBUG |
是否包含调试支持 | OFF |
WITH_DEFAULT_COMPILER_OPTIONS |
是否使用默认编译器选项 | ON |
WITH_DEVELOPER_ENTITLEMENTS |
是否将 'get-task-allow' 授权添加到 macOS 上的所有可执行文件,以便在服务器意外停止时生成核心转储 | OFF |
WITH_EDITLINE |
要使用的 libedit/editline 库 | bundled |
WITH_ERROR_INSERT |
在 NDB 存储引擎中启用错误注入。不应用于构建用于生产的二进制文件。 | OFF |
WITH_ICU |
ICU 支持的类型 | bundled |
WITH_INNODB_EXTRA_DEBUG |
是否包含 InnoDB 的额外调试支持。 | OFF |
WITH_JEMALLOC |
是否链接到 -ljemalloc | OFF |
WITH_LD |
是否使用 LLVM lld 或 mold 链接器 | |
WITH_LIBEVENT |
要使用的 libevent 库 | bundled |
WITH_LIBWRAP |
是否包含 libwrap (TCP 包装器) 支持 | OFF |
WITH_LOCK_ORDER |
是否启用 LOCK_ORDER 工具 | OFF |
WITH_LSAN |
是否运行 LeakSanitizer,不使用 AddressSanitizer | OFF |
WITH_LTO |
启用链接时优化器 | OFF |
WITH_LZ4 |
LZ4 库支持的类型 | bundled |
WITH_MECAB |
编译 MeCab | |
WITH_MSAN |
启用 MemorySanitizer | OFF |
WITH_MSCRT_DEBUG |
启用 Visual Studio CRT 内存泄漏跟踪 | OFF |
WITH_MYSQLX |
是否禁用 X 协议 | ON |
WITH_NDB |
构建 MySQL NDB Cluster,包括 NDB 存储引擎和所有 NDB 程序 | OFF |
WITH_NDBAPI_EXAMPLES |
构建 API 示例程序。 | OFF |
WITH_NDBCLUSTER |
NDB 8.0.30 及更早版本:构建 NDB 存储引擎。NDB 8.0.31 及更高版本:已弃用;使用 WITH_NDB 代替 | OFF |
WITH_NDBCLUSTER_STORAGE_ENGINE |
在 NDB 8.0.31 之前,仅供内部使用。NDB 8.0.31 及更高版本:切换(仅)包含 NDBCLUSTER 存储引擎 | ON |
WITH_NDBMTD |
构建多线程数据节点二进制文件 | ON |
WITH_NDB_DEBUG |
生成用于测试或故障排除的调试构建。 | OFF |
WITH_NDB_JAVA |
启用构建 Java 和 ClusterJ 支持。默认情况下启用。仅在 MySQL Cluster 中受支持。 | ON |
WITH_NDB_PORT |
使用此选项构建的管理服务器使用的默认端口。如果未使用此选项构建它,则管理服务器的默认端口为 1186。 | [none] |
WITH_NDB_TEST |
包含 NDB API 测试程序。 | OFF |
WITH_NDB_TLS_SEARCH_PATH |
NDB 程序用于搜索 TLS 证书和密钥文件的默认路径。 | $HOME/ndb-tls |
WITH_NUMA |
设置 NUMA 内存分配策略 | |
WITH_PACKAGE_FLAGS |
对于通常用于 RPM/DEB 包的标志,是否将它们添加到这些平台上的独立构建中 | |
WITH_PROTOBUF |
要使用的 Protocol Buffers 包 | bundled |
WITH_RAPID |
是否构建快速开发周期插件 | ON |
WITH_RAPIDJSON |
RapidJSON 支持的类型 | bundled |
WITH_ROUTER |
是否构建 MySQL Router | ON |
WITH_SHOW_PARSE_TREE |
对 SHOW PARSE_TREE 调试语句的支持 | |
WITH_SSL |
SSL 支持的类型 | system |
WITH_SYSTEMD |
启用 systemd 支持文件的安装 | OFF |
WITH_SYSTEMD_DEBUG |
启用额外的 systemd 调试信息 | OFF |
WITH_SYSTEM_LIBS |
设置未明确设置的库选项的系统值 | OFF |
WITH_TCMALLOC |
是否链接到 -ltcmalloc。BUNDLED 仅在 Linux 上受支持 | OFF |
WITH_TEST_TRACE_PLUGIN |
构建测试协议跟踪插件 | OFF |
WITH_TSAN |
启用 ThreadSanitizer | OFF |
WITH_UBSAN |
启用 Undefined Behavior Sanitizer | OFF |
WITH_UNIT_TESTS |
使用单元测试编译 MySQL | ON |
WITH_UNIXODBC |
启用 unixODBC 支持 | OFF |
WITH_VALGRIND |
是否编译进 Valgrind 头文件 | OFF |
WITH_WIN_JEMALLOC |
包含 jemalloc.dll 的目录的路径 | |
WITH_ZLIB |
zlib 支持的类型 | bundled |
WITH_ZSTD |
zstd 支持的类型 | bundled |
WITH_xxx_STORAGE_ENGINE |
静态编译存储引擎 xxx 到服务器中 |
此选项使用 Oracle 用于生成官方 MySQL 版本的二进制发行版的相同构建选项配置源代码发行版。
在 Linux 系统上,生成唯一的构建 ID,该 ID 用作
build_id系统变量的值,并在启动时写入 MySQL 服务器日志。将此选项设置为OFF以禁用此功能。此选项对 Linux 以外的平台无效。
-DBUNDLE_RUNTIME_LIBRARIES=bool是否将运行时库捆绑到 Windows 的服务器 MSI 和 Zip 包中。
要生成的构建类型
RelWithDebInfo:启用优化并生成调试信息。这是默认的 MySQL 构建类型。Release:启用优化,但省略调试信息以减小构建大小。Debug:禁用优化并生成调试信息。如果启用了WITH_DEBUG选项,也会使用此构建类型。也就是说,-DWITH_DEBUG=1与-DCMAKE_BUILD_TYPE=Debug的效果相同。
选项值
None和MinSizeRel不受支持。-DCPACK_MONOLITHIC_INSTALL=bool此选项影响 make package 操作是生成多个安装包文件还是单个文件。如果禁用,则操作将生成多个安装包文件,如果您只想安装完整 MySQL 安装的一部分,这可能很有用。如果启用,它将生成一个用于安装所有内容的单个文件。
定义是否强制执行源内构建。建议使用源外构建,因为它们允许从相同源代码进行多次构建,并且可以通过删除构建目录来快速执行清理。要强制执行源内构建,请使用
-DFORCE_INSOURCE_BUILD=ON调用 CMake。定义是否在命令行上编译时为 gcc 和 clang 启用彩色编译器输出。默认为
OFF。
CMAKE_INSTALL_PREFIX 选项指示基本安装目录。其他以 INSTALL_ 形式命名的选项,这些选项指示组件位置相对于前缀进行解释,并且它们的值是相对路径名。它们的值不应包含前缀。xxx
-DCMAKE_INSTALL_PREFIX=dir_name安装基本目录。
此值可以使用
--basedir选项在服务器启动时设置。在何处安装用户程序。
在何处安装文档。
-DINSTALL_DOCREADMEDIR=dir_name在何处安装
README文件。在何处安装头文件。
在何处安装 Info 文件。
选择预定义的安装布局
STANDALONE: 与.tar.gz和.zip包使用的布局相同。这是默认值。RPM: 与 RPM 包类似的布局。SVR4: Solaris 包布局。DEB: DEB 包布局(实验性)。
您可以选择预定义的布局,但可以通过指定其他选项来修改各个组件的安装位置。例如
cmake . -DINSTALL_LAYOUT=SVR4 -DMYSQL_DATADIR=/var/mysql/data该
INSTALL_LAYOUT值决定了secure_file_priv系统变量的默认值。有关此变量的描述,请参阅 第 7.1.8 节,“服务器系统变量”。库文件安装位置。
手册页安装位置。
-DINSTALL_MYSQLSHAREDIR=dir_name共享数据文件安装位置。
-DINSTALL_MYSQLTESTDIR=dir_namemysql-test目录的安装位置。要禁止安装此目录,请将该选项显式设置为空值 (-DINSTALL_MYSQLTESTDIR=)。-DINSTALL_PKGCONFIGDIR=dir_name要安装
mysqlclient.pc文件以供 pkg-config 使用的目录。默认值为INSTALL_LIBDIR/pkgconfig,除非INSTALL_LIBDIR以/mysql结尾,在这种情况下,该目录将首先被移除。插件目录的位置。
此值可以在服务器启动时使用
--plugin_dir选项设置。-DINSTALL_PRIV_LIBDIR=dir_name动态库目录的位置。
默认位置。 对于 RPM 构建,这是
/usr/lib64/mysql/private/,对于 DEB,这是/usr/lib/mysql/private/,而对于 TAR,这是lib/private/。Protobuf。 由于这是一个私有位置,因此加载器(例如 Linux 上的
ld-linux.so)可能在没有帮助的情况下无法找到libprotobuf.so文件。为了指导加载器,将RPATH=$ORIGIN/../$INSTALL_PRIV_LIBDIR添加到 mysqld 和 mysqlxtest。这在大多数情况下都有效,但当使用 资源组 功能时,mysqld 是setsuid,并且加载器会忽略任何包含$ORIGIN的RPATH。为了克服这个问题,在 DEB 和 RPM 版本的 mysqld 中设置了目录的显式完整路径,因为目标位置是已知的。对于 tarball 安装,需要使用 patchelf 等工具对 mysqld 进行修补。mysqld 服务器安装位置。
-DINSTALL_SECURE_FILE_PRIVDIR=dir_namesecure_file_priv系统变量的默认值。默认值是特定于平台的,并且取决于INSTALL_LAYOUTCMake 选项的值;有关secure_file_priv系统变量的描述,请参阅 第 7.1.8 节,“服务器系统变量”。aclocal/mysql.m4安装位置。-DINSTALL_STATIC_LIBRARIES=bool是否安装静态库。默认值为
ON。如果设置为OFF,则不会安装以下库文件:libmysqlclient.a,libmysqlservices.a。-DINSTALL_SUPPORTFILESDIR=dir_name额外支持文件安装位置。
是否对 mysqld 二进制文件中的符号顺序进行随机化。默认值为
OFF。此选项仅应在调试目的时启用。LINK_RANDOMIZE选项的种子值。该值是一个字符串。默认值为mysql,这是一个任意的选择。MySQL 数据目录的位置。
此值可以在服务器启动时使用
--datadir选项设置。ODBC 包含目录的位置,这可能在配置 Connector/ODBC 时使用。
ODBC 库目录的位置,这可能在配置 Connector/ODBC 时使用。
默认的
my.cnf选项文件目录。此位置无法在服务器启动时设置,但您可以使用
--defaults-file=选项启动服务器,其中file_namefile_name是文件的完整路径名。当 MySQL 由 systemd 管理时,创建 PID 文件的目录名称。默认值为
/var/run/mysqld;这可能会根据INSTALL_LAYOUT值隐式更改。除非
WITH_SYSTEMD已启用,否则此选项将被忽略。当 MySQL 由 systemd 管理时要使用的 MySQL 服务的名称。默认值为
mysqld;这可能会根据INSTALL_LAYOUT值隐式更改。除非
WITH_SYSTEMD已启用,否则此选项将被忽略。用于
tmpdir系统变量的默认位置。如果未指定,则该值默认为P_tmpdir(在<stdio.h>中)。
存储引擎作为插件构建。您可以将插件构建为静态模块(编译到服务器中)或动态模块(构建为动态库,必须使用 INSTALL PLUGIN 语句或 --plugin-load 选项安装到服务器中,才能使用它)。某些插件可能不支持静态或动态构建。
该 InnoDB, MyISAM, MERGE, MEMORY 和 CSV 引擎是强制性的(始终编译到服务器中),无需显式安装。
要将存储引擎静态编译到服务器中,请使用 -DWITH_。一些允许的 engine_STORAGE_ENGINE=1engine 值是 ARCHIVE, BLACKHOLE, EXAMPLE 和 FEDERATED。示例
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1要构建支持 NDB Cluster 的 MySQL,请使用 WITH_NDB 选项。
无法在没有 Performance Schema 支持的情况下进行编译。如果需要在没有特定类型检测的情况下进行编译,则可以使用以下 CMake 选项
DISABLE_PSI_COND
DISABLE_PSI_DATA_LOCK
DISABLE_PSI_ERROR
DISABLE_PSI_FILE
DISABLE_PSI_IDLE
DISABLE_PSI_MEMORY
DISABLE_PSI_METADATA
DISABLE_PSI_MUTEX
DISABLE_PSI_PS
DISABLE_PSI_RWLOCK
DISABLE_PSI_SOCKET
DISABLE_PSI_SP
DISABLE_PSI_STAGE
DISABLE_PSI_STATEMENT
DISABLE_PSI_STATEMENT_DIGEST
DISABLE_PSI_TABLE
DISABLE_PSI_THREAD
DISABLE_PSI_TRANSACTION例如,要进行没有互斥检测的编译,请使用 -DDISABLE_PSI_MUTEX=1 配置 MySQL。
要从构建中排除存储引擎,请使用 -DWITH_。示例engine_STORAGE_ENGINE=0
-DWITH_ARCHIVE_STORAGE_ENGINE=0
-DWITH_EXAMPLE_STORAGE_ENGINE=0
-DWITH_FEDERATED_STORAGE_ENGINE=0还可以使用 -DWITHOUT_ 从构建中排除存储引擎(但建议使用 engine_STORAGE_ENGINE=1-DWITH_)。示例engine_STORAGE_ENGINE=0
-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1如果对于给定的存储引擎既没有指定 -DWITH_ 也没有指定 engine_STORAGE_ENGINE-DWITHOUT_,则该引擎将作为共享模块构建,或者如果无法作为共享模块构建,则将其排除。engine_STORAGE_ENGINE
此选项确定是否启用在二进制文件中生成
.gdb_index区段,这将使在调试器中加载它们更快。默认情况下该选项处于禁用状态。 lld 链接器用于,并且被禁用。 如果使用除 lld 或 GNU gold 以外的链接器,则此选项无效。关于编译环境的描述性注释。虽然 mysqld 使用
COMPILATION_COMMENT_SERVER,但其他程序使用COMPILATION_COMMENT。-DCOMPRESS_DEBUG_SECTIONS=bool是否压缩二进制可执行文件(仅限 Linux)的调试部分。压缩可执行调试部分可以节省空间,但会增加构建过程中的 CPU 时间。
默认值为
OFF。如果未显式设置此选项,但设置了COMPRESS_DEBUG_SECTIONS环境变量,则此选项将从该变量中获取其值。-DCOMPILATION_COMMENT_SERVER=string关于编译环境的描述性注释,供 mysqld 使用(例如,设置
version_comment系统变量)。除服务器以外的程序使用COMPILATION_COMMENT。-DDEFAULT_CHARSET=charset_name服务器字符集。默认情况下,MySQL 使用
utf8mb4字符集。charset_name可以是binary、armscii8、ascii、big5、cp1250、cp1251、cp1256、cp1257、cp850、cp852、cp866、cp932、dec8、eucjpms、euckr、gb2312、gbk、geostd8、greek、hebrew、hp8、keybcs2、koi8r、koi8u、latin1、latin2、latin5、latin7、macce、macroman、sjis、swe7、tis620、ucs2、ujis、utf8mb3、utf8mb4、utf16、utf16le、utf32中的任何一个。此值可以在服务器启动时使用
--character-set-server选项设置。-DDEFAULT_COLLATION=collation_name服务器排序规则。默认情况下,MySQL 使用
utf8mb4_0900_ai_ci。使用SHOW COLLATION语句确定每个字符集可以使用哪些排序规则。此值可以在服务器启动时使用
--collation_server选项设置。是否排除性能模式条件检测。默认值为
OFF(包含)。是否排除性能模式文件检测。默认值为
OFF(包含)。是否排除性能模式空闲检测。默认值为
OFF(包含)。是否排除性能模式内存检测。默认值为
OFF(包含)。是否排除性能模式元数据检测。默认值为
OFF(包含)。是否排除性能模式互斥锁检测。默认值为
OFF(包含)。是否排除性能模式读写锁检测。默认值为
OFF(包含)。是否排除性能模式套接字检测。默认值为
OFF(包含)。是否排除性能模式存储过程检测。默认值为
OFF(包含)。是否排除性能模式阶段检测。默认值为
OFF(包含)。是否排除性能模式语句检测。默认值为
OFF(包含)。-DDISABLE_PSI_STATEMENT_DIGEST=bool是否排除性能模式语句摘要检测。默认值为
OFF(包含)。是否排除性能模式表检测。默认值为
OFF(包含)。排除性能模式预处理语句实例检测。默认值为
OFF(包含)。排除性能模式线程检测。默认值为
OFF(包含)。只有在没有任何检测的情况下构建时才禁用线程,因为其他检测依赖于线程。
-DDISABLE_PSI_TRANSACTION=bool排除性能模式事务检测。默认值为
OFF(包含)。排除性能模式数据锁检测。默认值为
OFF(包含)。排除性能模式服务器错误检测。默认值为
OFF(包含)。-DENABLE_EXPERIMENTAL_SYSVARS=bool是否启用实验性
InnoDB系统变量。实验性系统变量是为那些参与 MySQL 开发的人员准备的,应该只在开发或测试环境中使用,并且可能在将来的 MySQL 版本中被删除,恕不另行通知。有关实验性系统变量的信息,请参考 MySQL 源代码树中的/storage/innobase/handler/ha_innodb.cc。可以通过搜索 “PLUGIN_VAR_EXPERIMENTAL” 来识别实验性系统变量。是否在没有 MySQL 服务器的情况下构建。默认值为 OFF,这将构建服务器。
这被认为是一个实验性选项;最好使用服务器进行构建。
是否包含 gcov 支持(仅限 Linux)。
是否启用 gprof(仅限优化后的 Linux 构建)。
此选项控制 MySQL 客户端库中编译的默认
LOCAL功能。因此,没有进行明确安排的客户端将根据在 MySQL 构建时指定的ENABLED_LOCAL_INFILE设置禁用或启用LOCAL功能。默认情况下,MySQL 二进制发行版中的客户端库是在
ENABLED_LOCAL_INFILE禁用状态下编译的。如果您从源代码编译 MySQL,请根据没有进行明确安排的客户端是否应该禁用或启用LOCAL功能,使用ENABLED_LOCAL_INFILE禁用或启用它进行配置。ENABLED_LOCAL_INFILE控制客户端LOCAL功能的默认值。对于服务器,local_infile系统变量控制服务器端LOCAL功能。要明确地使服务器拒绝或允许LOAD DATA LOCAL语句(无论客户端程序和库在构建时或运行时如何配置),请使用--local-infile禁用或启用,分别启动 mysqld。local_infile也可以在运行时设置。请参阅 第 8.1.6 节,“LOAD DATA LOCAL 的安全注意事项”。是否启用查询分析代码(用于
SHOW PROFILE和SHOW PROFILES语句)。-DFORCE_UNSUPPORTED_COMPILER=bool默认情况下,CMake 检查支持的编译器的最低版本;要禁用此检查,请使用
-DFORCE_UNSUPPORTED_COMPILER=ON。-DSHOW_SUPPRESSED_COMPILER_WARNINGS=bool显示被抑制的编译器警告,并且在使用
-Werror时不会失败。默认值为OFF。是否生成 profile guided optimization (PGO) 数据。此选项可用于实验使用 GCC 进行 PGO。有关使用
FPROFILE_GENERATE和FPROFILE_USE的信息,请参阅 MySQL 源代码分发版中的cmake/fprofile.cmake。这些选项已在 GCC 8 和 9 上进行了测试。是否使用 profile guided optimization (PGO) 数据。此选项可用于实验使用 GCC 进行 PGO。有关使用
FPROFILE_GENERATE和FPROFILE_USE的信息,请参阅 MySQL 源代码分发版中的cmake/fprofile.cmake文件。这些选项已在 GCC 8 和 9 上进行了测试。启用
FPROFILE_USE还会启用WITH_LTO。-DHAVE_PSI_MEMORY_INTERFACE=bool是否启用性能架构内存跟踪模块,用于在过对齐类型动态存储中使用的内存分配函数(
ut::aligned_库函数)。name如果在 Linux 上给出
-DBUILD_CONFIG=mysql_release选项,则默认情况下必须链接libaio库。如果您没有libaio或者不想安装它,可以通过指定-DIGNORE_AIO_CHECK=1来抑制对其的检查。每个表的最大索引数。默认值为 64。最大值为 255。小于 64 的值将被忽略,并将使用默认值 64。
是否启用 MySQL 维护者特定的开发环境。如果启用,此选项会导致编译器警告变为错误。
-DWITH_DEVELOPER_ENTITLEMENTS=bool是否将
get-task-allow权限添加到所有可执行文件,以在服务器意外停止时生成核心转储。在 macOS 11+ 上,核心转储仅限于具有
com.apple.security.get-task-allow权限的进程,此 CMake 选项会启用该权限。此权限允许其他进程附加并读取/修改进程内存,并允许--core-file按预期工作。InnoDB使用的互斥锁类型。选项包括event:使用事件互斥锁。这是默认值,也是原始的InnoDB互斥锁实现。sys:在 UNIX 系统上使用 POSIX 互斥锁。如果可用,在 Windows 上使用CRITICAL_SECTION对象。futex:使用 Linux futex 代替条件变量来调度等待线程。
X 插件侦听 TCP/IP 连接的端口号。默认值为 33060。
此值可以在服务器启动时使用
mysqlx_port系统变量设置。服务器侦听 X 插件套接字连接的 Unix 套接字文件路径。这必须是绝对路径名。默认值为
/tmp/mysqlx.sock。此值可以在服务器启动时使用
mysqlx_port系统变量设置。对于 Windows 或 macOS,要合并到项目文件名中的项目名称。
服务器侦听 TCP/IP 连接的端口号。默认值为 3306。
此值可以在服务器启动时使用
--port选项设置。服务器侦听套接字连接的 Unix 套接字文件路径。这必须是绝对路径名。默认值为
/tmp/mysql.sock。此值可以在服务器启动时使用
--socket选项设置。是否支持优化器跟踪。请参阅MySQL 内部:跟踪优化器。
对于 Linux 系统上的构建,此选项控制是否要格外小心地创建独立于构建位置和时间的构建结果。
对于
RelWithDebInfo构建,此选项默认值为ON。CMake 默认情况下使用标准链接器。可以选择传入
lld或mold来指定替代链接器。mold 必须是 2 或更高版本。此选项可以在除 Enterprise Linux 之外的其他基于 Linux 的系统上使用,Enterprise Linux 始终使用ld 链接器。
注意以前,选项
USE_LD_LLD可用于启用(默认值)或显式禁用 LLVM lld 链接器以用于 Clang。在 MySQL 8.3 中,已删除USE_LD_LLD。是否在 Windows 上禁用函数内联。默认值为
OFF(启用内联)。设置 Ant 的路径,构建 GCS Java 包装器时需要。将
WITH_ANT设置为保存 Ant 压缩包或解压缩存档的目录的路径。当WITH_ANT未设置或设置为特殊值system时,构建过程假定二进制ant存在于$PATH中。是否启用 AddressSanitizer,对于支持它的编译器。默认值为
OFF。是否启用 AddressSanitizer
-fsanitize-address-use-after-scopeClang 标志以进行使用后范围检测。默认情况下为关闭。要使用此选项,还必须启用-DWITH_ASAN。-DWITH_AUTHENTICATION_CLIENT_PLUGINS=bool如果构建了任何相应的服务器身份验证插件,则此选项将自动启用。因此,它的值取决于其他CMake 选项,不应显式设置。
-DWITH_AUTHENTICATION_LDAP=bool是否在无法构建 LDAP 身份验证插件时报告错误
如果禁用此选项(默认值),则会在找到所需的标头文件和库时构建 LDAP 插件。如果找不到,CMake 会显示一条关于它的说明。
如果启用此选项,则无法找到所需的标头文件和库会导致 CMake 生成错误,从而阻止构建服务器。
-DWITH_AUTHENTICATION_PAM=bool是否构建 PAM 身份验证插件,适用于包含此插件的源树。(请参阅第 8.4.1.4 节,“PAM 可插拔身份验证”。)如果指定此选项,并且无法编译插件,则构建将失败。
Amazon Web Services 软件开发工具包的位置。
-DWITH_CLIENT_PROTOCOL_TRACING=bool是否将客户端协议跟踪框架构建到客户端库中。默认情况下,此选项已启用。
有关编写协议跟踪客户端插件的信息,请参阅编写协议跟踪插件。
另请参阅
WITH_TEST_TRACE_PLUGIN选项。curl库的位置。curl_type可以是system(使用系统curl库)、curl库的路径名、no|off|none(禁用 curl 支持)或bundled(使用extra/curl/中的捆绑的 curl 分发版)。是否包含调试支持。
通过配置 MySQL 的调试支持,您可以在启动服务器时使用
--debug="d,parser_debug"选项。这会导致用于处理 SQL 语句的 Bison 解析器将解析器跟踪信息转储到服务器的标准错误输出。通常,此输出会写入错误日志。用于
InnoDB存储引擎的同步调试检查定义在UNIV_DEBUG下,在使用WITH_DEBUG选项编译调试支持时可用。当编译调试支持时,可以使用innodb_sync_debug配置选项启用或禁用InnoDB同步调试检查。启用
WITH_DEBUG还会启用调试同步。此功能用于测试和调试。在编译时,调试同步在运行时默认禁用。要启用它,请使用--debug-sync-timeout=选项启动 mysqld,其中NN是大于 0 的超时值。(默认值为 0,禁用调试同步。)N将成为各个同步点的默认超时值。用于
InnoDB存储引擎的同步调试检查在使用WITH_DEBUG选项编译调试支持时可用。有关调试同步功能的描述以及如何使用同步点的说明,请参阅 MySQL 内部:测试同步。
要使用的
libedit/editline库。允许的值为bundled(默认值)和system。-DWITH_ICU={icu_type|path_name}MySQL 使用国际化组件库(ICU)来支持正则表达式操作。
WITH_ICU选项指示要包含的 ICU 支持类型或要使用的 ICU 安装的路径名。icu_type可以是以下值之一bundled:使用与发行版捆绑的 ICU 库。这是默认值,也是 Windows 上唯一支持的选项。system:使用系统 ICU 库。
path_name是要使用的 ICU 安装的路径名。这可能比使用icu_type值system更可取,因为它可以防止 CMake 检测和使用系统上安装的旧版或不正确的 ICU 版本。(另一种执行相同操作的允许方法是将WITH_ICU设置为system,并将CMAKE_PREFIX_PATH选项设置为path_name。)
-DWITH_INNODB_EXTRA_DEBUG=bool是否要包含额外的 InnoDB 调试支持。
启用
WITH_INNODB_EXTRA_DEBUG将开启额外的 InnoDB 调试检查。此选项仅在启用WITH_DEBUG时可用。是否要链接到
-ljemalloc。如果启用,则内置的malloc()、calloc()、realloc()和free()函数将被禁用。默认值为OFF。WITH_JEMALLOC和WITH_TCMALLOC是互斥的。在 Windows 上,传递包含
jemalloc.dll的目录路径以启用 jemalloc 功能。构建系统将jemalloc.dll复制到与mysqld.exe和/或mysqld-debug.exe相同的目录中,并将其用于内存管理操作。如果未找到jemalloc.dll或未导出必需的函数,则将使用标准内存函数。信息级日志消息将记录是否找到并使用了 jemalloc。此选项已为 Windows 的官方 MySQL 二进制文件启用。
要使用的
libevent库。允许的值为bundled(默认值)和system。如果指定了system并且找不到系统libevent库,无论如何都会发生错误,并且不会使用捆绑的libevent。libevent库是 X Plugin 和 MySQL Router 所必需的。是否要包含
libwrap(TCP 包装器)支持。是否要启用 LOCK_ORDER 工具。默认情况下,此选项处于禁用状态,服务器构建不包含任何工具。如果启用了工具,则 LOCK_ORDER 工具可用,并且可以按照 第 7.9.3 节,“LOCK_ORDER 工具” 中的描述使用。
注意启用
WITH_LOCK_ORDER选项后,MySQL 构建需要 flex 程序。是否要运行 LeakSanitizer,而不运行 AddressSanitizer。默认值为
OFF。是否要启用链接时优化器,如果编译器支持它。默认值为
OFF,除非启用了FPROFILE_USE。WITH_LZ4选项指示zlib支持的来源bundled:使用与发行版捆绑的lz4库。这是默认值。system:使用系统lz4库。
-DWITH_MECAB={disabled|system|path_name}使用此选项编译 MeCab 解析器。如果您已将 MeCab 安装到其默认安装目录,请设置
-DWITH_MECAB=system。system选项适用于从源代码或使用原生包管理工具从二进制文件进行的 MeCab 安装。如果您将 MeCab 安装到自定义安装目录,请指定 MeCab 安装的路径,例如-DWITH_MECAB=/opt/mecab。如果system选项不起作用,则指定 MeCab 安装路径应在所有情况下都起作用。有关相关信息,请参阅 第 14.9.9 节,“MeCab 全文解析器插件”。
是否要为支持它的编译器启用 MemorySanitizer。默认情况下已关闭。
为了使此选项在启用时生效,链接到 MySQL 的所有库也必须使用启用该选项编译。
是否要启用 Visual Studio CRT 内存泄漏跟踪。默认值为
OFF。是否要启用 MSVC 代码分析。默认值为
ON。是否要构建对 X Plugin 的支持。默认值为
ON。请参阅 第 22 章,将 MySQL 用作文档存储。显式设置 NUMA 内存分配策略。CMake 根据当前平台是否具有
NUMA支持来设置默认的WITH_NUMA值。对于没有 NUMA 支持的平台,CMake 的行为如下没有 NUMA 选项(正常情况),CMake 将继续正常运行,只产生以下警告:NUMA 库缺失或所需的版本不可用
使用
-DWITH_NUMA=ON,CMake 将使用以下错误中止:NUMA 库缺失或所需的版本不可用
对于通常用于 RPM 和 Debian 包的标志,是否要将它们添加到这些平台上的独立构建中。默认情况下,对于非调试构建,该值为
ON。要使用的 Protocol Buffers 包。
protobuf_type可以是以下值之一bundled:使用与发行版捆绑的包。这是默认值。可以选择使用INSTALL_PRIV_LIBDIR修改动态 Protobuf 库目录。system:使用系统上安装的包。
其他值将被忽略,并回退到
bundled。是否要构建快速开发周期插件。如果启用,则会在构建树中创建一个名为
rapid的目录,其中包含这些插件。如果禁用,则不会在构建树中创建rapid目录。默认值为ON,除非从源代码树中删除了rapid目录,在这种情况下,默认值将变为OFF。-DWITH_RAPIDJSON=rapidjson_type要包含的 RapidJSON 库支持类型。
rapidjson_type可以是以下值之一bundled:使用与发行版捆绑的 RapidJSON 库。这是默认值。system:使用系统 RapidJSON 库。需要 1.1.0 或更高版本。
是否构建 MySQL 路由器。默认值为
ON。-DWITH_SSL={|ssl_typepath_name}为了支持加密连接、随机数生成熵和其他加密相关操作,MySQL 必须使用 SSL 库构建。此选项指定要使用的 SSL 库。
ssl_type可以是以下值之一:system:使用系统 OpenSSL 库。这是默认值。在 macOS 和 Windows 上,使用
system会配置 MySQL 构建,就好像 CMake 使用path_name指向手动安装的 OpenSSL 库一样。这是因为它们没有系统 SSL 库。在 macOS 上,brew install openssl 安装到/usr/local/opt/openssl,因此system可以找到它。在 Windows 上,它会检查%ProgramFiles%/OpenSSL、%ProgramFiles%/OpenSSL-Win32、%ProgramFiles%/OpenSSL-Win64、C:/OpenSSL、C:/OpenSSL-Win32和C:/OpenSSL-Win64。yes:这是system的同义词。openssl:使用备用 OpenSSL 系统包,例如 EL7 上的versionopenssl11,或 EL8 上的openssl3(或openssl3-fips)。身份验证插件(如 LDAP 和 Kerberos)被禁用,因为它们不支持这些替代版本的 OpenSSL。
path_name是要使用的 OpenSSL 安装的路径名。这可能比使用ssl_type值system更可取,因为它可以防止 CMake 检测和使用系统上安装的较旧或不正确的 OpenSSL 版本。(另一种允许的执行相同操作的方法是将WITH_SSL设置为system,并将CMAKE_PREFIX_PATH选项设置为path_name。)
有关配置 SSL 库的更多信息,请参阅 第 2.8.6 节,“配置 SSL 库支持”。
启用对服务器中的
SHOW PARSE_TREE的支持,仅用于开发和调试。不用于发布版本,也不在生产环境中支持。是否启用安装 systemd 支持文件。默认情况下,此选项被禁用。启用后,会安装 systemd 支持文件,并且不会安装 mysqld_safe 等脚本以及 System V 初始化脚本。在不支持 systemd 的平台上,启用
WITH_SYSTEMD会导致 CMake 出现错误。当服务器使用此选项构建时,MySQL 会将所有 systemd 消息包含在服务器的错误日志中(请参阅 第 7.4.2 节,“错误日志”)。
有关使用 systemd 的更多信息,请参阅 第 2.5.9 节,“使用 systemd 管理 MySQL 服务器”。该部分还包括有关指定在
[mysqld_safe]选项组中指定的其他选项的信息。由于在使用 systemd 时不会安装 mysqld_safe,因此必须以其他方式指定这些选项。此选项充当 “总括” 选项,用于设置以下任何未明确设置的 CMake 选项的
system值:WITH_CURL、WITH_EDITLINE、WITH_ICU、WITH_LIBEVENT、WITH_LZ4、WITH_LZMA、WITH_PROTOBUF、WITH_RE2、WITH_SSL、WITH_ZLIB、WITH_ZSTD。是否生成其他 systemd 调试信息,适用于使用 systemd 运行 MySQL 的平台。默认值为
OFF。是否链接
-ltcmalloc。如果启用,内置的malloc()、calloc()、realloc()和free()例程将被禁用。默认值为OFF。源代码中包含一个
tcmalloc库;您可以通过将此选项设置为BUNDLED来使构建使用捆绑版本。BUNDLED仅在 Linux 系统上受支持。WITH_TCMALLOC和WITH_JEMALLOC是互斥的。是否构建测试协议跟踪客户端插件(请参阅 使用测试协议跟踪插件)。默认情况下,此选项被禁用。启用此选项不会产生任何影响,除非启用
WITH_CLIENT_PROTOCOL_TRACING选项。如果 MySQL 配置为同时启用这两个选项,则libmysqlclient客户端库将内置测试协议跟踪插件,并且所有标准 MySQL 客户端都会加载该插件。但是,即使启用测试插件,默认情况下它也不起作用。对插件的控制是通过环境变量提供的;请参阅 使用测试协议跟踪插件。注意如果您想使用自己的协议跟踪插件,请不要启用
WITH_TEST_TRACE_PLUGIN选项,因为一次只能加载一个此类插件,并且尝试加载第二个插件会导致错误。如果您已经使用启用的测试协议跟踪插件构建了 MySQL 以查看它的工作原理,则必须在使用自己的插件之前重新构建 MySQL,而无需启用它。有关编写跟踪插件的信息,请参阅 编写协议跟踪插件。
是否启用线程安全检查器,适用于支持它的编译器。默认值为关闭。
是否启用未定义行为安全检查器,适用于支持它的编译器。默认值为关闭。
如果启用,则使用单元测试编译 MySQL。默认值为
ON,除非未编译服务器。启用 unixODBC 支持,用于 Connector/ODBC。
是否编译 Valgrind 头文件,这些文件将 Valgrind API 公开给 MySQL 代码。默认值为
OFF。要生成一个 Valgrind 感知的调试版本,
-DWITH_VALGRIND=1通常与-DWITH_DEBUG=1结合使用。请参阅 构建调试配置。某些功能要求服务器使用压缩库支持构建,例如
COMPRESS()和UNCOMPRESS()函数,以及客户端/服务器协议的压缩。WITH_ZLIB选项指示zlib支持的来源支持的
zlib的最低版本是 1.2.13。bundled:使用与分发捆绑的zlib库。这是默认值。system:使用系统zlib库。
使用
zstd算法进行连接压缩(请参阅 第 6.2.8 节,“连接压缩控制”)要求服务器使用zstd库支持构建。WITH_ZSTD选项指示zstd支持的来源bundled:使用与分发捆绑的zstd库。这是默认值。system:使用系统zstd库。
C 编译器的标志。
C++ 编译器的标志。
-DWITH_DEFAULT_COMPILER_OPTIONS=bool是否使用来自
cmake/build_configurations/compiler_options.cmake的标志。注意所有优化标志都经过 MySQL 构建团队的精心选择和测试。覆盖它们可能会导致意外的结果,这样做需要您自担风险。
-DOPTIMIZE_SANITIZER_BUILDS=bool是否将
-O1 -fno-inline添加到安全检查器构建中。默认值为ON。
要指定您自己的 C 和 C++ 编译器标志,对于不影响优化的标志,请使用 CMAKE_C_FLAGS 和 CMAKE_CXX_FLAGS CMake 选项。
在提供您自己的编译器标志时,您可能还想指定 CMAKE_BUILD_TYPE。
例如,要在 64 位 Linux 机器上创建 32 位发布版本,请执行以下操作
$> mkdir build
$> cd build
$> cmake .. -DCMAKE_C_FLAGS=-m32 \
-DCMAKE_CXX_FLAGS=-m32 \
-DCMAKE_BUILD_TYPE=RelWithDebInfo如果您设置了影响优化的标志(-O),则必须设置 numberCMAKE_C_FLAGS_ 和/或 build_typeCMAKE_CXX_FLAGS_ 选项,其中 build_typebuild_type 对应于 CMAKE_BUILD_TYPE 值。要为默认构建类型(RelWithDebInfo)指定不同的优化,请设置 CMAKE_C_FLAGS_RELWITHDEBINFO 和 CMAKE_CXX_FLAGS_RELWITHDEBINFO 选项。例如,要在 Linux 上使用 -O3 以及调试符号进行编译,请执行以下操作
$> cmake .. -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g" \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g"
要使用 NDB Cluster 支持编译 MySQL,可以使用 -DWITH_NDB,这将导致构建包含 NDB 存储引擎和所有 NDB 程序。此选项默认启用。要防止构建 NDB 存储引擎插件,请使用 -DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF。构建的其他方面可以使用本节中列出的其他选项进行控制。
以下选项适用于使用 NDB Cluster 支持构建 MySQL 源代码。
-DNDB_UTILS_LINK_DYNAMIC={ON|OFF}控制是否使用
ndbclient静态地(OFF)或动态地(ON)链接 NDB 实用程序(如 ndb_drop_table);OFF(静态链接)是默认值。通常在构建这些实用程序时使用静态链接,以避免出现与LD_LIBRARY_PATH相关的問題,或者当安装了多个版本的ndbclient时。此选项旨在创建 Docker 镜像,以及可能的其他情况下,其中目标环境受到精确控制,并且需要减小镜像大小。设置用于构建 MySQL NDB Cluster Connector for Java 的类路径。默认情况下为空。如果使用
-DWITH_NDB_JAVA=OFF,则忽略此选项。在
NDB内核中启用错误注入。仅用于测试;不适合用于构建生产二进制文件。默认值为OFF。构建 MySQL NDB Cluster;构建 NDB 插件和所有 NDB Cluster 程序。
-DWITH_NDBAPI_EXAMPLES={ON|OFF}在
storage/ndb/ndbapi-examples/中构建 NDB API 示例程序。有关这些示例程序的信息,请参见 NDB API 示例。-DWITH_NDBCLUSTER_STORAGE_ENGINE={ON|OFF}控制(仅)构建中是否包含
ndbcluster插件;WITH_NDB会自动启用此选项,因此建议您使用WITH_NDB代替。-DWITH_NDBCLUSTER={ON|OFF}(已弃用)构建和链接对
NDB存储引擎的支持,该引擎位于 mysqld 中。此选项已弃用,并且可能会最终被删除;请改用
WITH_NDB。构建多线程数据节点可执行文件 ndbmtd。默认值为
ON。启用构建 NDB Cluster 二进制文件的调试版本。默认情况下为
OFF。启用使用 Java 支持构建 NDB Cluster,包括对 ClusterJ 的支持(请参见 MySQL NDB Cluster Connector for Java)。
此选项默认情况下为
ON。如果您不希望使用 Java 支持编译 NDB Cluster,则必须通过在运行 CMake 时指定-DWITH_NDB_JAVA=OFF来显式禁用它。否则,如果找不到 Java,构建配置将失败。导致构建的 NDB Cluster 管理服务器(ndb_mgmd)默认使用此
port。如果未设置此选项,则生成的管理服务器尝试默认使用端口 1186。如果启用,则包含一组 NDB API 测试程序。默认值为
OFF。-DWITH_NDB_TLS_SEARCH_PATH=path设置 ndb_sign_keys 和其他
NDB程序为 TLS 证书和密钥文件搜索的默认路径。Windows 平台的默认值为
$HOMEDIR/ndb-tls;对于其他平台(如 Linux),默认值为$HOME/ndb-tls。