Documentation Home

2.9.7 MySQL 源配置选项

CMake程序提供了对如何配置 MySQL 源代码分发的大量控制 。通常,您使用 CMake命令行上的选项来执行此操作。有关CMake支持的选项的信息,请在顶级源目录中运行以下任一命令:

cmake . -LH
ccmake .

您还可以使用某些环境变量影响CMake 。请参阅 第 4.9 节,“环境变量”

对于布尔选项,该值可以指定为 1 或 ON启用该选项,或指定为 0 或 OFF禁用该选项。

许多选项配置可以在服务器启动时覆盖的编译时默认值。例如, 配置默认安装基本目录位置、TCP/IP 端口号和 Unix 套接字文件的 、 和 选项可以在服务器启动时使用CMAKE_INSTALL_PREFIXmysqld MYSQL_TCP_PORT和 选项 进行 更改。在适用的情况下,配置选项说明指示相应的mysqld 启动选项。 MYSQL_UNIX_ADDR--basedir--port--socket

以下部分提供了有关 CMake选项的更多信息。

CMake 选项参考

下表显示了可用的CMake 选项。在该Default列中, PREFIX代表 CMAKE_INSTALL_PREFIX选项的值,它指定安装基目录。此值用作多个安装子目录的父位置。

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

格式 描述 默认 介绍 删除
BUILD_CONFIG 使用与官方版本相同的构建选项
CMAKE_BUILD_TYPE 要生成的构建类型 RelWithDebInfo
CMAKE_CXX_FLAGS C++ 编译器的标志
CMAKE_C_FLAGS C 编译器的标志
CMAKE_INSTALL_PREFIX 安装基目录 /usr/local/mysql
COMPILATION_COMMENT 编译环境评论
CPACK_MONOLITHIC_INSTALL 打包构建是否产生单个文件 OFF
DEFAULT_CHARSET 默认服务器字符集 latin1
DEFAULT_COLLATION 默认服务器排序规则 latin1_swedish_ci
ENABLED_LOCAL_INFILE 是否为LOAD DATA启用LOCAL OFF
ENABLED_PROFILING 是否启用查询分析代码 ON
ENABLE_DEBUG_SYNC 是否启用 Debug Sync 支持 ON 5.6.36
ENABLE_DOWNLOADS 是否下载可选文件 OFF
ENABLE_DTRACE 是否包含 DTrace 支持
ENABLE_GCOV 是否包含 gcov 支持
ENABLE_GPROF 启用 gprof(仅限优化的 Linux 版本) OFF
IGNORE_AIO_CHECK 使用-DBUILD_CONFIG=mysql_release,忽略libaio检查 OFF
INNODB_PAGE_ATOMIC_REF_COUNT 启用或禁用原子页面引用计数 ON 5.6.16
INSTALL_BINDIR 用户可执行文件目录 PREFIX/bin
INSTALL_DOCDIR 文档目录 PREFIX/docs
INSTALL_DOCREADMEDIR 自述文件目录 PREFIX
INSTALL_INCLUDEDIR 头文件目录 PREFIX/include
INSTALL_INFODIR 信息文件目录 PREFIX/docs
INSTALL_LAYOUT 选择预定义的安装布局 STANDALONE
INSTALL_LIBDIR 库文件目录 PREFIX/lib
INSTALL_MANDIR 手册页目录 PREFIX/man
INSTALL_MYSQLSHAREDIR 共享数据目录 PREFIX/share
INSTALL_MYSQLTESTDIR mysql测试目录 PREFIX/mysql-test
INSTALL_PLUGINDIR 插件目录 PREFIX/lib/plugin
INSTALL_SBINDIR 服务器可执行目录 PREFIX/bin
INSTALL_SCRIPTDIR 脚本目录 PREFIX/scripts
INSTALL_SECURE_FILE_PRIVDIR secure_file_priv 默认值 platform specific 5.6.34
INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR libmysqld 的 secure_file_priv 默认值 5.6.34
INSTALL_SHAREDIR aclocal/mysql.m4 安装目录 PREFIX/share
INSTALL_SQLBENCHDIR sql-bench目录 PREFIX
INSTALL_SUPPORTFILESDIR 额外的支持文件目录 PREFIX/support-files
MEMCACHED_HOME 内存缓存路径;过时的 [none] 5.6.51
MYSQL_DATADIR 数据目录
MYSQL_MAINTAINER_MODE 是否开启MySQL maintainer-specific开发环境 OFF
MYSQL_PROJECT_NAME Windows/macOS 项目名称 MySQL
MYSQL_TCP_PORT TCP/IP 端口号 3306
MYSQL_UNIX_ADDR Unix套接字文件 /tmp/mysql.sock
ODBC_INCLUDES ODBC 包含目录
ODBC_LIB_DIR ODBC库目录
OPTIMIZER_TRACE 是否支持优化器跟踪
REPRODUCIBLE_BUILD 格外小心地创建独立于构建位置和时间的构建结果 5.6.37
SUNPRO_CXX_LIBRARY Solaris 10+ 上的客户端链接库 5.6.20
SYSCONFDIR 选项文件目录
TMPDIR tmpdir 默认值 5.6.16
WITHOUT_SERVER 不搭建服务器 OFF
WITHOUT_xxx_STORAGE_ENGINE 从构建中排除存储引擎 xxx
WITH_ASAN 启用 AddressSanitizer OFF 5.6.15
WITH_BUNDLED_LIBEVENT 构建 ndbmemcache 时使用捆绑的 libevent;过时的 ON 5.6.51
WITH_BUNDLED_MEMCACHED 构建 ndbmemcache 时使用捆绑的 memcached;过时的 ON 5.6.51
WITH_CLASSPATH 为 Java 构建 MySQL Cluster Connector 时使用的类路径。默认为空字符串。
WITH_DEBUG 是否包括调试支持 OFF
WITH_DEFAULT_COMPILER_OPTIONS 是否使用默认的编译器选项 ON
WITH_DEFAULT_FEATURE_SET 是否使用默认特征集 ON
WITH_EDITLINE 使用哪个 libedit/editline 库 bundled 5.6.12
WITH_EMBEDDED_SERVER 是否搭建嵌入式服务器 OFF
WITH_EMBEDDED_SHARED_LIBRARY 是否构建共享嵌入式服务器库 OFF 5.6.17
WITH_ERROR_INSERT 在 NDB 存储引擎中启用错误注入。不应用于构建用于生产的二进制文件。 OFF
WITH_EXTRA_CHARSETS 要包括哪些额外的字符集 all
WITH_GMOCK googlemock 分发路径
WITH_INNODB_MEMCACHED 是否生成 memcached 共享库。 OFF
WITH_LIBEDIT 使用捆绑的 libedit 库 ON 5.6.12
WITH_LIBEVENT 使用哪个 libevent 库 bundled
WITH_LIBWRAP 是否包括 libwrap (TCP wrappers) 支持 OFF
WITH_NDBAPI_EXAMPLES 构建 API 示例程序 OFF
WITH_NDBCLUSTER 构建 NDB 存储引擎 ON
WITH_NDBCLUSTER_STORAGE_ENGINE 供内部使用;可能无法在所有情况下都按预期工作;用户应该改用 WITH_NDBCLUSTER ON
WITH_NDBMTD 构建多线程数据节点。 ON
WITH_NDB_BINLOG mysqld 默认启用二进制日志记录。 ON
WITH_NDB_DEBUG 生成用于测试或故障排除的调试版本。 OFF
WITH_NDB_JAVA 启用 Java 和 ClusterJ 支持的构建。默认启用。仅在 MySQL 集群中受支持。 ON
WITH_NDB_PORT 使用此选项构建的管理服务器使用的默认端口。如果未使用此选项来构建它,则管理服务器的默认端口为 1186。 [none]
WITH_NDB_TEST 包括 NDB API 测试程序。 OFF
WITH_NUMA 设置 NUMA 内存分配策略 5.6.27
WITH_SSL SSL 支持类型 system
WITH_SYMVER16 libmysqlclient.so.18 是否同时包含 symver 16 和 18 符号。 OFF 5.6.31
WITH_UNIT_TESTS 使用单元测试编译 MySQL ON
WITH_UNIXODBC 启用 unixODBC 支持 OFF
WITH_VALGRIND 是否在 Valgrind 头文件中编译 OFF
WITH_ZLIB zlib 支持的类型 bundled
WITH_xxx_STORAGE_ENGINE 静态编译存储引擎xxx到服务器

