文档首页
MySQL 9.0 参考手册
相关文档 下载此手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  MySQL 源代码配置选项

2.8.7 MySQL 源代码配置选项

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.

CMake 选项参考

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 到服务器中

通用选项

  • -DBUILD_CONFIG=mysql_release

    此选项使用 Oracle 用于生成官方 MySQL 版本的二进制发行版的相同构建选项配置源代码发行版。

  • -DWITH_BUILD_ID=bool

    在 Linux 系统上,生成唯一的构建 ID,该 ID 用作 build_id 系统变量的值,并在启动时写入 MySQL 服务器日志。将此选项设置为 OFF 以禁用此功能。

    此选项对 Linux 以外的平台无效。

  • -DBUNDLE_RUNTIME_LIBRARIES=bool

    是否将运行时库捆绑到 Windows 的服务器 MSI 和 Zip 包中。

  • -DCMAKE_BUILD_TYPE=type

    要生成的构建类型

    • RelWithDebInfo:启用优化并生成调试信息。这是默认的 MySQL 构建类型。

    • Release:启用优化,但省略调试信息以减小构建大小。

    • Debug:禁用优化并生成调试信息。如果启用了 WITH_DEBUG 选项,也会使用此构建类型。也就是说,-DWITH_DEBUG=1-DCMAKE_BUILD_TYPE=Debug 的效果相同。

    选项值 NoneMinSizeRel 不受支持。

  • -DCPACK_MONOLITHIC_INSTALL=bool

    此选项影响 make package 操作是生成多个安装包文件还是单个文件。如果禁用,则操作将生成多个安装包文件,如果您只想安装完整 MySQL 安装的一部分,这可能很有用。如果启用,它将生成一个用于安装所有内容的单个文件。

  • -DFORCE_INSOURCE_BUILD=bool

    定义是否强制执行源内构建。建议使用源外构建,因为它们允许从相同源代码进行多次构建,并且可以通过删除构建目录来快速执行清理。要强制执行源内构建,请使用 -DFORCE_INSOURCE_BUILD=ON 调用 CMake

  • -DFORCE_COLORED_OUTPUT=bool

    定义是否在命令行上编译时为 gccclang 启用彩色编译器输出。默认为 OFF

安装布局选项

CMAKE_INSTALL_PREFIX 选项指示基本安装目录。其他以 INSTALL_xxx 形式命名的选项,这些选项指示组件位置相对于前缀进行解释,并且它们的值是相对路径名。它们的值不应包含前缀。

存储引擎选项

存储引擎作为插件构建。您可以将插件构建为静态模块(编译到服务器中)或动态模块(构建为动态库,必须使用 INSTALL PLUGIN 语句或 --plugin-load 选项安装到服务器中,才能使用它)。某些插件可能不支持静态或动态构建。

InnoDBMyISAMMERGEMEMORYCSV 引擎是强制性的(始终编译到服务器中),无需显式安装。

要将存储引擎静态编译到服务器中,请使用 -DWITH_engine_STORAGE_ENGINE=1。一些允许的 engine 值是 ARCHIVEBLACKHOLEEXAMPLEFEDERATED。示例

-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,则该引擎将作为共享模块构建,或者如果无法作为共享模块构建,则将其排除。

