### 2.9.7 MySQL 源配置选项

[](<>)[](<>)[](<>)

这**制作**程序提供了对如何配置 MySQL 源代码分发的大量控制。通常，您可以使用**制作**命令行。有关支持的选项的信息**制作**，在顶级源目录中运行以下任一命令：

```
cmake . -LH
ccmake .
```

你也可以影响**制作**使用某些环境变量。看[第 4.9 节，“环境变量”](environment-variables.html).

对于布尔选项，该值可以指定为 1 或`在`启用该选项，或为 0 或`离开`禁用该选项。

许多选项配置可以在服务器启动时覆盖的编译时默认值。例如，[`CMAKE_INSTALL_PREFIX`](source-configuration-options.html#option_cmake_cmake_install_prefix),[`MYSQL_TCP_PORT`](source-configuration-options.html#option_cmake_mysql_tcp_port)， 和[`MYSQL_UNIX_ADDR`](source-configuration-options.html#option_cmake_mysql_unix_addr)配置默认安装基目录位置、TCP/IP 端口号和 Unix 套接字文件的选项可以在服务器启动时使用[`--basedir`](server-system-variables.html#sysvar_basedir),[`- 港口`](server-options.html#option_mysqld_port)， 和[`- 插座`](server-options.html#option_mysqld_socket)选项[**mysqld**](mysqld.html).在适用的情况下，配置选项说明指示相应的[**mysqld**](mysqld.html)启动选项。

以下部分提供了有关**制作**选项。

-   [CMake 选项参考](source-configuration-options.html#cmake-option-reference)

-   [常规选项](source-configuration-options.html#cmake-general-options)

-   [安装布局选项](source-configuration-options.html#cmake-installation-layout-options)

-   [存储引擎选项](source-configuration-options.html#option_cmake_storage_engine_options)

-   [功能选项](source-configuration-options.html#cmake-feature-options)

-   [编译器标志](source-configuration-options.html#cmake-compiler-flags)

-   [用于编译 NDB 集群的 CMake 选项](source-configuration-options.html#cmake-mysql-cluster-options)

#### CMake 选项参考

下表显示了可用的**制作**选项。在里面`默认`柱子，`字首`代表的价值[`CMAKE_INSTALL_PREFIX`](source-configuration-options.html#option_cmake_cmake_install_prefix)选项，它指定安装基目录。此值用作多个安装子目录的父位置。

[](<>)

**表 2.14 MySQL 源配置选项参考 (CMake)**

| 格式 | 描述 | 默认 | 介绍 | 已移除 |
| --- | --- | --- | --- | --- |
| [`ADD_GDB_INDEX`](source-configuration-options.html#option_cmake_add_gdb_index) | 是否启用 .gdb 的生成\_二进制文件中的索引部分 |  | 8.0.18 |  |
| [`BUILD_CONFIG`](source-configuration-options.html#option_cmake_build_config) | 使用与官方版本相同的构建选项 |  |  |  |
| [`BUNDLE_RUNTIME_LIBRARIES`](source-configuration-options.html#option_cmake_bundle_runtime_libraries) | 将运行时库与 Windows 的服务器 MSI 和 Zip 包捆绑在一起 | `离开` |  |  |
| [`CMAKE_BUILD_TYPE`](source-configuration-options.html#option_cmake_cmake_build_type) | 要生产的构建类型 | `RelWithDebInfo` |  |  |
| [`CMAKE_CXX_FLAGS`](source-configuration-options.html#option_cmake_cmake_cxx_flags) | C++ 编译器的标志 |  |  |  |
| [`CMAKE_C_FLAGS`](source-configuration-options.html#option_cmake_cmake_c_flags) | C 编译器的标志 |  |  |  |
| [`CMAKE_INSTALL_PREFIX`](source-configuration-options.html#option_cmake_cmake_install_prefix) | 安装基目录 | `/usr/local/mysql` |  |  |
| [`COMPILATION_COMMENT`](source-configuration-options.html#option_cmake_compilation_comment) | 编译环境评论 |  |  |  |
| [`COMPILATION_COMMENT_SERVER`](source-configuration-options.html#option_cmake_compilation_comment_server) | 注释mysqld使用的编译环境 |  | 8.0.14 |  |
| [`COMPRESS_DEBUG_SECTIONS`](source-configuration-options.html#option_cmake_compress_debug_sections) | 压缩二进制可执行文件的调试部分 | `离开` | 8.0.22 |  |
| [`CPACK_MONOLITHIC_INSTALL`](source-configuration-options.html#option_cmake_cpack_monolithic_install) | 包构建是否产生单个文件 | `离开` |  |  |
| [`DEFAULT_CHARSET`](source-configuration-options.html#option_cmake_default_charset) | 默认服务器字符集 | `utf8mb4` |  |  |
| [`DEFAULT_COLLATION`](source-configuration-options.html#option_cmake_default_collation) | 默认服务器排序规则 | `utf8mb4_0900_ai_ci` |  |  |
| [`DISABLE_PSI_COND`](source-configuration-options.html#option_cmake_disable_psi_cond) | 排除性能模式条件检测 | `离开` |  |  |
| [`DISABLE_PSI_DATA_LOCK`](source-configuration-options.html#option_cmake_disable_psi_data_lock) | 排除性能模式数据锁检测 | `离开` |  |  |
| [`DISABLE_PSI_ERROR`](source-configuration-options.html#option_cmake_disable_psi_error) | 排除性能模式服务器错误检测 | `离开` |  |  |
| [`DISABLE_PSI_FILE`](source-configuration-options.html#option_cmake_disable_psi_file) | 排除性能模式文件检测 | `离开` |  |  |
| [`DISABLE_PSI_IDLE`](source-configuration-options.html#option_cmake_disable_psi_idle) | 排除性能模式空闲检测 | `离开` |  |  |
| [`DISABLE_PSI_MEMORY`](source-configuration-options.html#option_cmake_disable_psi_memory) | 排除性能模式内存检测 | `离开` |  |  |
| [`DISABLE_PSI_METADATA`](source-configuration-options.html#option_cmake_disable_psi_metadata) | 排除性能模式元数据检测 | `离开` |  |  |
| [`DISABLE_PSI_MUTEX`](source-configuration-options.html#option_cmake_disable_psi_mutex) | 排除性能模式互斥检测 | `离开` |  |  |
| [`DISABLE_PSI_PS`](source-configuration-options.html#option_cmake_disable_psi_ps) | 排除性能模式准备好的语句 | `离开` |  |  |
| [`DISABLE_PSI_RWLOCK`](source-configuration-options.html#option_cmake_disable_psi_rwlock) | 排除性能模式 rwlock 检测 | `离开` |  |  |
| [`DISABLE_PSI_SOCKET`](source-configuration-options.html#option_cmake_disable_psi_socket) | 排除性能模式套接字检测 | `离开` |  |  |
| [`DISABLE_PSI_SP`](source-configuration-options.html#option_cmake_disable_psi_sp) | 排除 Performance Schema 存储程序检测 | `离开` |  |  |
| [`DISABLE_PSI_STAGE`](source-configuration-options.html#option_cmake_disable_psi_stage) | 排除 Performance Schema 阶段检测 | `离开` |  |  |
| [`DISABLE_PSI_STATEMENT`](source-configuration-options.html#option_cmake_disable_psi_statement) | 排除性能模式语句检测 | `离开` |  |  |
| [`DISABLE_PSI_STATEMENT_DIGEST`](source-configuration-options.html#option_cmake_disable_psi_statement_digest) | 排除性能模式语句\_消化仪器 | `离开` |  |  |
| [`DISABLE_PSI_TABLE`](source-configuration-options.html#option_cmake_disable_psi_table) | 排除性能模式表检测 | `离开` |  |  |
| [`DISABLE_PSI_THREAD`](source-configuration-options.html#option_cmake_disable_psi_thread) | 排除性能模式线程检测 | `离开` |  |  |
| [`DISABLE_PSI_TRANSACTION`](source-configuration-options.html#option_cmake_disable_psi_transaction) | 排除性能模式事务检测 | `离开` |  |  |
| [`DISABLE_SHARED`](source-configuration-options.html#option_cmake_disable_shared) | 不构建共享库，编译位置相关代码 | `离开` |  | 8.0.18 |
| [`DOWNLOAD_BOOST`](source-configuration-options.html#option_cmake_download_boost) | 是否下载Boost库 | `离开` |  |  |
| [`DOWNLOAD_BOOST_TIMEOUT`](source-configuration-options.html#option_cmake_download_boost_timeout) | 下载 Boost 库的超时时间（以秒为单位） | `600` |  |  |
| [`ENABLED_LOCAL_INFILE`](source-configuration-options.html#option_cmake_enabled_local_infile) | 是否为 LOAD DATA 启用 LOCAL | `离开` |  |  |
| [`ENABLED_PROFILING`](source-configuration-options.html#option_cmake_enabled_profiling) | 是否启用查询分析代码 | `在` |  |  |
| [`ENABLE_DOWNLOADS`](source-configuration-options.html#option_cmake_enable_downloads) | 是否下载可选文件 | `离开` |  | 8.0.26 |
| [`ENABLE_EXPERIMENTAL_SYSVARS`](source-configuration-options.html#option_cmake_enable_experimental_sysvars) | 是否启用实验性 InnoDB 系统变量 | `离开` |  |  |
| [`ENABLE_GCOV`](source-configuration-options.html#option_cmake_enable_gcov) | 是否包含 gcov 支持 |  |  |  |
| [`ENABLE_GPROF`](source-configuration-options.html#option_cmake_enable_gprof) | 启用 gprof（仅限优化的 Linux 版本） | `离开` |  |  |
| [`FORCE_INSOURCE_BUILD`](source-configuration-options.html#option_cmake_force_insource_build) | 是否强制进行源内构建 | `离开` | 8.0.14 |  |
| [`FORCE_UNSUPPORTED_COMPILER`](source-configuration-options.html#option_cmake_force_unsupported_compiler) | 是否允许不支持的编译器 | `离开` |  |  |
| [`FPROFILE_GENERATE`](source-configuration-options.html#option_cmake_fprofile_generate) | 是否生成配置文件引导优化数据 | `离开` | 8.0.19 |  |
| [`FPROFILE_USE`](source-configuration-options.html#option_cmake_fprofile_use) | 是否使用配置文件引导的优化数据 | `离开` | 8.0.19 |  |
| [`HAVE_PSI_MEMORY_INTERFACE`](source-configuration-options.html#option_cmake_have_psi_memory_interface) | 为过度对齐类型的动态存储中使用的内存分配函数启用性能模式内存跟踪模块 | `离开` | 8.0.26 |  |
| [`IGNORE_AIO_CHECK`](source-configuration-options.html#option_cmake_ignore_aio_check) | 使用 -DBUILD\_配置=mysql\_释放，忽略libaio检查 | `离开` |  |  |
| [`INSTALL_BINDIR`](source-configuration-options.html#option_cmake_install_bindir) | 用户可执行文件目录 | `前缀/bin` |  |  |
| [`INSTALL_DOCDIR`](source-configuration-options.html#option_cmake_install_docdir) | 文档目录 | `前缀/文档` |  |  |
| [`INSTALL_DOCREADMEDIR`](source-configuration-options.html#option_cmake_install_docreadmedir) | 自述文件目录 | `字首` |  |  |
| [`INSTALL_INCLUDEDIR`](source-configuration-options.html#option_cmake_install_includedir) | 头文件目录 | `前缀/包括` |  |  |
| [`INSTALL_INFODIR`](source-configuration-options.html#option_cmake_install_infodir) | 信息文件目录 | `前缀/文档` |  |  |
| [`INSTALL_LAYOUT`](source-configuration-options.html#option_cmake_install_layout) | 选择预定义的安装布局 | `独立的` |  |  |
| [`INSTALL_LIBDIR`](source-configuration-options.html#option_cmake_install_libdir) | 库文件目录 | `前缀/库` |  |  |
| [`INSTALL_MANDIR`](source-configuration-options.html#option_cmake_install_mandir) | 手册页目录 | `前缀/人` |  |  |
| [`INSTALL_MYSQLKEYRINGDIR`](source-configuration-options.html#option_cmake_install_mysqlkeyringdir) | 密钥环目录\_文件插件数据文件 | `特定平台` |  |  |
| [`INSTALL_MYSQLSHAREDIR`](source-configuration-options.html#option_cmake_install_mysqlsharedir) | 共享数据目录 | `前缀/共享` |  |  |
| [`INSTALL_MYSQLTESTDIR`](source-configuration-options.html#option_cmake_install_mysqltestdir) | mysql测试目录 | `前缀/mysql-test` |  |  |
| [`INSTALL_PKGCONFIGDIR`](source-configuration-options.html#option_cmake_install_pkgconfigdir) | mysqlclient.pc pkg-config 文件的目录 | `INSTALL_LIBDIR/pkgconfig` |  |  |
| [`INSTALL_PLUGINDIR`](source-configuration-options.html#option_cmake_install_plugindir) | 插件目录 | `前缀/lib/插件` |  |  |
| [`INSTALL_PRIV_LIBDIR`](source-configuration-options.html#option_cmake_install_priv_libdir) | 安装私有库目录 |  | 8.0.18 |  |
| [`INSTALL_SBINDIR`](source-configuration-options.html#option_cmake_install_sbindir) | 服务器可执行目录 | `前缀/bin` |  |  |
| [`INSTALL_SECURE_FILE_PRIVDIR`](source-configuration-options.html#option_cmake_install_secure_file_privdir) | 安全的\_文件\_priv 默认值 | `特定平台` |  |  |
| [`INSTALL_SHAREDIR`](source-configuration-options.html#option_cmake_install_sharedir) | aclocal/mysql.m4 安装目录 | `前缀/共享` |  |  |
| [`INSTALL_STATIC_LIBRARIES`](source-configuration-options.html#option_cmake_install_static_libraries) | 是否安装静态库 | `在` |  |  |
| [`INSTALL_SUPPORTFILESDIR`](source-configuration-options.html#option_cmake_install_supportfilesdir) | 额外的支持文件目录 | `前缀/支持文件` |  |  |
| [`LINK_RANDOMIZE`](source-configuration-options.html#option_cmake_link_randomize) | 是否随机化 mysqld 二进制文件中的符号顺序 | `离开` |  |  |
| [`LINK_RANDOMIZE_SEED`](source-configuration-options.html#option_cmake_link_randomize_seed) | LINK 的种子值\_随机选项 | `mysql` |  |  |
| [`MAX_INDEXES`](source-configuration-options.html#option_cmake_max_indexes) | 每个表的最大索引 | `64` |  |  |
| [`MEMCACHED_HOME`](source-configuration-options.html#option_cmake_memcached_home) | 内存缓存路径 | `[没有]` |  | 8.0.23 |
| [`MUTEX_TYPE`](source-configuration-options.html#option_cmake_mutex_type) | InnoDB 互斥类型 | `事件` |  |  |
| [`MYSQLX_TCP_PORT`](source-configuration-options.html#option_cmake_mysqlx_tcp_port) | X Plugin 使用的 TCP/IP 端口号 | `33060` |  |  |
| [`MYSQLX_UNIX_ADDR`](source-configuration-options.html#option_cmake_mysqlx_unix_addr) | X Plugin 使用的 Unix 套接字文件 | `/tmp/mysqlx.sock` |  |  |
| [`MYSQL_DATADIR`](source-configuration-options.html#option_cmake_mysql_datadir) | 数据目录 |  |  |  |
| [`MYSQL_MAINTAINER_MODE`](source-configuration-options.html#option_cmake_mysql_maintainer_mode) | 是否启用 MySQL 维护者专用开发环境 | `离开` |  |  |
| [`MYSQL_PROJECT_NAME`](source-configuration-options.html#option_cmake_mysql_project_name) | Windows/macOS 项目名称 | `MySQL` |  |  |
| [`MYSQL_TCP_PORT`](source-configuration-options.html#option_cmake_mysql_tcp_port) | TCP/IP 端口号 | `3306` |  |  |
| [`MYSQL_UNIX_ADDR`](source-configuration-options.html#option_cmake_mysql_unix_addr) | Unix 套接字文件 | `/tmp/mysql.sock` |  |  |
| [`NDB_UTILS_LINK_DYNAMIC`](source-configuration-options.html#option_cmake_ndb_utils_link_dynamic) | 导致 NDB 工具动态链接到 ndbclient |  | 8.0.22 |  |
| [`ODBC_INCLUDES`](source-configuration-options.html#option_cmake_odbc_includes) | ODBC 包括目录 |  |  |  |
| [`ODBC_LIB_DIR`](source-configuration-options.html#option_cmake_odbc_lib_dir) | ODBC 库目录 |  |  |  |
| [`OPTIMIZER_TRACE`](source-configuration-options.html#option_cmake_optimizer_trace) | 是否支持优化器跟踪 |  |  |  |
| [`REPRODUCIBLE_BUILD`](source-configuration-options.html#option_cmake_reproducible_build) | 特别注意创建独立于构建位置和时间的构建结果 |  |  |  |
| [`SYSCONFDIR`](source-configuration-options.html#option_cmake_sysconfdir) | 选项文件目录 |  |  |  |
| [`SYSTEMD_PID_DIR`](source-configuration-options.html#option_cmake_systemd_pid_dir) | systemd 下 PID 文件的目录 | `/var/运行/mysqld` |  |  |
| [`SYSTEMD_SERVICE_NAME`](source-configuration-options.html#option_cmake_systemd_service_name) | systemd 下 MySQL 服务的名称 | `mysqld` |  |  |
| [`TMPDIR`](source-configuration-options.html#option_cmake_tmpdir) | tmpdir 默认值 |  |  |  |
| [`USE_LD_GOLD`](source-configuration-options.html#option_cmake_use_ld_gold) | 是否使用 GNU 黄金链接器 | `在` |  |  |
| [`USE_LD_LLD`](source-configuration-options.html#option_cmake_use_ld_lld) | 是否使用 llvm lld 链接器 | `在` | 8.0.16 |  |
| [`WIN_DEBUG_NO_INLINE`](source-configuration-options.html#option_cmake_win_debug_no_inline) | 是否禁用函数内联 | `离开` |  |  |
| [`WITHOUT_xxx_STORAGE_ENGINE`](source-configuration-options.html#option_cmake_storage_engine_options) | 从构建中排除存储引擎 xxx |  |  |  |
| [`WITH_ANT`](source-configuration-options.html#option_cmake_with_ant) | 用于构建 GCS Java 包装器的 Ant 路径 |  |  |  |
| [`WITH_ASAN`](source-configuration-options.html#option_cmake_with_asan) | 启用 AddressSanitizer | `离开` |  |  |
| [`WITH_ASAN_SCOPE`](source-configuration-options.html#option_cmake_with_asan_scope) | 启用 AddressSanitizer -fsanitize-address-use-after-scope Clang 标志 | `离开` |  |  |
| [`WITH_AUTHENTICATION_CLIENT_PLUGINS`](source-configuration-options.html#option_cmake_with_authentication_client_plugins) | 如果构建了任何相应的服务器身份验证插件，则自动启用 |  | 8.0.26 |  |
| [`WITH_AUTHENTICATION_LDAP`](source-configuration-options.html#option_cmake_with_authentication_ldap) | LDAP认证插件无法构建是否报错 | `离开` |  |  |
| [`WITH_AUTHENTICATION_PAM`](source-configuration-options.html#option_cmake_with_authentication_pam) | 构建 PAM 身份验证插件 | `离开` |  |  |
| [`WITH_AWS_SDK`](source-configuration-options.html#option_cmake_with_aws_sdk) | Amazon Web Services 软件开发工具包的位置 |  |  |  |
| [`WITH_BOOST`](source-configuration-options.html#option_cmake_with_boost) | Boost 库源的位置 |  |  |  |
| [`WITH_BUNDLED_LIBEVENT`](source-configuration-options.html#option_cmake_with_bundled_libevent) | 构建 ndbmemcache 时使用捆绑的 libevent | `在` |  | 8.0.23 |
| [`WITH_BUNDLED_MEMCACHED`](source-configuration-options.html#option_cmake_with_bundled_memcached) | 构建 ndbmemcache 时使用捆绑的 memcached | `在` |  | 8.0.23 |
| [`WITH_CLASSPATH`](source-configuration-options.html#option_cmake_with_classpath) | 构建 MySQL Cluster Connector for Java 时使用的类路径。默认为空字符串。 | `` |  |  |
| [`WITH_CLIENT_PROTOCOL_TRACING`](source-configuration-options.html#option_cmake_with_client_protocol_tracing) | 构建客户端协议跟踪框架 | `在` |  |  |
| [`WITH_CURL`](source-configuration-options.html#option_cmake_with_curl) | curl库的位置 |  |  |  |
| [`WITH_DEBUG`](source-configuration-options.html#option_cmake_with_debug) | 是否包含调试支持 | `离开` |  |  |
| [`WITH_DEFAULT_COMPILER_OPTIONS`](source-configuration-options.html#option_cmake_with_default_compiler_options) | 是否使用默认编译器选项 | `在` |  |  |
| [`WITH_DEFAULT_FEATURE_SET`](source-configuration-options.html#option_cmake_with_default_feature_set) | 是否使用默认功能集 | `在` |  | 8.0.22 |
| [`WITH_EDITLINE`](source-configuration-options.html#option_cmake_with_editline) | 使用哪个 libedit/editline 库 | `捆绑` |  |  |
| [`WITH_ERROR_INSERT`](source-configuration-options.html#option_cmake_with_error_insert) | 在 NDB 存储引擎中启用错误注入。不应用于构建用于生产的二进制文件。 | `离开` |  |  |
| [`WITH_FIDO`](source-configuration-options.html#option_cmake_with_fido) | FIDO 库支持的类型 | `捆绑` | 8.0.27 |  |
| [`WITH_GMOCK`](source-configuration-options.html#option_cmake_with_gmock) | googlemock 分发路径 |  |  | 8.0.26 |
| [`WITH_ICU`](source-configuration-options.html#option_cmake_with_icu) | ICU支持类型 | `捆绑` |  |  |
| [`WITH_INNODB_EXTRA_DEBUG`](source-configuration-options.html#option_cmake_with_innodb_extra_debug) | 是否包括对 InnoDB 的额外调试支持。 | `离开` |  |  |
| [`WITH_INNODB_MEMCACHED`](source-configuration-options.html#option_cmake_with_innodb_memcached) | 是否生成 memcached 共享库。 | `离开` |  |  |
| [`WITH_JEMALLOC`](source-configuration-options.html#option_cmake_with_jemalloc) | 是否与 -ljemalloc 链接 | `离开` | 8.0.16 |  |
| [`WITH_KEYRING_TEST`](source-configuration-options.html#option_cmake_with_keyring_test) | 构建密钥环测试程序 | `离开` |  |  |
| [`WITH_LIBEVENT`](source-configuration-options.html#option_cmake_with_libevent) | 使用哪个 libevent 库 | `捆绑` |  |  |
| [`WITH_LIBWRAP`](source-configuration-options.html#option_cmake_with_libwrap) | 是否包含 libwrap（TCP 包装器）支持 | `离开` |  |  |
| [`WITH_LOCK_ORDER`](source-configuration-options.html#option_cmake_with_lock_order) | 是否开启LOCK\_订购工具 | `离开` | 8.0.17 |  |
| [`WITH_LSAN`](source-configuration-options.html#option_cmake_with_lsan) | 是否运行 LeakSanitizer，不带 AddressSanitizer | `离开` | 8.0.16 |  |
| [`WITH_LTO`](source-configuration-options.html#option_cmake_with_lto) | 启用链接时优化器 | `离开` | 8.0.13 |  |
| [`WITH_LZ4`](source-configuration-options.html#option_cmake_with_lz4) | LZ4 库支持的类型 | `捆绑` |  |  |
| [`WITH_LZMA`](source-configuration-options.html#option_cmake_with_lzma) | LZMA 库支持的类型 | `捆绑` |  | 8.0.16 |
| [`WITH_MECAB`](source-configuration-options.html#option_cmake_with_mecab) | 编译 MeCab |  |  |  |
| [`WITH_MSAN`](source-configuration-options.html#option_cmake_with_msan) | 启用 MemorySanitizer | `离开` |  |  |
| [`WITH_MSCRT_DEBUG`](source-configuration-options.html#option_cmake_with_mscrt_debug) | 启用 Visual Studio CRT 内存泄漏跟踪 | `离开` |  |  |
| [`WITH_MYSQLX`](source-configuration-options.html#option_cmake_with_mysqlx) | 是否禁用 X 协议 | `在` |  |  |
| [`WITH_NDBAPI_EXAMPLES`](source-configuration-options.html#option_cmake_with_ndbapi_examples) | 构建 API 示例程序 | `离开` |  |  |
| [`WITH_NDBCLUSTER`](source-configuration-options.html#option_cmake_with_ndbcluster) | 构建 NDB 存储引擎；WITH的别名\_NDBCLUSTER\_贮存\_引擎 | `在` |  |  |
| [`WITH_NDBCLUSTER_STORAGE_ENGINE`](source-configuration-options.html#option_cmake_with_ndbcluster_storage_engine) | 构建 NDB 存储引擎 | `在` |  |  |
| [`WITH_NDBMTD`](source-configuration-options.html#option_cmake_with_ndbmtd) | 构建多线程数据节点。 | `在` |  |  |
| [`WITH_NDB_DEBUG`](source-configuration-options.html#option_cmake_with_ndb_debug) | 生成用于测试或故障排除的调试版本。 | `离开` |  |  |
| [`WITH_NDB_JAVA`](source-configuration-options.html#option_cmake_with_ndb_java) | 启用 Java 和 ClusterJ 支持的构建。默认启用。仅在 MySQL 集群中支持。 | `在` |  |  |
| [`WITH_NDB_PORT`](source-configuration-options.html#option_cmake_with_ndb_port) | 使用此选项构建的管理服务器使用的默认端口。如果未使用此选项构建它，则管理服务器的默认端口为 1186。 | `[没有]` |  |  |
| [`WITH_NDB_TEST`](source-configuration-options.html#option_cmake_with_ndb_test) | 包括 NDB API 测试程序。 | `离开` |  |  |
| [`WITH_NUMA`](source-configuration-options.html#option_cmake_with_numa) | 设置 NUMA 内存分配策略 |  |  |  |
| [`WITH_PACKAGE_FLAGS`](source-configuration-options.html#option_cmake_with_package_flags) | 对于通常用于 RPM/DEB 包的标志，是否将它们添加到这些平台上的独立构建中 |  | 8.0.26 |  |
| [`WITH_PLUGIN_NDBCLUSTER`](source-configuration-options.html#option_cmake_with_plugin_ndbcluster) | WITH的别名\_NDBCLUSTER |  | 8.0.13 |  |
| [`WITH_PROTOBUF`](source-configuration-options.html#option_cmake_with_protobuf) | 使用哪个 Protocol Buffers 包 | `捆绑` |  |  |
| [`WITH_RAPID`](source-configuration-options.html#option_cmake_with_rapid) | 是否构建快速开发周期插件 | `在` |  |  |
| [`WITH_RAPIDJSON`](source-configuration-options.html#option_cmake_with_rapidjson) | RapidJSON 支持的类型 | `捆绑` | 8.0.13 |  |
| [`WITH_RE2`](source-configuration-options.html#option_cmake_with_re2) | RE2 库支持的类型 | `捆绑` |  | 8.0.18 |
| [`WITH_ROUTER`](source-configuration-options.html#option_cmake_with_router) | 是否建 MySQL Router | `在` | 8.0.16 |  |
| [`WITH_SSL`](source-configuration-options.html#option_cmake_with_ssl) | SSL 支持的类型 | `系统` |  |  |
| [`WITH_SYSTEMD`](source-configuration-options.html#option_cmake_with_systemd) | 启用 systemd 支持文件的安装 | `离开` |  |  |
| [`WITH_SYSTEMD_DEBUG`](source-configuration-options.html#option_cmake_with_systemd_debug) | 启用额外的 systemd 调试信息 | `离开` | 8.0.22 |  |
| [`WITH_SYSTEM_LIBS`](source-configuration-options.html#option_cmake_with_system_libs) | 设置未明确设置的库选项的系统值 | `离开` |  |  |
| [`WITH_TCMALLOC`](source-configuration-options.html#option_cmake_with_tcmalloc) | 是否与 -ltcmalloc 链接 | `离开` | 8.0.22 |  |
| [`WITH_TEST_TRACE_PLUGIN`](source-configuration-options.html#option_cmake_with_test_trace_plugin) | 构建测试协议跟踪插件 | `离开` |  |  |
| [`WITH_TSAN`](source-configuration-options.html#option_cmake_with_tsan) | 启用 ThreadSanitizer | `离开` |  |  |
| [`WITH_UBSAN`](source-configuration-options.html#option_cmake_with_ubsan) | 启用未定义的行为清理程序 | `离开` |  |  |
| [`WITH_UNIT_TESTS`](source-configuration-options.html#option_cmake_with_unit_tests) | 使用单元测试编译 MySQL | `在` |  |  |
| [`WITH_UNIXODBC`](source-configuration-options.html#option_cmake_with_unixodbc) | 启用 unixODBC 支持 | `离开` |  |  |
| [`WITH_VALGRIND`](source-configuration-options.html#option_cmake_with_valgrind) | 是否在 Valgrind 头文件中编译 | `离开` |  |  |
| [`WITH_WIN_JEMALLOC`](source-configuration-options.html#option_cmake_with_win_jemalloc) | 包含 jemalloc.dll 的目录的路径 |  | 8.0.29 |  |
| [`WITH_ZLIB`](source-configuration-options.html#option_cmake_with_zlib) | zlib 支持的类型 | `捆绑` |  |  |
| [`WITH_ZSTD`](source-configuration-options.html#option_cmake_with_zstd) | zstd 支持的类型 | `捆绑` | 8.0.18 |  |
| [`WITH_xxx_STORAGE_ENGINE`](source-configuration-options.html#option_cmake_storage_engine_options) | 将存储引擎 xxx 静态编译到服务器中 |  |  |  |

#### 常规选项

-   [](<>) `-DBUILD_CONFIG=mysql_release`

    [](<>)[](<>)

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

-   [](<>) `-DBUNDLE_RUNTIME_LIBRARIES=*`布尔`*`

    [](<>)[](<>)

    是否将运行时库与 Windows 的服务器 MSI 和 Zip 包捆绑在一起。

-   [](<>) `-DCMAKE_BUILD_TYPE=*`类型`*`

    [](<>)[](<>)

    要生成的构建类型：

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

    -   `发布`：启用优化但忽略调试信息以减小构建大小。此构建类型是在 MySQL 8.0.13 中添加的。

    -   `调试`：禁用优化并生成调试信息。如果[`WITH_DEBUG`](source-configuration-options.html#option_cmake_with_debug)选项已启用。那是，[`-DWITH_DEBUG=1`](source-configuration-options.html#option_cmake_with_debug)具有相同的效果[`-DCMAKE_BUILD_TYPE=调试`](source-configuration-options.html#option_cmake_cmake_build_type).

-   [](<>) `-DCPACK_MONOLITHIC_INSTALL=*`布尔`*`

    [](<>)[](<>)

    此选项影响是否**制作包装**操作会产生多个安装包文件或单个文件。如果禁用，该操作会生成多个安装包文件，如果您只想安装完整 MySQL 安装的子集，这可能很有用。如果启用，它会生成一个用于安装所有内容的文件。

-   [](<>) `-DFORCE_INSOURCE_BUILD=*`布尔`*`

    [](<>)[](<>)

    定义是否强制进行源内构建。建议使用源外构建，因为它们允许来自同一源的多个构建，并且可以通过删除构建目录来快速执行清理。要强制进行源内构建，请调用**制作**和[`-DFORCE_INSOURCE_BUILD=ON`](source-configuration-options.html#option_cmake_force_insource_build).

#### 安装布局选项

这[`CMAKE_INSTALL_PREFIX`](source-configuration-options.html#option_cmake_cmake_install_prefix)选项表示基本安装目录。其他带有表单名称的选项`安装_*`xxx`*`表示组件位置是相对于前缀解释的，它们的值是相对路径名。它们的值不应包含前缀。

-   [](<>) `-DCMAKE_INSTALL_PREFIX=*`目录名`*`

    [](<>)[](<>)

    安装基目录。

    该值可以在服务器启动时使用[`--basedir`](server-system-variables.html#sysvar_basedir)选项。

-   [](<>) `-DINSTALL_BINDIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装用户程序。

-   [](<>) `-DINSTALL_DOCDIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装文档。

-   [](<>) `-DINSTALL_DOCREADMEDIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装`自述文件`文件。

-   [](<>) `-DINSTALL_INCLUDEDIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装头文件。

-   [](<>) `-DINSTALL_INFODIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装信息文件。

-   [](<>) `-DINSTALL_LAYOUT=*`姓名`*`

    [](<>)[](<>)

    选择预定义的安装布局：

    -   `独立的`: 与使用的布局相同`.tar.gz`和`。压缩`包。这是默认设置。

    -   `转速`: 类似于 RPM 包的布局。

    -   `SVR4`: Solaris 包布局。

    -   `开发银行`: DEB 包布局（实验性）。

        您可以选择预定义的布局，但可以通过指定其他选项来修改各个组件的安装位置。例如：

    ```
    cmake . -DINSTALL_LAYOUT=SVR4 -DMYSQL_DATADIR=/var/mysql/data
    ```

    这[`INSTALL_LAYOUT`](source-configuration-options.html#option_cmake_install_layout)value 确定的默认值[`secure_file_priv`](server-system-variables.html#sysvar_secure_file_priv),[`keyring_encrypted_file_data`](keyring-system-variables.html#sysvar_keyring_encrypted_file_data)， 和[`密钥环文件数据`](keyring-system-variables.html#sysvar_keyring_file_data)系统变量。请参阅这些变量的描述[第 5.1.8 节，“服务器系统变量”](server-system-variables.html)， 和[第 6.4.4.18 节，“密钥环系统变量”](keyring-system-variables.html).

-   [](<>) `-DINSTALL_LIBDIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装库文件。

-   [](<>) `-DINSTALL_MANDIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装手册页。

-   [](<>) `-DINSTALL_MYSQLKEYRINGDIR=*`目录路径`*`

    [](<>)[](<>)

    用作目录位置的默认目录`密钥环文件`插件数据文件。默认值是平台特定的，取决于[`INSTALL_LAYOUT`](source-configuration-options.html#option_cmake_install_layout) **制作**选项;见描述[`密钥环文件数据`](keyring-system-variables.html#sysvar_keyring_file_data)系统变量在[第 5.1.8 节，“服务器系统变量”](server-system-variables.html).

-   [](<>) `-DINSTALL_MYSQLSHAREDIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装共享数据文件。

-   [](<>) `-DINSTALL_MYSQLTESTDIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装`mysql测试`目录。要禁止安装此目录，请将选项显式设置为空值 ([`-DINSTALL_MYSQLTESTDIR=`](source-configuration-options.html#option_cmake_install_mysqltestdir)）。

-   [](<>) `-DINSTALL_PKGCONFIGDIR=*`目录名`*`

    [](<>)[](<>)

    安装目录`mysql客户端.pc`文件供使用**包配置**.默认值为`INSTALL_LIBDIR/pkgconfig`， 除非[`INSTALL_LIBDIR`](source-configuration-options.html#option_cmake_install_libdir)以。。结束`/mysql`，在这种情况下，首先将其删除。

-   [](<>) `-DINSTALL_PLUGINDIR=*`目录名`*`

    [](<>)[](<>)

    插件目录的位置。

    该值可以在服务器启动时使用[`--plugin_dir`](server-system-variables.html#sysvar_plugin_dir)选项。

-   [](<>) `-DINSTALL_PRIV_LIBDIR=*`目录名`*`

    [](<>)[](<>)

    动态库目录的位置。

    默认位置：RPM =`/usr/lib64/mysql/private/`, DEB =`/usr/lib/mysql/私有/`, 和焦油 =`库/私人/`.

    此选项是在 MySQL 8.0.18 中添加的。

    对于 Protobuf：因为这是一个私有位置，加载程序（例如 Linux 上的 ld-linux.so）可能找不到`libprotobuf.so`没有帮助的文件。引导装载机，`路径`有价值*$ORIGIN/../$INSTALL\_私人信息\_LIBDIR*被添加到 mysqld 和 mysqlxtest。这适用于大多数情况，但在使用[资源组](resource-groups.html)特征，*mysqld*是*集水*然后加载器忽略`路径`其中包含`$起源`.为了克服这个问题，在 mysqld 的 DEB 和 RPM 变体中设置了目录的显式完整路径，因为目标目的地是已知的。对于 tarball 安装，使用类似的工具修补 mysqld**补丁**是必须的。

-   [](<>) `-DINSTALL_SBINDIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装[**mysqld**](mysqld.html)服务器。

-   [](<>) `-DINSTALL_SECURE_FILE_PRIVDIR=*`目录名`*`

    [](<>)[](<>)

    的默认值[`secure_file_priv`](server-system-variables.html#sysvar_secure_file_priv)系统变量。默认值是平台特定的，取决于[`INSTALL_LAYOUT`](source-configuration-options.html#option_cmake_install_layout) **制作**选项;见描述[`secure_file_priv`](server-system-variables.html#sysvar_secure_file_priv)系统变量在[第 5.1.8 节，“服务器系统变量”](server-system-variables.html).

-   [](<>) `-DINSTALL_SHAREDIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装`aclocal/mysql.m4`.

-   [](<>) `-DINSTALL_STATIC_LIBRARIES=*`布尔`*`

    [](<>)[](<>)

    是否安装静态库。默认是`在`.如果设置为`离开`，这些库没有安装：`libmysqlclient.a`,`libmysqlservices.a`.

-   [](<>) `-DINSTALL_SUPPORTFILESDIR=*`目录名`*`

    [](<>)[](<>)

    在哪里安装额外的支持文件。

-   [](<>) `-DLINK_RANDOMIZE=*`布尔`*`

    [](<>)[](<>)

    是否随机化符号中的顺序[**mysqld**](mysqld.html)二进制。默认是`离开`.仅应出于调试目的启用此选项。

-   [](<>) `-DLINK_RANDOMIZE_SEED=*`值`*`

    [](<>)[](<>)

    种子价值[`LINK_RANDOMIZE`](source-configuration-options.html#option_cmake_link_randomize)选项。该值是一个字符串。默认是`mysql`，任意选择。

-   [](<>) `-DMYSQL_DATADIR=*`目录名`*`

    [](<>)[](<>)

    MySQL 数据目录的位置。

    该值可以在服务器启动时使用[`--数据目录`](server-system-variables.html#sysvar_datadir)选项。

-   [](<>) `-DODBC_INCLUDES=*`目录名`*`

    [](<>)[](<>)

    ODBC 的位置包括目录，并且可以在配置连接器/ODBC 时使用。

-   [](<>) `-DODBC_LIB_DIR=*`目录名`*`

    [](<>)[](<>)

    ODBC 库目录的位置，可在配置连接器/ODBC 时使用。

-   [](<>) `-DSYSCONFDIR=*`目录名`*`

    [](<>)[](<>)

    默认`我的.cnf`选项文件目录。

    此位置无法在服务器启动时设置，但您可以使用给定的选项文件启动服务器[`--默认文件=*`文件名`*`](option-file-options.html#option_general_defaults-file)选项，在哪里*`文件名`*是文件的完整路径名。

-   [](<>) `-DSYSTEMD_PID_DIR=*`目录名`*`

    [](<>)[](<>)[](<>)

    当 MySQL 由 systemd 管理时，创建 PID 文件的目录的名称。默认是`/var/运行/mysqld`;这可能会根据[`INSTALL_LAYOUT`](source-configuration-options.html#option_cmake_install_layout)价值。

    此选项被忽略，除非[`WITH_SYSTEMD`](source-configuration-options.html#option_cmake_with_systemd)已启用。

-   [](<>) `-DSYSTEMD_SERVICE_NAME=*`姓名`*`

    [](<>)[](<>)[](<>)

    当 MySQL 由 systemd 管理时使用的 MySQL 服务的名称。默认是`mysqld`;这可能会根据[`INSTALL_LAYOUT`](source-configuration-options.html#option_cmake_install_layout)价值。

    此选项被忽略，除非[`WITH_SYSTEMD`](source-configuration-options.html#option_cmake_with_systemd)已启用。

-   [](<>) `-DTMPDIR=*`目录名`*`

    [](<>)[](<>)

    用于的默认位置[`临时目录`](server-system-variables.html#sysvar_tmpdir)系统变量。如果未指定，则默认值为`P_tmpdir`在`<stdio.h>`.

#### 存储引擎选项

存储引擎是作为插件构建的。您可以将插件构建为静态模块（编译到服务器中）或动态模块（构建为动态库，必须使用[`安装插件`](install-plugin.html)声明或[`--插件加载`](server-options.html#option_mysqld_plugin-load)选项才可以使用）。某些插件可能不支持静态或动态构建。

这[`InnoDB`](innodb-storage-engine.html),[`MyISAM`](myisam-storage-engine.html),[`合并`](merge-storage-engine.html),[`记忆`](memory-storage-engine.html)， 和[`CSV`](csv-storage-engine.html)引擎是强制性的（总是编译到服务器中）并且不需要显式安装。

要将存储引擎静态编译到服务器中，请使用`-DWITH_*`引擎`*_STORAGE_ENGINE=1`.一些允许的*`引擎`*值是`档案`,`黑洞`,`例子`,`联邦`， 和`新开发银行`要么`NDBCLUSTER`([`新开发银行`](mysql-cluster.html)支持）。例子：

```
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
```

笔记

如果没有 Performance Schema 支持，就无法编译。如果希望在没有特定类型的检测的情况下进行编译，可以通过以下方式完成**制作**选项：

```
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`选项。

要从构建中排除存储引擎，请使用`-DWITH_*`引擎`*_STORAGE_ENGINE=0`.例子：

```
-DWITH_ARCHIVE_STORAGE_ENGINE=0
-DWITH_EXAMPLE_STORAGE_ENGINE=0
-DWITH_FEDERATED_STORAGE_ENGINE=0
```

也可以使用从构建中排除存储引擎`-DWITHOUT_*`引擎`*_STORAGE_ENGINE=1`（但`-DWITH_*`引擎`*_STORAGE_ENGINE=0`是首选）。例子：

```
-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
```

如果两者都没有`-DWITH_*`引擎`*_STORAGE_ENGINE`也不`-DWITHOUT_*`引擎`*_STORAGE_ENGINE`为给定的存储引擎指定，引擎被构建为共享模块，或者如果它不能被构建为共享模块，则被排除在外。

#### 功能选项

-   [](<>) `-DADD_GDB_INDEX=*`布尔`*`

    [](<>)[](<>)

    此选项确定是否启用生成`.gdb_index`二进制文件中的部分，这使得在调试器中加载它们更快。默认情况下禁用该选项。**lld**链接器被使用，并且被禁用 如果链接器不是**lld**或 GNU**金子**用来。

    此选项是在 MySQL 8.0.18 中添加的。

-   [](<>) `-DCOMPILATION_COMMENT=*`细绳`*`

    [](<>)[](<>)

    关于编译环境的描述性注释。从 MySQL 8.0.14 开始，[**mysqld**](mysqld.html)用途[`COMPILATION_COMMENT_SERVER`](source-configuration-options.html#option_cmake_compilation_comment_server).其他程序继续使用[`COMPILATION_COMMENT`](source-configuration-options.html#option_cmake_compilation_comment).

-   [](<>) `-DCOMPRESS_DEBUG_SECTIONS=*`布尔`*`

    [](<>)[](<>)

    是否压缩二进制可执行文件的调试部分（仅限 Linux）。压缩可执行调试部分可以在构建过程中以额外的 CPU 时间为代价来节省空间。

    默认是`离开`.如果未明确设置此选项，但`COMPRESS_DEBUG_SECTIONS`环境变量已设置，该选项从该变量中获取其值。

    此选项是在 MySQL 8.0.22 中添加的。

-   [](<>) `-DCOMPILATION_COMMENT_SERVER=*`细绳`*`

    [](<>)[](<>)

    关于编译环境的描述性注释，供用户使用[**mysqld**](mysqld.html)（例如，设置[`版本评论`](server-system-variables.html#sysvar_version_comment)系统变量）。此选项是在 MySQL 8.0.14 中添加的。在 8.0.14 之前，服务器使用[`COMPILATION_COMMENT`](source-configuration-options.html#option_cmake_compilation_comment).

-   [](<>) `-DDEFAULT_CHARSET=*`字符集名称`*`

    [](<>)[](<>)

    服务器字符集。默认情况下，MySQL 使用`utf8mb4`字符集。

    *`字符集名称`*可能是其中之一`二进制`, `armcii8`, `ascii`, `大五`, `cp1250`, `cp1251`, `cp1256`, `cp1257`, `cp850`, `cp852`, `cp866`, `cp932`, `12月8日`, `eucjpms`, `欧克`, `国标2312`, `gbk`, `geostd8`, `希腊语`, `希伯来语`, `马力8`, `密钥bcs2`, `锦鲤8r`, `koi8u`, `拉丁语1`, `拉丁语2`, `拉丁语5`, `拉丁语7`, `麦克斯`, `宏观人`,`sjis`,`swe7`,`tis620`,`ucs2`,`乌吉斯`,`utf8`,`utf8mb4`,`utf16`,`utf16le`,`utf32`.允许的字符集列在`cmake/character_sets.cmake`文件作为值`CHARSETS_AVAILABLE`.

    该值可以在服务器启动时使用[`--character_set_server`](server-system-variables.html#sysvar_character_set_server)选项。

-   [](<>) `-DDEFAULT_COLLATION=*`collat​​ion_name`*`

    [](<>)[](<>)

    服务器排序规则。默认情况下，MySQL 使用`utf8mb4_0900_ai_ci`.使用[`显示整理`](show-collation.html)语句来确定每个字符集可以使用哪些排序规则。

    该值可以在服务器启动时使用[`--collat​​ion_server`](server-system-variables.html#sysvar_collation_server)选项。

-   [](<>) `-DDISABLE_PSI_COND=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 条件检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_FILE=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 文件检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_IDLE=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 空闲检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_MEMORY=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 内存检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_METADATA=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 元数据检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_MUTEX=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 互斥检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_RWLOCK=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema rwlock 检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_SOCKET=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 套接字检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_SP=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 存储的程序检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_STAGE=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 阶段检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_STATEMENT=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 语句检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_STATEMENT_DIGEST=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 语句\_消化仪器。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_TABLE=*`布尔`*`

    [](<>)[](<>)

    是否排除 Performance Schema 表检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_SHARED=*`布尔`*`

    [](<>)[](<>)

    是否禁用构建构建共享库和编译位置相关代码。默认是`离开`（编译与位置无关的代码）。

    此选项未使用，已在 MySQL 8.0.18 中删除。

-   [](<>) `-DDISABLE_PSI_PS=*`布尔`*`

    [](<>)[](<>)

    排除性能模式准备好的语句实例检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_THREAD=*`布尔`*`

    [](<>)[](<>)

    排除性能模式线程检测。默认是`离开`（包括）。

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

-   [](<>) `-DDISABLE_PSI_TRANSACTION=*`布尔`*`

    [](<>)[](<>)

    排除性能模式事务检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_DATA_LOCK=*`布尔`*`

    [](<>)[](<>)

    排除性能模式数据锁定检测。默认是`离开`（包括）。

-   [](<>) `-DDISABLE_PSI_ERROR=*`布尔`*`

    [](<>)[](<>)

    排除性能模式服务器错误检测。默认是`离开`（包括）。

-   [](<>) `-DDOWNLOAD_BOOST=*`布尔`*`

    [](<>)[](<>)

    是否下载 Boost 库。默认是`离开`.

    见[`WITH_BOOST`](source-configuration-options.html#option_cmake_with_boost)有关使用 Boost 的其他讨论的选项。

-   [](<>) `-DDOWNLOAD_BOOST_TIMEOUT=*`秒`*`

    [](<>)[](<>)

    下载 Boost 库的超时时间（以秒为单位）。默认值为 600 秒。

    见[`WITH_BOOST`](source-configuration-options.html#option_cmake_with_boost)有关使用 Boost 的其他讨论的选项。

-   [](<>) `-DENABLE_DOWNLOADS=*`布尔`*`

    [](<>)[](<>)[](<>)

    是否下载可选文件。例如，启用此选项后，**制作**下载测试套件用于运行单元测试或构建 GCS Java 包装器所需的 Ant 和 JUnit 的 Google Test 发行版。

    从 MySQL 8.0.26 开始，MySQL 源代码分发捆绑了 Google Test 源代码，用于运行基于 Google Test 的单元测试。因此，从那个版本开始，[`WITH_GMOCK`](source-configuration-options.html#option_cmake_with_gmock)和[`ENABLE_DOWNLOADS`](source-configuration-options.html#option_cmake_enable_downloads) **制作**选项被删除并在指定时被忽略。

-   [](<>) `-DENABLE_EXPERIMENTAL_SYSVARS=*`布尔`*`

    [](<>)[](<>)[](<>)

    是否开启实验`InnoDB`系统变量。实验系统变量适用于从事 MySQL 开发的人员，只能在开发或测试环境中使用，并且可能会在未来的 MySQL 版本中删除，恕不另行通知。有关实验系统变量的信息，请参阅`/storage/innobase/handler/ha_innodb.cc`在 MySQL 源代码树中。实验系统变量可以通过搜索“PLUGIN”来识别\_VAR\_实验”。

-   [](<>) `-DENABLE_GCOV=*`布尔`*`

    [](<>)[](<>)

    是否包括 gcov 支持（仅限 Linux）。

-   [](<>) `-DENABLE_GPROF=*`布尔`*`

    [](<>)[](<>)

    是否启用`gprof`（仅限优化的 Linux 版本）。

-   [](<>) `-DENABLED_LOCAL_INFILE=*`布尔`*`

    [](<>)[](<>)

    该选项控制编译的默认值`当地的`MySQL 客户端库的功能。因此，没有做出明确安排的客户有`当地的`功能禁用或启用根据[`ENABLED_LOCAL_INFILE`](source-configuration-options.html#option_cmake_enabled_local_infile)在 MySQL 构建时指定的设置。

    默认情况下，MySQL 二进制发行版中的客户端库是用[`ENABLED_LOCAL_INFILE`](source-configuration-options.html#option_cmake_enabled_local_infile)禁用。如果你从源代码编译 MySQL，配置它[`ENABLED_LOCAL_INFILE`](source-configuration-options.html#option_cmake_enabled_local_infile)根据没有明确安排的客户端是否应该有禁用或启用`当地的`分别禁用或启用功能。

    [`ENABLED_LOCAL_INFILE`](source-configuration-options.html#option_cmake_enabled_local_infile)控制客户端的默认值`当地的`能力。对于服务器，[`local_infile`](server-system-variables.html#sysvar_local_infile)系统变量控制服务器端`当地的`能力。明确导致服务器拒绝或允许[`本地加载数据`](load-data.html)语句（无论在构建时或运行时如何配置客户端程序和库），开始[**mysqld**](mysqld.html)和[`local_infile`](server-system-variables.html#sysvar_local_infile)分别禁用或启用。[`local_infile`](server-system-variables.html#sysvar_local_infile)也可以在运行时设置。看[第 6.1.6 节，“本地加载数据的安全注意事项”](load-data-local-security.html).

-   [](<>) `-DENABLED_PROFILING=*`布尔`*`

    [](<>)[](<>)

    是否启用查询分析代码（对于[`显示资料`](show-profile.html)和[`显示资料`](show-profiles.html)声明）。

-   [](<>) `-DFORCE_UNSUPPORTED_COMPILER=*`布尔`*`

    [](<>)[](<>)

    默认，**制作**检查支持的编译器的最低版本：Visual Studio 2015 (Windows)；GCC 4.8 或 Clang 3.4 (Linux)；Developer Studio 12.5（Solaris 服务器）；Developer Studio 12.4 或 GCC 4.8（Solaris 客户端库）；Clang 3.6 (macOS)、Clang 3.4 (FreeBSD)。要禁用此检查，请使用[`-DFORCE_UNSUPPORTED_COMPILER=ON`](source-configuration-options.html#option_cmake_force_unsupported_compiler).

-   [](<>) `-DFPROFILE_GENERATE=*`布尔`*`

    [](<>)[](<>)

    是否生成配置文件引导优化 (PGO) 数据。此选项可用于使用 GCC 试验 PGO。见`cmake/fprofile.cmake`MySQL 源代码分发中的文件以获取有关使用的信息[`FPROFILE_GENERATE`](source-configuration-options.html#option_cmake_fprofile_generate)和[`FPROFILE_USE`](source-configuration-options.html#option_cmake_fprofile_use).这些选项已经过 GCC 8 和 9 的测试。

    此选项是在 MySQL 8.0.19 中添加的。

-   [](<>) `-DFPROFILE_USE=*`布尔`*`

    [](<>)[](<>)

    是否使用配置文件引导优化 (PGO) 数据。此选项可用于使用 GCC 试验 PGO。见`cmake/fprofile.cmake`MySQL 源代码分发中的文件以获取有关使用的信息[`FPROFILE_GENERATE`](source-configuration-options.html#option_cmake_fprofile_generate)和[`FPROFILE_USE`](source-configuration-options.html#option_cmake_fprofile_use).这些选项已经过 GCC 8 和 9 的测试。

    启用[`FPROFILE_USE`](source-configuration-options.html#option_cmake_fprofile_use)也使[`WITH_LTO`](source-configuration-options.html#option_cmake_with_lto).

    此选项是在 MySQL 8.0.19 中添加的。

-   [](<>) `-DHAVE_PSI_MEMORY_INTERFACE=*`布尔`*`

    [](<>)[](<>)[](<>)

    是否为内存分配功能启用性能模式内存跟踪模块（`ut::对齐_*`姓名`*`库函数）用于过度对齐类型的动态存储。

-   [](<>) `-DIGNORE_AIO_CHECK=*`布尔`*`

    [](<>)[](<>)[](<>)

    如果[`-DBUILD_CONFIG=mysql_release`](source-configuration-options.html#option_cmake_build_config)选项在 Linux 上给出，`libaio`默认情况下，必须链接库。如果你没有`利巴约`或者不想安装，可以通过指定[`-数字检查=1`](source-configuration-options.html#option_cmake_ignore_aio_check).

-   [](<>) `-DMAX_索引=*`号码`*`

    [](<>)[](<>)

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

-   [](<>) `-DMYSQL_维护者_模式=*`布尔`*`

    [](<>)[](<>)

    是否启用特定于MySQL维护人员的开发环境。如果启用，此选项将导致编译器警告变为错误。

-   [](<>) `-DMUTEX_型=*`类型`*`

    [](<>)[](<>)

    所使用的互斥类型`InnoDB`.选项包括：

    -   `事件`：使用事件互斥体。这是默认值和原始值`InnoDB`互斥实现。

    -   `系统`：在UNIX系统上使用POSIX互斥。使用`临界截面`Windows上的对象（如果可用）。

    -   `futex`：使用Linux futexes代替条件变量来调度等待线程。

-   [](<>) `-DMYSQLX_TCP_端口=*`港口号`*`

    [](<>)[](<>)[](<>)[](<>)[](<>)

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

    可以在服务器启动时使用[`mysqlx_端口`](x-plugin-options-system-variables.html#sysvar_mysqlx_port)系统变量。

-   [](<>) `-DMYSQLX_UNIX_ADDR=*`文件名`*`

    [](<>)[](<>)

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

    可以在服务器启动时使用[`mysqlx_端口`](x-plugin-options-system-variables.html#sysvar_mysqlx_port)系统变量。

-   [](<>) `-DMYSQL_项目名称=*`名称`*`

    [](<>)[](<>)

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

-   [](<>) `-DMYSQL_TCP_端口=*`港口号`*`

    [](<>)[](<>)[](<>)[](<>)[](<>)

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

    可以在服务器启动时使用[`--港口`](server-options.html#option_mysqld_port)选项

-   [](<>) `-DMYSQL_UNIX_ADDR=*`文件名`*`

    [](<>)[](<>)

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

    可以在服务器启动时使用[`--插座`](server-options.html#option_mysqld_socket)选项

-   [](<>) `-DOPTIMIZER_跟踪=*`布尔`*`

    [](<>)[](<>)

    是否支持优化器跟踪。看见[MySQL内部：跟踪优化器](https://dev.mysql.com/doc/internals/en/optimizer-tracing.html).

-   [](<>) `-可生产的建筑=*`布尔`*`

    [](<>)[](<>)

    对于Linux系统上的构建，此选项控制是否额外注意创建独立于构建位置和时间的构建结果。

    这个选项是在MySQL 8.0.11中添加的。从MySQL 8.0.12开始，默认为`在…上`对于`RelWithDeInfo`建造。

-   [](<>) `-杜塞尔德乌金=*`布尔`*`

    [](<>)[](<>)

    **CMake**使构建过程与GNU链接**金**链接器（如果可用且未明确禁用）。要禁用此链接器的使用，请指定[`-DUSE_LD_GOLD=关闭`](source-configuration-options.html#option_cmake_use_ld_gold)选项

-   [](<>) `-杜塞尔德=*`布尔`*`

    [](<>)[](<>)

    **CMake**使生成过程与**llvm** **法学博士**用于Clang的链接器（如果可用且未明确禁用）。要禁用此链接器的使用，请指定[`-DUSE_LD_LLD=关闭`](source-configuration-options.html#option_cmake_use_ld_lld)选项

    这个选项是在MySQL 8.0.16中添加的。

-   [](<>) `-DWIN_DEBUG_NO_INLINE=*`布尔`*`

    [](<>)[](<>)

    是否在Windows上禁用函数内联。默认设置为关闭（内联已启用）。

-   [](<>) `-德维思·安特=*`路径名`*`

    [](<>)[](<>)

    将路径设置为Ant，这是构建GCS Java包装器时所需的。其工作方式与现有系统类似[`用_BOOST`](source-configuration-options.html#option_cmake_with_boost)CMake选项。设置[`带着_ANT`](source-configuration-options.html#option_cmake_with_ant)指向保存Ant tarball或已解压的存档文件的目录路径。什么时候[`带着_ANT`](source-configuration-options.html#option_cmake_with_ant)未设置，或使用特殊值设置`系统`，则构建假定为二进制**蚂蚁**存在于`$PATH`.

-   [](<>) `-德维思·阿桑=*`布尔`*`

    [](<>)[](<>)

    是否为支持AddressSanitizer的编译器启用它。默认设置为关闭。

-   [](<>) `-D带有ASAN_范围=*`布尔`*`

    [](<>)[](<>)

    是否启用地址消毒剂`-F在作用域后管理地址使用`范围检测后使用的叮当标志。默认设置为关闭。要使用此选项，`-德维思·阿桑`还必须启用。

-   [](<>) `-使用_认证_客户端_插件=*`布尔`*`

    [](<>)[](<>)

    如果构建了任何相应的服务器身份验证插件，则会自动启用此选项。因此，它的价值取决于其他因素**CMake**选项，不应显式设置。

    这个选项是在MySQL 8.0.26中添加的。

-   [](<>) `-通过LDAP进行身份验证=*`布尔`*`

    [](<>)[](<>)[](<>)

    如果无法生成LDAP身份验证插件，是否报告错误：

    -   如果禁用此选项（默认设置），则如果找到所需的头文件和库，则会生成LDAP插件。如果不是，**CMake**显示有关它的注释。

    -   如果启用此选项，则无法找到所需的头文件和库会导致**CMake**以产生错误，阻止生成服务器。

-   [](<>) `-通过身份验证=*`布尔`*`

    [](<>)[](<>)

    是否为包含此插件的源代码树构建PAM身份验证插件。（见[第6.4.1.5节，“PAM可插拔认证”](pam-pluggable-authentication.html)。如果指定了此选项，并且无法编译插件，则生成失败。

-   [](<>) `-DWITH_AWS_SDK=*`路径名`*`

    [](<>)[](<>)

    亚马逊网络服务软件开发工具包的位置。

-   [](<>) `-DWITH_BOOST=*`路径名`*`

    [](<>)[](<>)

    构建MySQL需要Boost库。这些**CMake**选项可以控制库源位置，以及是否自动下载：

    -   [`-DWITH_BOOST=*`路径名`*`](source-configuration-options.html#option_cmake_with_boost)指定Boost库目录位置。也可以通过设置`根`或`用_BOOST`环境变量。

        [`-DWITH_BOOST=系统`](source-configuration-options.html#option_cmake_with_boost)也被允许，并表明编译主机上的标准位置安装了正确版本的Boost。在本例中，使用的是已安装的Boost版本，而不是MySQL源发行版附带的任何版本。

    -   [`-DDOWNLOAD_BOOST=*`布尔`*`](source-configuration-options.html#option_cmake_download_boost)指定如果Boost源不在指定位置，是否下载该源。默认值是`关`.

    -   [`-DDOWNLOAD_BOOST_超时=*`秒`*`](source-configuration-options.html#option_cmake_download_boost_timeout)下载Boost库的超时（秒）。默认值为600秒。

        例如，如果您通常构建MySQL，将对象输出放置在`bld`在MySQL源代码树的子目录中，您可以使用Boost进行如下构建：

    ```
    mkdir bld
    cd bld
    cmake .. -DDOWNLOAD_BOOST=ON -DWITH_BOOST=$HOME/my_boost
    ```

    这将导致Boost下载到`我的!`主目录下的目录。如果所需的Boost版本已经存在，则不会进行下载。如果所需的Boost版本发生更改，则会下载更新的版本。

    如果Boost已经在本地安装，并且编译器可以自己找到Boost头文件，那么可能不需要指定前面的选项**CMake**选项。但是，如果MySQL所需的Boost版本发生更改，并且本地安装的版本尚未升级，则可能存在构建问题。使用**CMake**选项应该会给你一个成功的构建。

    使用上述允许Boost下载到指定位置的设置，当所需的Boost版本更改时，您需要删除`bld`文件夹，重新创建它，然后执行**cmake**再走一步。否则，新的Boost版本可能无法下载，编译可能会失败。

-   [](<>) `-DWITH_客户端_协议_跟踪=*`布尔`*`

    [](<>)[](<>)

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

    有关编写协议跟踪客户端插件的信息，请参阅[编写协议跟踪插件](https://dev.mysql.com/doc/extending-mysql/8.0/en/writing-protocol-trace-plugins.html).

    另见[`使用_TEST _TRACE _插件`](source-configuration-options.html#option_cmake_with_test_trace_plugin)选项

-   [](<>) `-德维思·库勒=*`卷曲型`*`

    [](<>)[](<>)

    地点**卷曲**图书馆*`卷曲型`*可以是`系统`（使用系统**卷曲**库）或指向**卷曲**图书馆

-   [](<>) `-带调试的数据=*`布尔`*`

    [](<>)[](<>)

    是否包含调试支持。

    通过调试支持配置MySQL，您可以使用[`--debug=“d，parser_debug”`](server-options.html#option_mysqld_debug)选项启动服务器时。这会导致用于处理SQL语句的Bison解析器将解析器跟踪转储到服务器的标准错误输出。通常，此输出会写入错误日志。

    同步服务器的调试检查`InnoDB`存储引擎定义在`大学调试`并且在使用中编译调试支持时可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug)选项在中编译调试支持时[`innodb_同步_调试`](innodb-parameters.html#sysvar_innodb_sync_debug)配置选项可用于启用或禁用`InnoDB`同步调试检查。

    有可能[`用_调试`](source-configuration-options.html#option_cmake_with_debug)还启用调试同步。该设备用于测试和调试。在中编译时，默认情况下在运行时禁用调试同步。要启用它，请启动[**mysqld**](mysqld.html)和[`--调试同步超时=*`N`*`](server-options.html#option_mysqld_debug-sync-timeout)选项，在哪里*`N`*超时值大于0。（默认值为0，这将禁用调试同步。）*`N`*成为单个同步点的默认超时。

    同步服务器的调试检查`InnoDB`使用中编译调试支持时，存储引擎可用[`用_调试`](source-configuration-options.html#option_cmake_with_debug)选项

    有关调试同步功能以及如何使用同步点的说明，请参阅[MySQL内部：测试同步](https://dev.mysql.com/doc/internals/en/test-synchronization.html).

-   [](<>) `-带有默认功能集的数据=*`布尔`*`

    [](<>)[](<>)

    是否使用来自`cmake/构建配置/功能集。cmake`.此选项已在MySQL 8.0.22中删除。

-   [](<>) `-DWITH_编辑行=*`价值`*`

    [](<>)[](<>)

    哪一个`libedit`/`编辑行`要使用的库。允许值为`捆绑`（默认）和`系统`.

-   [](<>) `-德维思·菲多=*`fido\_型`*`

    [](<>)[](<>)

    这个`身份验证`身份验证插件是使用FIDO库实现的（请参见[第6.4.1.11节，“FIDO可插拔认证”](fido-pluggable-authentication.html)).这个[`和你一起`](source-configuration-options.html#option_cmake_with_fido)选项指示FIDO支持的来源：

    -   `捆绑`：使用与发行版捆绑的FIDO库。这是默认设置。

    -   `系统`：使用系统FIDO库。

        这个选项是在MySQL 8.0.27中添加的。

-   [](<>) `-德维思·穆格莫克=*`路径名`*`

    [](<>)[](<>)

    googlemock发行版的路径，用于基于Google测试的单元测试。选项值是分发Zip文件的路径。或者，设置`与_GMOCK`将环境变量设置为路径名。也可以使用`-DENABLE_DOWNLOADS=1`因此**CMake**从GitHub下载发行版。

    如果您构建MySQL时没有基于Google测试的单元测试（通过配置wihout[`与_GMOCK`](source-configuration-options.html#option_cmake_with_gmock)), **CMake**显示一条指示如何下载的消息。

    从MySQL 8.0.26开始，MySQL源代码发行版捆绑了Google测试源代码，用于运行基于Google测试的单元测试。因此，从该版本开始[`与_GMOCK`](source-configuration-options.html#option_cmake_with_gmock)和[`启用_下载`](source-configuration-options.html#option_cmake_enable_downloads) **CMake**选项将被删除，如果指定，将被忽略。

-   [](<>) `-德维思尤重症监护病房={*`icu型`*|*`路径名`*}`

    [](<>)[](<>)

    MySQL使用国际Unicode组件（ICU）来支持正则表达式操作。这个`与重症监护病房`选项指示要包括的ICU支持类型或要使用的ICU安装的路径名。

    -   *`icu型`*可以是以下值之一：

        -   `捆绑`：使用发行版附带的ICU图书馆。这是默认设置，也是Windows唯一支持的选项。

        -   `系统`：使用系统ICU库。

    -   *`路径名`*要使用的ICU安装的路径名。这可能比使用*`icu型`*价值`系统`因为它可以防止CMake检测和使用系统上安装的旧版或不正确的ICU版本。（做同样事情的另一种允许方式是设置`与重症监护病房`到`系统`然后设定`CMAKE_前缀_路径`选择*`路径名`*.)

-   [](<>) `-使用INNODB进行额外调试=*`布尔`*`

    [](<>)[](<>)

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

    有可能`使用_INNODB_EXTRA_DEBUG`打开额外的InnoDB调试检查。此选项只能在以下情况下启用：[`用_调试`](source-configuration-options.html#option_cmake_with_debug)已启用。

-   [](<>) `-DWITH_INNODB_MEMCACHED=*`布尔`*`

    [](<>)[](<>)

    是否生成memcached共享库(`libmemcached。所以`和`innodb_引擎。所以`).

-   [](<>) `-德维思·杰马洛克=*`布尔`*`

    [](<>)[](<>)

    是否与`-勒耶马洛克`。如果启用，则为内置`malloc（）`, `calloc（）`, `realloc（）`和`免费的`例行程序被禁用。默认值是`关`.

    [`与_JEMALLOC`](source-configuration-options.html#option_cmake_with_jemalloc)和[`与_TCMALLOC`](source-configuration-options.html#option_cmake_with_tcmalloc)相互排斥。

    这个选项是在MySQL 8.0.16中添加的。

-   [](<>) `-德维思·温·杰马洛克=*`一串`*`

    [](<>)[](<>)

    在Windows上，传入包含`杰马洛克。动态链接库`启用jemalloc功能。构建系统复制`杰马洛克。动态链接库`到与相同的目录`mysqld。exe`和/或`mysqld调试。exe`并将其用于内存管理操作。如果需要，则使用标准存储功能`杰马洛克。动态链接库`未找到或未导出所需的函数。信息级日志消息记录是否找到并使用了jemalloc。

    此选项适用于Windows的官方MySQL二进制文件。

    这个选项是在MySQL 8.0.29中添加的。

-   [](<>) `-D带钥匙环测试=*`布尔`*`

    [](<>)[](<>)

    是否建立与测试相关的测试程序`密钥环文件`插件。默认值是`走开`测试文件源代码位于`插件/钥匙环/钥匙环测试`目录。

-   [](<>) `-德维思·利布事件=*`一串`*`

    [](<>)[](<>)

    哪个`自由人`要使用的库。允许值为`捆绑`（默认）和`系统`在MySQL 8.0.21之前，如果您指定`系统`，系统`libevent`如果存在，则使用库，否则会发生错误。在MySQL 8.0.21及更高版本中，如果`系统`是指定的，没有系统`libevent`可以找到库，但无论如何都会发生错误，并且`libevent`没有使用。

    这个`libevent`图书馆是`InnoDB`memcached、X插件和MySQL路由器。

-   [](<>) `-德维思·利布雷普=*`布尔`*`

    [](<>)[](<>)

    是否包括`libwrap`（TCP包装器）支持。

-   [](<>) `-带锁的=*`布尔`*`

    [](<>)[](<>)

    是否启用锁定\_订购工具。默认情况下，此选项被禁用，并且服务器构建不包含任何工具。如果启用了工具，则锁定\_订购工具可用，可按中所述使用[第5.9.3节，“锁\_订购工具“](lock-order-tool.html).

    笔记

    和[`带着锁`](source-configuration-options.html#option_cmake_with_lock_order)启用选项后，MySQL构建需要**弯曲**程序

    这个选项是在MySQL 8.0.17中添加的。

-   [](<>) `-德维思·厄尔桑=*`布尔`*`

    [](<>)[](<>)

    是否运行LeakSanitizer，不带AddressSanitizer。默认值是`关`.

    这个选项是在MySQL 8.0.16中添加的。

-   [](<>) `-德维思·阿尔托=*`布尔`*`

    [](<>)[](<>)

    如果编译器支持，是否启用链接时间优化器。默认值是`关`除非[`F文件的使用`](source-configuration-options.html#option_cmake_fprofile_use)已启用。

    这个选项是在MySQL 8.0.13中添加的。

-   [](<>) `-DWITH_LZ4=*`lz4\_型`*`

    [](<>)[](<>)

    这个[`用_LZ4`](source-configuration-options.html#option_cmake_with_lz4)选项指示错误的来源`兹利布`支持：

    -   `捆绑`：使用`lz4`图书馆与发行版捆绑在一起。这是默认设置。

    -   `系统`：使用系统`lz4`图书馆如果[`用_LZ4`](source-configuration-options.html#option_cmake_with_lz4)设置为该值时[**lz4\_减压**](lz4-decompress.html)公用事业还没有建成。在这种情况下，系统**lz4**可以改为使用命令。

-   [](<>) `-德维思·卢兹马=*`lzma\_型`*`

    [](<>)[](<>)

    要包含的LZMA库支持的类型。*`lzma_型`*可以是以下值之一：

    -   `捆绑`：使用发行版附带的LZMA库。这是默认设置。

    -   `系统`：使用系统LZMA库。

        这个选项在MySQL 8.0.16中被删除。

-   [](<>) `-DWITH_MECAB={disabled |系统|*`路径名`*}`

    [](<>)[](<>)

    使用此选项编译MeCab解析器。如果已将MeCab安装到其默认安装目录，请设置`-DWITH_MECAB=系统`这个`系统`该选项适用于使用本机软件包管理实用程序从源代码或二进制文件执行的MeCab安装。如果将MeCab安装到自定义安装目录，请指定MeCab安装的路径。例如`-DWITH_MECAB=/opt/mecab`.如果`系统`选项不起作用，指定MeCab安装路径在所有情况下都应该起作用。

    有关相关信息，请参阅[第12.10.9节，“MeCab全文解析器插件”](fulltext-search-mecab.html).

-   [](<>) `-德维思·穆桑=*`布尔`*`

    [](<>)[](<>)

    是否为支持MemorySanizer的编译器启用它。默认设置为关闭。

    要使此选项在启用时生效，所有链接到MySQL的库也必须在启用该选项的情况下编译。

-   [](<>) `-用MSCRT调试=*`布尔`*`

    [](<>)[](<>)

    是否启用Visual Studio CRT内存泄漏跟踪。默认值是`关`.

-   [](<>) `-DWITH_MYSQLX=*`布尔`*`

    [](<>)[](<>)

    是否使用对X插件的支持进行构建。违约`在…上`看见[第20章，*使用MySQL作为文档存储*](document-store.html).

-   [](<>) `-德维思·努马=*`布尔`*`

    [](<>)[](<>)

    显式设置NUMA内存分配策略。**CMake**设置默认值[`和努玛`](source-configuration-options.html#option_cmake_with_numa)基于当前平台是否具有`努马`支持对于不支持NUMA的平台，**CMake**表现如下：

    -   没有NUMA选项（正常情况下），**CMake**正常继续，仅产生以下警告：NUMA库丢失或所需版本不可用

    -   具有[`-DWITH_NUMA=ON`](source-configuration-options.html#option_cmake_with_numa), **CMake**由于以下错误而中止：NUMA库丢失或所需版本不可用

-   [](<>) `-带有包装标志的数据=*`布尔`*`

    [](<>)[](<>)

    对于通常用于RPM和Debian软件包的标志，是否将它们添加到这些平台上的独立构建中。默认值是`在…上`对于非debug构建。

    这个选项是在MySQL 8.0.26中添加的。

-   [](<>) `-德维思·普罗托布夫=*`protobuf\_型`*`

    [](<>)[](<>)

    使用哪个协议缓冲包。*`protobuf_型`*可以是以下值之一：

    -   `捆绑`：使用与分发捆绑在一起的软件包。这是默认设置。选择性地使用[`安装_PRIV_LIBDIR`](source-configuration-options.html#option_cmake_install_priv_libdir)修改动态Protobuf库目录。

    -   `系统`：使用系统上安装的软件包。

        其他值将被忽略，并返回到`捆绑`.

-   [](<>) `-德维思·拉皮德=*`布尔`*`

    [](<>)[](<>)

    是否构建快速开发周期插件。启用时，将显示一个`迅速的`目录是在包含这些插件的构建树中创建的。如果禁用，则不会`迅速的`目录是在构建树中创建的。默认值是`在…上`，除非`迅速的`目录将从源树中删除，在这种情况下，默认值将变为`关`.

-   [](<>) `-德维思·拉皮德松=*`rapidjson\_型`*`

    [](<>)[](<>)

    要包含的RapidJSON库支持的类型。*`rapidjson_型`*可以是以下值之一：

    -   `捆绑`：使用与发行版捆绑的RapidJSON库。这是默认设置。

    -   `系统`：使用系统RapidJSON库。需要1.1.0或更高版本。

        这个选项是在MySQL 8.0.13中添加的。

-   [](<>) `-德维思·雷2=*`re2\_型`*`

    [](<>)[](<>)

    要包含的RE2库支持的类型。*`re2_型`*可以是以下值之一：

    -   `捆绑`：使用与发行版捆绑的RE2库。这是默认设置。

    -   `系统`：使用系统RE2库。

        从MySQL 8.0.18开始，MySQL不再使用RE2库，此选项已被删除。

-   [](<>) `-DWITH_路由器=*`布尔`*`

    [](<>)[](<>)

    是否建立MySQL路由器。默认值是`在…上`.

    这个选项是在MySQL 8.0.16中添加的。

-   [](<>) `-DWITH_SSL={*`ssl\_类型`*`\|*`路径名`*}

    [](<>)[](<>)

    为了支持加密连接、随机数生成的熵以及其他与加密相关的操作，必须使用SSL库构建MySQL。此选项指定要使用的SSL库。

    -   *`ssl_类型`*可以是以下值之一：

        -   `系统`：使用系统OpenSSL库。这是默认设置。

            在macOS和Windows上，使用`系统`将MySQL配置为使用*`路径名`*指向手动安装的OpenSSL库。这是因为它们没有系统SSL库。在macOS上，*brew安装openssl*安装到`/usr/local/opt/openssl`因此`系统`我能找到它。在Windows上，它检查*%ProgramFiles%/OpenSSL*, *%ProgramFiles%/OpenSSL-Win32*, *%ProgramFiles%/OpenSSL-Win64*, *C:/OpenSSL*, *C:/OpenSSL-Win32*和*C:/OpenSSL-Win64*.

        -   `对`：这是`系统`.

    -   *`路径名`*要使用的OpenSSL安装的路径名。这可能比使用*`ssl_类型`*价值`系统`因为它可以防止CMake检测并使用系统上安装的较旧或不正确的OpenSSL版本。（做同样事情的另一种允许方式是设置`用_SSL`到`系统`然后设定`CMAKE_前缀_路径`选择*`路径名`*.)

        有关配置SSL库的更多信息，请参阅[第2.9.6节，“配置SSL库支持”](source-ssl-library-configuration.html).

-   [](<>) `-德维思·尤德=*`布尔`*`

    [](<>)[](<>)[](<>)

    是否启用systemd支持文件的安装。默认情况下，此选项处于禁用状态。启用后，将安装systemd支持文件，并安装脚本，如[**mysqld\_安全**](mysqld-safe.html)未安装System V初始化脚本。在systemd不可用的平台上，启用[`有系统的`](source-configuration-options.html#option_cmake_with_systemd)导致来自的错误**CMake**.

    有关使用systemd的更多信息，请参阅[第2.5.9节，“使用systemd管理MySQL服务器”](using-systemd.html)。该部分还包括有关指定先前在中指定的选项的信息`[mysqld_safe]`选项组。因为[**mysqld\_安全**](mysqld-safe.html)如果使用systemd时未安装，则必须以另一种方式指定此类选项。

-   [](<>) `-DWITH_SYSTEM_LIBS=*`布尔`*`

    [](<>)[](<>)

    此选项用作“雨伞”选项，用于设置`系统`以下任何一项的价值**CMake**未明确设置的选项：[`卷曲`](source-configuration-options.html#option_cmake_with_curl), [`用编辑行`](source-configuration-options.html#option_cmake_with_editline), [`和你一起`](source-configuration-options.html#option_cmake_with_fido)（笑声）[`带着_IC`](source-configuration-options.html#option_cmake_with_icu)（笑声）[`用Libu事件`](source-configuration-options.html#option_cmake_with_libevent)（笑声）[`用_LZ4`](source-configuration-options.html#option_cmake_with_lz4)（笑声）[`和卢兹玛`](source-configuration-options.html#option_cmake_with_lzma)（笑声）[`用PROTOBUF`](source-configuration-options.html#option_cmake_with_protobuf)（笑声）[`与_RE2`](source-configuration-options.html#option_cmake_with_re2)（笑声）[`用_SSL`](source-configuration-options.html#option_cmake_with_ssl)（笑声）[`与_ZLIB`](source-configuration-options.html#option_cmake_with_zlib)（笑声）[`用_ZSTD`](source-configuration-options.html#option_cmake_with_zstd).

-   [](<>) `-数据与系统调试=*`布尔`*`

    [](<>)[](<>)

    是否为使用systemd运行MySQL的平台生成额外的systemd调试信息。默认值是`走开`.

    这个选项是在MySQL 8.0.22中添加的。

-   [](<>) `-德维思·特马洛克=*`布尔`*`

    [](<>)[](<>)

    是否与`-ltcmalloc`。如果启用，则为内置`malloc（）`, `calloc（）`, `realloc（）`和`免费的`例行程序被禁用。默认值是`关`.

    [`与_TCMALLOC`](source-configuration-options.html#option_cmake_with_tcmalloc)和[`与_JEMALLOC`](source-configuration-options.html#option_cmake_with_jemalloc)相互排斥。

    这个选项是在MySQL 8.0.22中添加的。

-   [](<>) `-DWITH_TEST_TRACE_插件=*`布尔`*`

    [](<>)[](<>)

    是否构建测试协议跟踪客户端插件（请参阅[使用测试协议跟踪插件](https://dev.mysql.com/doc/extending-mysql/8.0/en/test-protocol-trace-plugin.html))。默认情况下，此选项处于禁用状态。启用此选项无效，除非[`使用_客户端_协议_跟踪`](source-configuration-options.html#option_cmake_with_client_protocol_tracing)选项已启用。如果MySQL配置为同时启用这两个选项，则`libmysqlclient`客户端库使用内置的测试协议跟踪插件构建，所有标准MySQL客户端都加载该插件。但是，即使启用了测试插件，默认情况下也没有效果。使用环境变量控制插件；看见[使用测试协议跟踪插件](https://dev.mysql.com/doc/extending-mysql/8.0/en/test-protocol-trace-plugin.html).

    笔记

    做*不*启用[`使用_TEST _TRACE _插件`](source-configuration-options.html#option_cmake_with_test_trace_plugin)选项，如果您想使用自己的协议跟踪插件，因为一次只能加载一个这样的插件，并且尝试加载第二个插件时会出错。如果您已经使用测试协议跟踪插件构建了MySQL，以查看其工作原理，那么在使用自己的插件之前，您必须在没有它的情况下重建MySQL。

    有关编写跟踪插件的信息，请参阅[编写协议跟踪插件](https://dev.mysql.com/doc/extending-mysql/8.0/en/writing-protocol-trace-plugins.html).

-   [](<>) `-德维思·曾=*`布尔`*`

    [](<>)[](<>)

    是否为支持ThreadSanitizer的编译器启用ThreadSanitizer。默认设置为关闭。

-   [](<>) `-德维思·乌布桑=*`布尔`*`

    [](<>)[](<>)

    是否为支持未定义行为净化程序的编译器启用该净化程序。默认设置为关闭。

-   [](<>) `-DWITH_单元测试={ON | OFF}`

    [](<>)[](<>)

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

-   [](<>) `-DWITH_UNIXODBC=*`1.`*`

    [](<>)[](<>)

    为连接器/ODBC启用unixODBC支持。

-   [](<>) `-德维思·瓦尔格林=*`布尔`*`

    [](<>)[](<>)

    是否在Valgrind头文件中编译，这将Valgrind API暴露给MySQL代码。默认值是`关`.

    要生成支持Valgrind的调试版本，[`-DWITH_VALGRIND=1`](source-configuration-options.html#option_cmake_with_valgrind)通常与[`-DWITH_DEBUG=1`](source-configuration-options.html#option_cmake_with_debug)看见[构建调试配置](https://dev.mysql.com/doc/internals/en/debug-configurations.html).

-   [](<>) `-德维思·乌兹利布=*`zlib\_型`*`

    [](<>)[](<>)

    有些功能要求服务器构建时支持压缩库，例如[`压缩（）`](encryption-functions.html#function_compress)和[`解压`](encryption-functions.html#function_uncompress)功能，以及客户机/服务器协议的压缩。这个[`与_ZLIB`](source-configuration-options.html#option_cmake_with_zlib)选项指示错误的来源`兹利布`支持：

    -   `捆绑`：使用`兹利布`图书馆与发行版捆绑在一起。这是默认设置。

    -   `系统`：使用系统`兹利布`图书馆如果[`与_ZLIB`](source-configuration-options.html#option_cmake_with_zlib)设置为该值时[**兹利布\_减压**](zlib-decompress.html)公用事业还没有建成。在这种情况下，系统**openssl zlib**可以改为使用命令。

-   [](<>) `-DWITH_ZSTD=*`zstd\_型`*`

    [](<>)[](<>)

    使用`zstd`算法（参见[第4.2.8节，“连接压缩控制”](connection-compression-control.html))要求服务器使用`zstd`图书馆支持。这个[`用_ZSTD`](source-configuration-options.html#option_cmake_with_zstd)选项指示错误的来源`zstd`支持：

    -   `捆绑`：使用`zstd`图书馆与发行版捆绑在一起。这是默认设置。

    -   `系统`：使用系统`zstd`图书馆

        这个选项是在MySQL 8.0.18中添加的。

#### 编译器标志

-   [](<>) `-DCMAKE_C_标志=”*`旗帜`*`"

    [](<>)[](<>)

    C编译器的标志。

-   [](<>) `-DCMAKE_CXX_标志=”*`旗帜`*`"

    [](<>)[](<>)

    C++编译器的标志。

-   [](<>) `-带有默认编译器选项的数据=*`布尔`*`

     [](<>)[](<>)

    是否使用来自`cmake/build_configurations/compiler_options。cmake`.

    笔记

    MySQL构建团队仔细选择并测试了所有优化标志。覆盖它们可能会导致意外的结果，风险自负。

    若要指定自己的C和C++编译器标志，对于不影响优化的标志，请使用[`CMAKE_C_旗帜`](source-configuration-options.html#option_cmake_cmake_c_flags)和[`CMAKE_CXX_标志`](source-configuration-options.html#option_cmake_cmake_cxx_flags)CMake选项。

    在提供自己的编译器标志时，可能需要指定[`CMAKE_BUILD_类型`](source-configuration-options.html#option_cmake_cmake_build_type)也

    例如，要在64位Linux机器上创建32位版本，请执行以下操作：


```
mkdir bld
cd bld
cmake .. -DCMAKE_C_FLAGS=-m32 \
  -DCMAKE_CXX_FLAGS=-m32 \
  -DCMAKE_BUILD_TYPE=RelWithDebInfo
```

如果设置了影响优化的标志(`-O*`数字`*`)，您必须设置`CMAKE_C_旗帜_*`建筑*类型`*`和/或'CMAKE_CXX\_标志**`建筑类型`*`选项，在哪里*`建筑类型`*对应于[`CMAKE_BUILD\_类型`]（source configuration options.html#option_cmake_cmake_build_type）值。为默认生成类型指定不同的优化(`RelWithDeInfo`)设定`CMAKE_C_FLAGS_RELWITHDEBINFO`和`CMAKE_CXX_FLAGS_RELWITHDEBINFO`选项。例如，在Linux上使用`-O3\`使用调试符号，执行以下操作：

```
cmake .. -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g" \
  -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g"
```

#### 用于编译NDB群集的CMake选项

以下选项用于构建支持NDB集群的MySQL 8.0源代码。

-   [](<>) `-DMEMU之家=*`目录名`*`

    [](<>)[](<>)

    使用安装在系统目录中的memcached（1.6版或更高版本）执行构建，该目录由*`目录名`*.此安装中用于生成的文件包括memcached二进制文件、头文件和库，以及`memu实用程序`库和头文件`引擎测试pp。H`.

    在构建时，必须取消设置此选项`ndbmemcache`使用绑定的memcached源([`与_捆绑_MEMCACHED`](source-configuration-options.html#option_cmake_with_bundled_memcached)选择权）；换句话说，默认情况下使用捆绑源）。

    而额外的**CMake**选项，例如SASL授权和提供`dtrace`编译时可以使用支持**memcached**从外部来源来看，这些选项目前没有为**memcached**与NDB集群捆绑的源。

-   [](<>) `-NDB_UTILS_LINK_DYNAMIC={ON | OFF}`

    [](<>)[](<>)

    控制NDB实用程序，例如[**ndb\_滴\_桌子**](mysql-cluster-programs-ndb-drop-table.html)都与`NDB客户`静态地(`关`)或者动态地(`在…上`); `关`（静态链接）是默认设置。通常在构建这些时使用静态链接，以避免`图书馆路`，或当多个版本的`NDB客户`已安装。此选项用于创建Docker图像，以及在目标环境受到精确控制的其他情况下，需要减小图像大小。

    添加到NDB 8.0.22中。

-   [](<>) `-DWITH_BUNDLED_LIBEVENT={ON | OFF}`

    [](<>)[](<>)

    使用`libevent`在使用创建NDB群集时包含在NDB群集源中`ndbmemcached`支持默认情况下启用。`关`导致系统`libevent`被用来代替。

-   [](<>) `-DWITH_BUNDLED_MEMCACHED={ON | OFF}`

    [](<>)[](<>)

    构建NDB集群源代码树中包含的memcached源代码，然后在构建源代码时使用生成的memcached服务器`ndbmemcache`发动机在这种情况下，**制作安装**放置**memcached**安装中的二进制文件`箱子`目录和`ndbmemcache`引擎共享库文件`ndb_引擎。所以`在装置中`解放党`目录

    默认情况下，此选项处于启用状态。

-   [](<>) `-DWITH_类路径=*`路径`*`

    [](<>)[](<>)

    设置用于构建NDB Cluster Connector for Java的类路径。默认值为空。如果发生以下情况，则忽略此选项：[`-DWITH_NDB_JAVA=OFF`](source-configuration-options.html#option_cmake_with_ndb_java)被使用了。

-   [](<>) `-DWITH_ERROR_INSERT={ON | OFF}`

    [](<>)[](<>)

    在中启用错误注入[`NDB`](mysql-cluster.html)内核仅用于测试；不用于构建生产二进制文件。默认值是`关`.

-   [](<>) `-DWITH_NDBAPI_EXAMPLES={ON | OFF}`

    [](<>)[](<>)

    在中构建API示例程序`存储/ndb/ndbapi示例/`.

-   [](<>) `-DWITH_NDBCLUSTER_STORAGE_ENGINE={ON | OFF}`

    [](<>)[](<>)

    这是的别名[`带_NDBCLUSTER`](source-configuration-options.html#option_cmake_with_ndbcluster).

-   [](<>) `-DWITH_NDBCLUSTER={ON | OFF}`

    [](<>)[](<>)

    构建和链接以支持[`NDB`](mysql-cluster.html) ([`NDBCLUSTER`](mysql-cluster.html))存储引擎[**mysqld**](mysqld.html).默认值为`在…上`.

-   [](<>) `-DWITH_NDBMTD={ON | OFF}`

    [](<>)[](<>)

    构建多线程数据节点可执行文件[**ndbmtd**](mysql-cluster-programs-ndbmtd.html).默认值为`在…上`.

-   [](<>) `-DWITH_NDB_DEBUG={ON | OFF}`

    [](<>)[](<>)

    启用生成NDB群集二进制文件的调试版本。默认情况下关闭。

-   [](<>) `-DWITH_NDB_JAVA={ON | OFF}`

    [](<>)[](<>)

    支持使用Java构建NDB集群，包括`ClusterJ`.

    默认情况下，此选项处于启用状态。如果不希望使用Java支持编译NDB集群，则必须通过指定`-DWITH_NDB_JAVA=OFF`跑步时**CMake**。否则，如果找不到Java，则生成的配置将失败。

-   [](<>) `-德维思港=*`港口城市`*`

    [](<>)[](<>)

    导致NDB群集管理服务器([**ndb\_管理节点**](mysql-cluster-programs-ndb-mgmd.html))就是为了使用这个*`港口城市`*默认情况下。如果此选项未设置，则生成的管理服务器会在默认情况下尝试使用端口1186。

-   [](<>) `-DWITH_NDB_TEST={ON | OFF}`

    [](<>)[](<>)

    如果启用，包括一组NDB API测试程序。默认设置为关闭。

-   [](<>) `-DWITH_PLUGIN_NDBCLUSTER={ON | OFF}`

    [](<>)[](<>)

    别名[`带_NDBCLUSTER`](source-configuration-options.html#option_cmake_with_ndbcluster).