常规选项

  • -DBUILD_CONFIG=mysql_release

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

  • -DCMAKE_BUILD_TYPE=type

    要生成的构建类型:

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

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

  • -DCPACK_MONOLITHIC_INSTALL=bool

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

安装布局选项

CMAKE_INSTALL_PREFIX选项表示基本安装目录。具有指示组件位置的形式名称的其他选项 是相对于前缀解释的,它们的值是相对路径名。它们的值不应包含前缀。 INSTALL_xxx

存储引擎选项

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

InnoDBMyISAMMERGE和 engines 是必需MEMORYCSV(总是编译到服务器中)并且不需要显式安装。

要将存储引擎静态编译到服务器中,请使用 . 一些允许的值是 、、 、、 (分区支持)和 (性能模式)。例子: -DWITH_engine_STORAGE_ENGINE=1engineARCHIVEBLACKHOLEEXAMPLEFEDERATEDPARTITIONPERFSCHEMA

-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1

要构建支持 NDB Cluster 的 MySQL,请使用该 WITH_NDBCLUSTER选项。

笔记

WITH_NDBCLUSTER仅在使用 NDB Cluster 源构建 NDB Cluster 时才受支持。它不能用于在其他 MySQL 源代码树或发行版中启用集群支持。在 NDB Cluster 源分发中,默认情况下启用它。有关更多信息,请参阅 第 18.3.1.4 节,“在 Linux 上从源构建 NDB Cluster”第 18.3.2.2 节,“在 Windows 上从源编译和安装 NDB Cluster”