功能选项

  • -DADD_GDB_INDEX=bool

    此选项确定是否启用在二进制文件中生成 .gdb_index 区段,这将使在调试器中加载它们更快。默认情况下该选项处于禁用状态。 lld 链接器用于,并且被禁用。 如果使用除 lld 或 GNU gold 以外的链接器,则此选项无效。

  • -DCOMPILATION_COMMENT=string

    关于编译环境的描述性注释。虽然 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 可以是 binaryarmscii8asciibig5cp1250cp1251cp1256cp1257cp850cp852cp866cp932dec8eucjpmseuckrgb2312gbkgeostd8greekhebrewhp8keybcs2koi8rkoi8ulatin1latin2latin5latin7maccemacromansjisswe7tis620ucs2ujisutf8mb3utf8mb4utf16utf16leutf32 中的任何一个。

    此值可以在服务器启动时使用 --character-set-server 选项设置。

  • -DDEFAULT_COLLATION=collation_name

    服务器排序规则。默认情况下,MySQL 使用 utf8mb4_0900_ai_ci。使用 SHOW COLLATION 语句确定每个字符集可以使用哪些排序规则。

    此值可以在服务器启动时使用 --collation_server 选项设置。

  • -DDISABLE_PSI_COND=bool

    是否排除性能模式条件检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_FILE=bool

    是否排除性能模式文件检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_IDLE=bool

    是否排除性能模式空闲检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_MEMORY=bool

    是否排除性能模式内存检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_METADATA=bool

    是否排除性能模式元数据检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_MUTEX=bool

    是否排除性能模式互斥锁检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_RWLOCK=bool

    是否排除性能模式读写锁检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_SOCKET=bool

    是否排除性能模式套接字检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_SP=bool

    是否排除性能模式存储过程检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_STAGE=bool

    是否排除性能模式阶段检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_STATEMENT=bool

    是否排除性能模式语句检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_STATEMENT_DIGEST=bool

    是否排除性能模式语句摘要检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_TABLE=bool

    是否排除性能模式表检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_PS=bool

    排除性能模式预处理语句实例检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_THREAD=bool

    排除性能模式线程检测。默认值为 OFF(包含)。

    只有在没有任何检测的情况下构建时才禁用线程,因为其他检测依赖于线程。

  • -DDISABLE_PSI_TRANSACTION=bool

    排除性能模式事务检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_DATA_LOCK=bool

    排除性能模式数据锁检测。默认值为 OFF(包含)。

  • -DDISABLE_PSI_ERROR=bool

    排除性能模式服务器错误检测。默认值为 OFF(包含)。

  • -DENABLE_EXPERIMENTAL_SYSVARS=bool

    是否启用实验性 InnoDB 系统变量。实验性系统变量是为那些参与 MySQL 开发的人员准备的,应该只在开发或测试环境中使用,并且可能在将来的 MySQL 版本中被删除,恕不另行通知。有关实验性系统变量的信息,请参考 MySQL 源代码树中的 /storage/innobase/handler/ha_innodb.cc。可以通过搜索 PLUGIN_VAR_EXPERIMENTAL 来识别实验性系统变量。

  • -DWITHOUT_SERVER=bool

    是否在没有 MySQL 服务器的情况下构建。默认值为 OFF,这将构建服务器。

    这被认为是一个实验性选项;最好使用服务器进行构建。

  • -DENABLE_GCOV=bool

    是否包含 gcov 支持(仅限 Linux)。

  • -DENABLE_GPROF=bool

    是否启用 gprof(仅限优化后的 Linux 构建)。

  • -DENABLED_LOCAL_INFILE=bool

    此选项控制 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 禁用或启用,分别启动 mysqldlocal_infile 也可以在运行时设置。请参阅 第 8.1.6 节,“LOAD DATA LOCAL 的安全注意事项”

  • -DENABLED_PROFILING=bool

    是否启用查询分析代码(用于 SHOW PROFILESHOW PROFILES 语句)。

  • -DFORCE_UNSUPPORTED_COMPILER=bool

    默认情况下,CMake 检查支持的编译器的最低版本;要禁用此检查,请使用-DFORCE_UNSUPPORTED_COMPILER=ON

  • -DSHOW_SUPPRESSED_COMPILER_WARNINGS=bool

    显示被抑制的编译器警告,并且在使用-Werror时不会失败。默认值为OFF

  • -DFPROFILE_GENERATE=bool

    是否生成 profile guided optimization (PGO) 数据。此选项可用于实验使用 GCC 进行 PGO。有关使用FPROFILE_GENERATEFPROFILE_USE的信息,请参阅 MySQL 源代码分发版中的cmake/fprofile.cmake。这些选项已在 GCC 8 和 9 上进行了测试。

  • -DFPROFILE_USE=bool

    是否使用 profile guided optimization (PGO) 数据。此选项可用于实验使用 GCC 进行 PGO。有关使用FPROFILE_GENERATEFPROFILE_USE的信息,请参阅 MySQL 源代码分发版中的cmake/fprofile.cmake 文件。这些选项已在 GCC 8 和 9 上进行了测试。

    启用FPROFILE_USE还会启用WITH_LTO

  • -DHAVE_PSI_MEMORY_INTERFACE=bool

    是否启用性能架构内存跟踪模块,用于在过对齐类型动态存储中使用的内存分配函数(ut::aligned_name 库函数)。

  • -DIGNORE_AIO_CHECK=bool

    如果在 Linux 上给出-DBUILD_CONFIG=mysql_release选项,则默认情况下必须链接libaio 库。如果您没有libaio 或者不想安装它,可以通过指定-DIGNORE_AIO_CHECK=1来抑制对其的检查。

  • -DMAX_INDEXES=num

    每个表的最大索引数。默认值为 64。最大值为 255。小于 64 的值将被忽略,并将使用默认值 64。

  • -DMYSQL_MAINTAINER_MODE=bool

    是否启用 MySQL 维护者特定的开发环境。如果启用,此选项会导致编译器警告变为错误。

  • -DWITH_DEVELOPER_ENTITLEMENTS=bool

    是否将get-task-allow 权限添加到所有可执行文件,以在服务器意外停止时生成核心转储。

    在 macOS 11+ 上,核心转储仅限于具有com.apple.security.get-task-allow 权限的进程,此 CMake 选项会启用该权限。此权限允许其他进程附加并读取/修改进程内存,并允许--core-file 按预期工作。

  • -DMUTEX_TYPE=type

    InnoDB 使用的互斥锁类型。选项包括

    • event:使用事件互斥锁。这是默认值,也是原始的InnoDB 互斥锁实现。

    • sys:在 UNIX 系统上使用 POSIX 互斥锁。如果可用,在 Windows 上使用CRITICAL_SECTION 对象。

    • futex:使用 Linux futex 代替条件变量来调度等待线程。

  • -DMYSQLX_TCP_PORT=port_num

    X 插件侦听 TCP/IP 连接的端口号。默认值为 33060。

    此值可以在服务器启动时使用mysqlx_port 系统变量设置。

  • -DMYSQLX_UNIX_ADDR=file_name

    服务器侦听 X 插件套接字连接的 Unix 套接字文件路径。这必须是绝对路径名。默认值为/tmp/mysqlx.sock

    此值可以在服务器启动时使用mysqlx_port 系统变量设置。

  • -DMYSQL_PROJECT_NAME=name

    对于 Windows 或 macOS,要合并到项目文件名中的项目名称。

  • -DMYSQL_TCP_PORT=port_num

    服务器侦听 TCP/IP 连接的端口号。默认值为 3306。

    此值可以在服务器启动时使用--port 选项设置。

  • -DMYSQL_UNIX_ADDR=file_name

    服务器侦听套接字连接的 Unix 套接字文件路径。这必须是绝对路径名。默认值为/tmp/mysql.sock

    此值可以在服务器启动时使用--socket 选项设置。

  • -DOPTIMIZER_TRACE=bool

    是否支持优化器跟踪。请参阅MySQL 内部:跟踪优化器

  • -DREPRODUCIBLE_BUILD=bool

    对于 Linux 系统上的构建,此选项控制是否要格外小心地创建独立于构建位置和时间的构建结果。

    对于RelWithDebInfo 构建,此选项默认值为ON

  • -DWITH_LD=string

    CMake 默认情况下使用标准链接器。可以选择传入lldmold 来指定替代链接器。mold 必须是 2 或更高版本。

    此选项可以在除 Enterprise Linux 之外的其他基于 Linux 的系统上使用,Enterprise Linux 始终使用ld 链接器。

    注意

    以前,选项USE_LD_LLD 可用于启用(默认值)或显式禁用 LLVM lld 链接器以用于 Clang。在 MySQL 8.3 中,已删除USE_LD_LLD

  • -DWIN_DEBUG_NO_INLINE=bool

    是否在 Windows 上禁用函数内联。默认值为OFF(启用内联)。

  • -DWITH_ANT=path_name

    设置 Ant 的路径,构建 GCS Java 包装器时需要。将WITH_ANT 设置为保存 Ant 压缩包或解压缩存档的目录的路径。当WITH_ANT 未设置或设置为特殊值system 时,构建过程假定二进制ant 存在于$PATH 中。

  • -DWITH_ASAN=bool

    是否启用 AddressSanitizer,对于支持它的编译器。默认值为OFF

  • -DWITH_ASAN_SCOPE=bool

    是否启用 AddressSanitizer-fsanitize-address-use-after-scope Clang 标志以进行使用后范围检测。默认情况下为关闭。要使用此选项,还必须启用-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 可插拔身份验证”。)如果指定此选项,并且无法编译插件,则构建将失败。

  • -DWITH_AWS_SDK=path_name

    Amazon Web Services 软件开发工具包的位置。

  • -DWITH_CLIENT_PROTOCOL_TRACING=bool

    是否将客户端协议跟踪框架构建到客户端库中。默认情况下,此选项已启用。

    有关编写协议跟踪客户端插件的信息,请参阅编写协议跟踪插件

    另请参阅WITH_TEST_TRACE_PLUGIN 选项。

  • -DWITH_CURL=curl_type

    curl 库的位置。curl_type 可以是system(使用系统curl 库)、curl 库的路径名、no|off|none(禁用 curl 支持)或bundled(使用extra/curl/ 中的捆绑的 curl 分发版)。

  • -DWITH_DEBUG=bool

    是否包含调试支持。

    通过配置 MySQL 的调试支持,您可以在启动服务器时使用 --debug="d,parser_debug" 选项。这会导致用于处理 SQL 语句的 Bison 解析器将解析器跟踪信息转储到服务器的标准错误输出。通常,此输出会写入错误日志。

    用于 InnoDB 存储引擎的同步调试检查定义在 UNIV_DEBUG 下,在使用 WITH_DEBUG 选项编译调试支持时可用。当编译调试支持时,可以使用 innodb_sync_debug 配置选项启用或禁用 InnoDB 同步调试检查。

    启用 WITH_DEBUG 还会启用调试同步。此功能用于测试和调试。在编译时,调试同步在运行时默认禁用。要启用它,请使用 --debug-sync-timeout=N 选项启动 mysqld,其中 N 是大于 0 的超时值。(默认值为 0,禁用调试同步。)N 将成为各个同步点的默认超时值。

    用于 InnoDB 存储引擎的同步调试检查在使用 WITH_DEBUG 选项编译调试支持时可用。

    有关调试同步功能的描述以及如何使用同步点的说明,请参阅 MySQL 内部:测试同步

  • -DWITH_EDITLINE=value

    要使用的 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_typesystem 更可取,因为它可以防止 CMake 检测和使用系统上安装的旧版或不正确的 ICU 版本。(另一种执行相同操作的允许方法是将 WITH_ICU 设置为 system,并将 CMAKE_PREFIX_PATH 选项设置为 path_name。)

  • -DWITH_INNODB_EXTRA_DEBUG=bool

    是否要包含额外的 InnoDB 调试支持。

    启用 WITH_INNODB_EXTRA_DEBUG 将开启额外的 InnoDB 调试检查。此选项仅在启用 WITH_DEBUG 时可用。

  • -DWITH_JEMALLOC=bool

    是否要链接到 -ljemalloc。如果启用,则内置的 malloc()calloc()realloc()free() 函数将被禁用。默认值为 OFF

    WITH_JEMALLOCWITH_TCMALLOC 是互斥的。

  • -DWITH_WIN_JEMALLOC=string

    在 Windows 上,传递包含 jemalloc.dll 的目录路径以启用 jemalloc 功能。构建系统将 jemalloc.dll 复制到与 mysqld.exe 和/或 mysqld-debug.exe 相同的目录中,并将其用于内存管理操作。如果未找到 jemalloc.dll 或未导出必需的函数,则将使用标准内存函数。信息级日志消息将记录是否找到并使用了 jemalloc。

    此选项已为 Windows 的官方 MySQL 二进制文件启用。

  • -DWITH_LIBEVENT=string

    要使用的 libevent 库。允许的值为 bundled(默认值)和 system。如果指定了 system 并且找不到系统 libevent 库,无论如何都会发生错误,并且不会使用捆绑的 libevent

    libevent 库是 X Plugin 和 MySQL Router 所必需的。

  • -DWITH_LIBWRAP=bool

    是否要包含 libwrap(TCP 包装器)支持。

  • -DWITH_LOCK_ORDER=bool

    是否要启用 LOCK_ORDER 工具。默认情况下,此选项处于禁用状态,服务器构建不包含任何工具。如果启用了工具,则 LOCK_ORDER 工具可用,并且可以按照 第 7.9.3 节,“LOCK_ORDER 工具” 中的描述使用。

    注意

    启用 WITH_LOCK_ORDER 选项后,MySQL 构建需要 flex 程序。

  • -DWITH_LSAN=bool

    是否要运行 LeakSanitizer,而不运行 AddressSanitizer。默认值为 OFF

  • -DWITH_LTO=bool

    是否要启用链接时优化器,如果编译器支持它。默认值为 OFF,除非启用了 FPROFILE_USE

  • -DWITH_LZ4=lz4_type

    WITH_LZ4 选项指示 zlib 支持的来源

    • bundled:使用与发行版捆绑的 lz4 库。这是默认值。

    • system:使用系统 lz4 库。

  • -DWITH_MECAB={disabled|system|path_name}

    使用此选项编译 MeCab 解析器。如果您已将 MeCab 安装到其默认安装目录,请设置 -DWITH_MECAB=systemsystem 选项适用于从源代码或使用原生包管理工具从二进制文件进行的 MeCab 安装。如果您将 MeCab 安装到自定义安装目录,请指定 MeCab 安装的路径,例如 -DWITH_MECAB=/opt/mecab。如果 system 选项不起作用,则指定 MeCab 安装路径应在所有情况下都起作用。

    有关相关信息,请参阅 第 14.9.9 节,“MeCab 全文解析器插件”

  • -DWITH_MSAN=bool

    是否要为支持它的编译器启用 MemorySanitizer。默认情况下已关闭。

    为了使此选项在启用时生效,链接到 MySQL 的所有库也必须使用启用该选项编译。

  • -DWITH_MSCRT_DEBUG=bool

    是否要启用 Visual Studio CRT 内存泄漏跟踪。默认值为 OFF

  • -DMSVC_CPPCHECK=bool

    是否要启用 MSVC 代码分析。默认值为 ON

  • -DWITH_MYSQLX=bool

    是否要构建对 X Plugin 的支持。默认值为 ON。请参阅 第 22 章,将 MySQL 用作文档存储

  • -DWITH_NUMA=bool

    显式设置 NUMA 内存分配策略。CMake 根据当前平台是否具有 NUMA 支持来设置默认的 WITH_NUMA 值。对于没有 NUMA 支持的平台,CMake 的行为如下

    • 没有 NUMA 选项(正常情况),CMake 将继续正常运行,只产生以下警告:NUMA 库缺失或所需的版本不可用

    • 使用 -DWITH_NUMA=ONCMake 将使用以下错误中止:NUMA 库缺失或所需的版本不可用

  • -DWITH_PACKAGE_FLAGS=bool

    对于通常用于 RPM 和 Debian 包的标志,是否要将它们添加到这些平台上的独立构建中。默认情况下,对于非调试构建,该值为 ON

  • -DWITH_PROTOBUF=protobuf_type

    要使用的 Protocol Buffers 包。protobuf_type 可以是以下值之一

    • bundled:使用与发行版捆绑的包。这是默认值。可以选择使用 INSTALL_PRIV_LIBDIR 修改动态 Protobuf 库目录。

    • system:使用系统上安装的包。

    其他值将被忽略,并回退到 bundled

  • -DWITH_RAPID=bool

    是否要构建快速开发周期插件。如果启用,则会在构建树中创建一个名为 rapid 的目录,其中包含这些插件。如果禁用,则不会在构建树中创建 rapid 目录。默认值为 ON,除非从源代码树中删除了 rapid 目录,在这种情况下,默认值将变为 OFF

  • -DWITH_RAPIDJSON=rapidjson_type

    要包含的 RapidJSON 库支持类型。rapidjson_type 可以是以下值之一

    • bundled:使用与发行版捆绑的 RapidJSON 库。这是默认值。

    • system:使用系统 RapidJSON 库。需要 1.1.0 或更高版本。

  • -DWITH_ROUTER=bool

    是否构建 MySQL 路由器。默认值为 ON

  • -DWITH_SSL={ssl_type|path_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-Win64C:/OpenSSLC:/OpenSSL-Win32C:/OpenSSL-Win64

      • yes:这是 system 的同义词。

      • opensslversion:使用备用 OpenSSL 系统包,例如 EL7 上的 openssl11,或 EL8 上的 openssl3(或 openssl3-fips)。

        身份验证插件(如 LDAP 和 Kerberos)被禁用,因为它们不支持这些替代版本的 OpenSSL。

    • path_name 是要使用的 OpenSSL 安装的路径名。这可能比使用 ssl_typesystem 更可取,因为它可以防止 CMake 检测和使用系统上安装的较旧或不正确的 OpenSSL 版本。(另一种允许的执行相同操作的方法是将 WITH_SSL 设置为 system,并将 CMAKE_PREFIX_PATH 选项设置为 path_name。)

    有关配置 SSL 库的更多信息,请参阅 第 2.8.6 节,“配置 SSL 库支持”

  • -DWITH_SHOW_PARSE_TREE=bool

    启用对服务器中的 SHOW PARSE_TREE 的支持,仅用于开发和调试。不用于发布版本,也不在生产环境中支持。

  • -DWITH_SYSTEMD=bool

    是否启用安装 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,因此必须以其他方式指定这些选项。

  • -DWITH_SYSTEM_LIBS=bool

    此选项充当 总括 选项,用于设置以下任何未明确设置的 CMake 选项的 system 值:WITH_CURLWITH_EDITLINEWITH_ICUWITH_LIBEVENTWITH_LZ4WITH_LZMAWITH_PROTOBUFWITH_RE2WITH_SSLWITH_ZLIBWITH_ZSTD

  • -DWITH_SYSTEMD_DEBUG=bool

    是否生成其他 systemd 调试信息,适用于使用 systemd 运行 MySQL 的平台。默认值为 OFF

  • -DWITH_TCMALLOC=bool

    是否链接 -ltcmalloc。如果启用,内置的 malloc()calloc()realloc()free() 例程将被禁用。默认值为 OFF

    源代码中包含一个 tcmalloc 库;您可以通过将此选项设置为 BUNDLED 来使构建使用捆绑版本。 BUNDLED 仅在 Linux 系统上受支持。

    WITH_TCMALLOCWITH_JEMALLOC 是互斥的。

  • -DWITH_TEST_TRACE_PLUGIN=bool

    是否构建测试协议跟踪客户端插件(请参阅 使用测试协议跟踪插件)。默认情况下,此选项被禁用。启用此选项不会产生任何影响,除非启用 WITH_CLIENT_PROTOCOL_TRACING 选项。如果 MySQL 配置为同时启用这两个选项,则 libmysqlclient 客户端库将内置测试协议跟踪插件,并且所有标准 MySQL 客户端都会加载该插件。但是,即使启用测试插件,默认情况下它也不起作用。对插件的控制是通过环境变量提供的;请参阅 使用测试协议跟踪插件

    注意

    如果您想使用自己的协议跟踪插件,请不要启用 WITH_TEST_TRACE_PLUGIN 选项,因为一次只能加载一个此类插件,并且尝试加载第二个插件会导致错误。如果您已经使用启用的测试协议跟踪插件构建了 MySQL 以查看它的工作原理,则必须在使用自己的插件之前重新构建 MySQL,而无需启用它。

    有关编写跟踪插件的信息,请参阅 编写协议跟踪插件

  • -DWITH_TSAN=bool

    是否启用线程安全检查器,适用于支持它的编译器。默认值为关闭。

  • -DWITH_UBSAN=bool

    是否启用未定义行为安全检查器,适用于支持它的编译器。默认值为关闭。

  • -DWITH_UNIT_TESTS={ON|OFF}

    如果启用,则使用单元测试编译 MySQL。默认值为 ON,除非未编译服务器。

  • -DWITH_UNIXODBC=1

    启用 unixODBC 支持,用于 Connector/ODBC。

  • -DWITH_VALGRIND=bool

    是否编译 Valgrind 头文件,这些文件将 Valgrind API 公开给 MySQL 代码。默认值为 OFF

    要生成一个 Valgrind 感知的调试版本,-DWITH_VALGRIND=1 通常与 -DWITH_DEBUG=1 结合使用。请参阅 构建调试配置

  • -DWITH_ZLIB=zlib_type

    某些功能要求服务器使用压缩库支持构建,例如 COMPRESS()UNCOMPRESS() 函数,以及客户端/服务器协议的压缩。 WITH_ZLIB 选项指示 zlib 支持的来源

    支持的 zlib 的最低版本是 1.2.13。

    • bundled:使用与分发捆绑的 zlib 库。这是默认值。

    • system:使用系统 zlib 库。

  • -DWITH_ZSTD=zstd_type

    使用 zstd 算法进行连接压缩(请参阅 第 6.2.8 节,“连接压缩控制”)要求服务器使用 zstd 库支持构建。 WITH_ZSTD 选项指示 zstd 支持的来源

    • bundled:使用与分发捆绑的 zstd 库。这是默认值。

    • system:使用系统 zstd 库。

编译器标志

要指定您自己的 C 和 C++ 编译器标志,对于不影响优化的标志,请使用 CMAKE_C_FLAGSCMAKE_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

如果您设置了影响优化的标志(-Onumber),则必须设置 CMAKE_C_FLAGS_build_type 和/或 CMAKE_CXX_FLAGS_build_type 选项,其中 build_type 对应于 CMAKE_BUILD_TYPE 值。要为默认构建类型(RelWithDebInfo)指定不同的优化,请设置 CMAKE_C_FLAGS_RELWITHDEBINFOCMAKE_CXX_FLAGS_RELWITHDEBINFO 选项。例如,要在 Linux 上使用 -O3 以及调试符号进行编译,请执行以下操作

$> cmake .. -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g" \
  -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g"

用于编译 NDB Cluster 的 CMake 选项

要使用 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 镜像,以及可能的其他情况下,其中目标环境受到精确控制,并且需要减小镜像大小。

  • -DWITH_CLASSPATH=path

    设置用于构建 MySQL NDB Cluster Connector for Java 的类路径。默认情况下为空。如果使用 -DWITH_NDB_JAVA=OFF,则忽略此选项。

  • -DWITH_ERROR_INSERT={ON|OFF}

    NDB 内核中启用错误注入。仅用于测试;不适合用于构建生产二进制文件。默认值为 OFF

  • -DWITH_NDB={ON|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

  • -DWITH_NDBMTD={ON|OFF}

    构建多线程数据节点可执行文件 ndbmtd。默认值为 ON

  • -DWITH_NDB_DEBUG={ON|OFF}

    启用构建 NDB Cluster 二进制文件的调试版本。默认情况下为 OFF

  • -DWITH_NDB_JAVA={ON|OFF}

    启用使用 Java 支持构建 NDB Cluster,包括对 ClusterJ 的支持(请参见 MySQL NDB Cluster Connector for Java)。

    此选项默认情况下为 ON。如果您不希望使用 Java 支持编译 NDB Cluster,则必须通过在运行 CMake 时指定 -DWITH_NDB_JAVA=OFF 来显式禁用它。否则,如果找不到 Java,构建配置将失败。

  • -DWITH_NDB_PORT=port

    导致构建的 NDB Cluster 管理服务器(ndb_mgmd)默认使用此 port。如果未设置此选项,则生成的管理服务器尝试默认使用端口 1186。

  • -DWITH_NDB_TEST={ON|OFF}

    如果启用,则包含一组 NDB API 测试程序。默认值为 OFF

  • -DWITH_NDB_TLS_SEARCH_PATH=path

    设置 ndb_sign_keys 和其他 NDB 程序为 TLS 证书和密钥文件搜索的默认路径。

    Windows 平台的默认值为 $HOMEDIR/ndb-tls;对于其他平台(如 Linux),默认值为 $HOME/ndb-tls