要从构建中排除存储引擎,请使用 . 例子: -DWITHOUT_engine_STORAGE_ENGINE=1

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1

如果给定存储引擎既未 指定也未 指定,则该引擎将构建为共享模块,或者如果无法构建为共享模块则将其排除。 -DWITH_engine_STORAGE_ENGINE-DWITHOUT_engine_STORAGE_ENGINE

功能选项

  • -DCOMPILATION_COMMENT=string

    关于编译环境的描述性注释。

  • -DDEFAULT_CHARSET=charset_name

    服务器字符集。默认情况下,MySQL 使用 latin1(cp1252 West European) 字符集。

    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_ utf8_ utf8mb4utf16utf16leutf32. 允许的字符集在 cmake/character_sets.cmake文件中列为CHARSETS_AVAILABLE.

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

  • -DDEFAULT_COLLATION=collation_name

    服务器整理。默认情况下,MySQL 使用 latin1_swedish_ci. 使用该 SHOW COLLATION语句确定每个字符集可用的归类。

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

  • -DENABLE_DEBUG_SYNC=bool

    笔记

    从 MySQL 5.6.36 开始,ENABLE_DEBUG_SYNC删除并启用 WITH_DEBUG调试同步。

    是否将调试同步工具编译到服务器中。该设施用于测试和调试。默认情况下启用此选项,但除非 MySQL 配置为启用调试,否则无效。如果启用了调试并且您想禁用调试同步,请使用 -DENABLE_DEBUG_SYNC=0.

    编译时,Debug Sync 在运行时默认处于禁用状态。要启用它,请使用 选项启动mysqld ,其中超时值大于 0。(默认值为 0,禁用调试同步。)成为各个同步点的默认超时。 --debug-sync-timeout=NNN

    有关调试同步工具的描述以及如何使用同步点,请参阅 MySQL 内部结构:测试同步

  • -DENABLE_DOWNLOADS=bool

    是否下载可选文件。例如,启用此选项后,CMake会下载测试套件用于运行单元测试的 Google Test 发行版。

  • -DENABLE_DTRACE=bool

    是否包括对 DTrace 探测的支持。有关 DTrace 的信息,请参阅 第 5.8.4 节,“使用 DTrace 跟踪 mysqld”

  • -DWITHOUT_SERVER=bool

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

    这被认为是一个实验性的选择;最好与服务器一起构建。

  • -DENABLE_GCOV=bool

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

  • -DENABLE_GPROF=bool

    是否启用gprof(仅限优化的 Linux 版本)。

  • -DENABLED_LOCAL_INFILE=bool

    此选项控制 MySQL 客户端库的内置默认 LOCAL功能。因此,没有明确安排的客户端LOCAL根据 ENABLED_LOCAL_INFILEMySQL 构建时指定的设置禁用或启用功能。

    默认情况下,MySQL 二进制发行版中的客户端库是在 ENABLED_LOCAL_INFILE启用的情况下编译的。如果您从源代码编译 MySQL,请 ENABLED_LOCAL_INFILE根据未做出明确安排的客户端是否应LOCAL分别禁用或启用功能来将其配置为禁用或启用。

    ENABLED_LOCAL_INFILE控制客户端LOCAL 功能的默认值。对于服务器, local_infile系统变量控制服务器端的LOCAL 能力。要显式地使服务器拒绝或允许LOAD DATA LOCAL语句(无论客户端程序和库在构建时或运行时如何配置) ,分别以 禁用或启用的 方式启动mysqld 。也可以在运行时设置。请参阅 第 6.1.6 节,“LOAD DATA LOCAL 的安全注意事项”local_infilelocal_infile

  • -DENABLED_PROFILING=bool

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

  • -DIGNORE_AIO_CHECK=bool

    如果 -DBUILD_CONFIG=mysql_release 在 Linux 上给出了该选项,则libaio 默认情况下必须链接库。如果您没有 libaio或不想安装它,您可以通过指定 -DIGNORE_AIO_CHECK=1.

  • -DINNODB_PAGE_ATOMIC_REF_COUNT=bool

    是否启用或禁用原子页面引用计数。从缓冲池中获取和释放页面以及跟踪页面状态是昂贵且复杂的操作。使用页互斥锁来跟踪这些操作并不能很好地扩展。使用 INNODB_PAGE_ATOMIC_REF_COUNT=ON (默认),在可用的情况下使用原子来跟踪获取和释放。对于不支持原子的平台,设置 INNODB_PAGE_ATOMIC_REF_COUNT=OFF为禁用原子页面引用计数。

    当启用原子页面引用计数时(默认), [Note] InnoDB: Using atomics to ref count buffer pool pages会在服务器启动时打印到错误日志中。如果禁用原子页面引用计数,则打印 [Note] InnoDB: Using mutexes to ref count buffer pool pages” 。

    INNODB_PAGE_ATOMIC_REF_COUNT是在修复 MySQL Bug #68079 时引入的。该选项在 MySQL 5.7.5 中被删除。从 MySQL 5.7.5 开始构建 MySQL 需要支持原子,这使得该选项已过时。

  • -DMYSQL_MAINTAINER_MODE=bool

    是否启用 MySQL 维护者特定的开发环境。如果启用,此选项会导致编译器警告变为错误。它还可能导致生成的代码发生一些小的变化,将一些变量初始化为 0。

  • -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 系统上的构建,此选项控制是否要格外小心地创建独立于构建位置和时间的构建结果。

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

  • -DWITH_ASAN=bool

    是否为支持它的编译器启用 AddressSanitizer。默认关闭。这个选项是在 MySQL 5.6.15 中添加的。

  • -DWITH_DEBUG=bool

    是否包括调试支持。

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

    从 MySQL 5.6.36 开始,启用 WITH_DEBUG还启用调试同步。有关调试同步工具的描述以及如何使用同步点,请参阅 MySQL 内部结构:测试同步

  • -DWITH_DEFAULT_FEATURE_SET=bool

    是否使用来自 cmake/build_configurations/feature_set.cmake.

  • -DWITH_EDITLINE=value

    使用哪个libedit/editline 库。允许的值为 bundled(默认值)和 system.

    WITH_EDITLINE在 MySQL 5.6.12 中添加。它取代了 WITH_LIBEDIT, 已被删除。

  • -DWITH_EMBEDDED_SERVER=bool

    是否构建libmysqld嵌入式服务器库。

  • -DWITH_EMBEDDED_SHARED_LIBRARY=bool

    是否构建一个共享的libmysqld 嵌入式服务器库。这个选项是在 MySQL 5.6.17 中添加的。

  • -DWITH_EXTRA_CHARSETS=name

    要包括哪些额外的字符集:

    • all: 所有字符集。这是默认值。

    • complex: 复杂的字符集。

    • none: 没有额外的字符集。

  • -DWITH_GMOCK=path_name

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

    如果您在没有基于 Google Test 的单元测试(通过配置 wihout WITH_GMOCK)的情况下构建 MySQL, CMake会显示一条消息,指示如何下载它。

  • -DWITH_INNODB_MEMCACHED=bool

    是否生成 memcached 共享库(libmemcached.soinnodb_engine.so)。

  • -DWITH_LIBEVENT=string

    使用哪个libevent库。允许的值为bundled(默认值) system、 和yes。如果您指定systemyes,则使用系统 libevent库(如果存在)。如果找不到系统库, libevent则使用捆绑库。memcached 需要该 libevent库 。InnoDB

  • -DWITH_LIBEDIT=bool

    是否使用libedit与发行版捆绑在一起的库。

    WITH_LIBEDIT在 MySQL 5.6.12 中被删除。改用 WITH_EDITLINE

  • -DWITH_LIBWRAP=bool

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

  • -DWITH_NUMA=bool

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

    • 没有 NUMA 选项(正常情况), CMake正常继续,只产生这个警告:NUMA library missing or required version not available

    • 使用-DWITH_NUMA=ONCMake中止并出现此错误:NUMA 库丢失或所需版本不可用

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

  • -DWITH_SSL={ssl_type| path_name}

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

    • ssl_type可以是以下值之一:

      • no: 不支持 SSL。这是 MySQL 5.6.6 之前的默认设置。从 5.6.6 开始,这不再是允许的值,默认值为 bundled.

      • yes:如果存在,则使用系统 OpenSSL 库,否则使用与发行版捆绑在一起的库。

      • bundled:使用与发行版捆绑在一起的 SSL 库。这是 MySQL 5.6.6 到 5.6.45 的默认设置。从 5.6.46 开始,这不再是允许的值,默认值为 system.

      • system: 使用系统 OpenSSL 库。这是 MySQL 5.6.46 的默认设置。

    • path_name,允许 MySQL 5.6.7 及更高版本,是要使用的 OpenSSL 安装的路径名。这可能比使用 ssl_type值更可取, system因为它可以防止 CMake 检测和使用系统上安装的较旧或不正确的 OpenSSL 版本。(另一种允许做同样事情的方法是设置WITH_SSLsystem并将 CMAKE_PREFIX_PATH选项设置为 path_name。)

    有关配置 SSL 库的其他信息,请参阅 第 2.9.6 节,“配置 SSL 库支持”

  • -DWITH_SYMVER16=bool

    如果启用,此选项会导致 libmysqlclient客户端库包含额外的符号以与 libmysqlclientRHEL/OEL 5、6 和 7 兼容;和 Fedora 版本。中出现的所有符号 libmysqlclient.so.16都标有 symver 16 in libmsqlclient.so.18,使这些符号同时具有 symver 16 和 18。默认值为OFF

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

  • -DWITH_UNIT_TESTS={ON|OFF}

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

  • -DWITH_UNIXODBC=1

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

  • -DWITH_VALGRIND=bool

    是否在 Valgrind 头文件中编译,这将 Valgrind API 暴露给 MySQL 代码。默认值为 OFF

    要生成 Valgrind 感知调试版本, -DWITH_VALGRIND=1通常与-DWITH_DEBUG=1. 请参阅 构建调试配置

  • -DWITH_ZLIB=zlib_type

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

    • bundled:使用 zlib与发行版捆绑在一起的库。这是默认值。

    • system: 使用系统 zlib库。

编译器标志

  • -DCMAKE_C_FLAGS="flags

    C 编译器的标志。

  • -DCMAKE_CXX_FLAGS="flags

    C++ 编译器的标志。

  • -DWITH_DEFAULT_COMPILER_OPTIONS=bool

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

    笔记

    所有优化标志均由 MySQL 构建团队精心选择和测试。覆盖它们可能会导致意外结果,风险由您自行承担。

  • -DSUNPRO_CXX_LIBRARY="lib_name

    在 Solaris 10 或更高版本上 启用链接libCstd而不是 。stlport4这仅适用于客户端代码,因为服务器依赖于 C++98。

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

要指定您自己的 C 和 C++ 编译器标志,对于不影响优化的标志,请使用 CMAKE_C_FLAGSCMAKE_CXX_FLAGSCMake 选项。

在提供您自己的编译器标志时,您可能还想指定CMAKE_BUILD_TYPE

例如,要在 64 位 Linux 机器上创建 32 位发布版本,请执行以下操作:

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

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

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

用于编译 NDB Cluster 的 CMake 选项

以下选项用于使用 NDB Cluster 源构建 NDB Cluster 时使用;使用 MySQL 5.6 服务器树中的源时,当前不支持它们。