从源代码构建MySQL/ MySQL源配置选项

第4章MySQL源配置选项

CMake程序在如何配置MySQL源代码发行版方面提供了很大的控制。控件上的选项通常可以完成此操作CMake命令行。有关支持的选项的信息CMake,在顶级源目录中运行以下命令之一:

cmake。-LH ccmake。

你也可以影响CMake使用某些环境变量。看到环境变量

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

许多选项配置编译时默认值,这些默认值可以在服务器启动时被覆盖。例如,CMAKE_INSTALL_PREFIXMYSQL_TCP_PORT,MYSQL_UNIX_ADDR选项,这些选项配置默认的安装基础目录位置、TCP/IP端口号和Unix套接字文件,可以在服务器启动时使用——basedir——港口,——套接字选项mysqld.在适用的情况下,配置选项描述指示了相应的mysqld启动选项。

以下部分提供关于CMake选项。

  • CMake选项参考

    下表显示了可用的CMake选项。在默认的列,前缀的值CMAKE_INSTALL_PREFIX选项,该选项指定安装基目录。此值用作几个安装子目录的父位置。

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

    格式 描述 默认的 介绍了 删除
    ADD_GDB_INDEX 是否启用以二进制文件形式生成.gdb_index节 8.0.18
    BUILD_CONFIG 使用与正式版本相同的构建选项
    BUNDLE_RUNTIME_LIBRARIES 将运行时库与Windows的服务器MSI和Zip包捆绑 8.0.11
    CMAKE_BUILD_TYPE 要生成的构建类型 RelWithDebInfo
    CMAKE_CXX_FLAGS c++编译器的标志
    CMAKE_C_FLAGS C编译器的标志
    CMAKE_INSTALL_PREFIX 安装基础目录 /usr/local/mysql
    CMAKE_INSTALL_PRIV_LIBDIR 安装私有库目录 8.0.18
    COMPILATION_COMMENT 关于编译环境的评论
    COMPILATION_COMMENT_SERVER 关于mysqld使用的编译环境的注释 8.0.14
    COMPRESS_DEBUG_SECTIONS 压缩二进制可执行程序的调试部分 8.0.22
    CPACK_MONOLITHIC_INSTALL 包构建是否生成单个文件
    DEFAULT_CHARSET 默认的服务器字符集 utf8mb4
    DEFAULT_COLLATION 默认的服务器排序规则 utf8mb4_0900_ai_ci
    DISABLE_DATA_LOCK 排除性能模式数据锁工具
    DISABLE_PSI_COND 排除性能模式条件插装
    DISABLE_PSI_ERROR 排除性能模式服务器错误检测
    DISABLE_PSI_FILE 排除性能模式文件检测
    DISABLE_PSI_IDLE 排除性能模式空闲插装
    DISABLE_PSI_MEMORY 排除性能模式内存插装
    DISABLE_PSI_METADATA 排除性能模式元数据插装
    DISABLE_PSI_MUTEX 排除性能模式互斥锁插装
    DISABLE_PSI_PS 排除性能模式准备语句
    DISABLE_PSI_RWLOCK 排除性能模式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 排除性能模式事务检测
    DISABLE_SHARED 不构建共享库,编译位置相关的代码 8.0.18
    DOWNLOAD_BOOST 是否下载Boost库
    DOWNLOAD_BOOST_TIMEOUT 下载Boost库的超时时间(以秒为单位) 600
    ENABLED_LOCAL_INFILE 是否为LOAD DATA启用LOCAL
    ENABLED_PROFILING 是否启用查询分析代码
    ENABLE_DEBUG_SYNC 是否启用“调试同步”支持 8.0.1
    ENABLE_10bet手机中文版DOWNLOADS 是否下载可选文件 8.0.25
    ENABLE_DTRACE 是否包含DTrace支持 8.0.1
    ENABLE_EXPERIMENTAL_SYSVARS 是否使能InnoDB实验系统变量 8.0.11
    ENABLE_GCOV 是否包含gcov支持
    ENABLE_GPROF 启用gprof(仅针对优化的Linux版本)
    FORCE_INSOURCE_BUILD 是否强制进行源代码内构建 8.0.14
    FORCE_UNSUPPORTED_COMPILER 是否允许不支持的编译器
    FPROFILE_GENERATE 是否生成配置文件引导的优化数据 8.0.19
    FPROFILE_USE 是否使用剖面引导优化数据 8.0.19
    IGNORE_AIO_CHECK 使用-DBUILD_CONFIG=mysql_release,忽略libaio检查
    INSTALL_BINDIR 用户可执行文件目录 前缀/ bin
    INSTALL_DOCDIR 10bet官方网站文档目录 前缀/文档
    INSTALL_DOCREADMEDIR README文件目录 前缀
    INSTALL_INCLUDEDIR 头文件目录 前缀/包括
    INSTALL_INFODIR 信息文件目录 前缀/文档
    INSTALL_LAYOUT 选择预定义的安装布局 独立的
    INSTALL_LIBDIR 库文件目录 前缀/ lib
    INSTALL_MANDIR 手动页面目录 前缀/人
    INSTALL_MYSQLKEYRINGDIR keyring_file插件数据文件的目录 特定于平台的
    INSTALL_MYSQLSHAREDIR 共享数据目录 前缀/分享
    INSTALL_MYSQLTESTDIR mysql-test目录 前缀/ mysql-test
    INSTALL_PKGCONFIGDIR mysqlclient的目录。PC pkg-config文件 INSTALL_LIBDIR / pkgconfig
    INSTALL_PLUGINDIR 插件目录 前缀/ lib /插件
    INSTALL_SBINDIR 服务器可执行目录 前缀/ bin
    INSTALL_SECURE_FILE_PRIVDIR Secure_file_priv默认值 特定于平台的
    INSTALL_SHAREDIR aclocal / mysql.m4在stallation directory 前缀/分享
    INSTALL_STATIC_LIBRARIES 是否安装静态库
    INSTALL_SUPPORTFILESDIR 额外支持文件目录 前缀/支持文件
    LINK_RANDOMIZE 是否随机化mysqld二进制中的符号顺序 8.0.1
    LINK_RANDOMIZE_SEED LINK_RANDOMIZE选项的种子值 mysql 8.0.1
    MAX_INDEXES 每个表的最大索引 64
    MUTEX_TYPE InnoDB互斥锁类型 事件
    MYSQLX_TCP_PORT X Plugin使用的TCP/IP端口号 33060
    MYSQLX_UNIX_ADDR X Plugin使用的Unix套接字文件 / tmp / mysqlx.sock
    MYSQL_DATADIR 数据目录
    MYSQL_MAINTAINER_MODE 是否启用MySQL特定维护人员的开发环境
    MYSQL_PROJECT_NAME Windows/OS X项目名称 MySQL
    MYSQL_TCP_PORT TCP/IP端口号 3306
    MYSQL_UNIX_ADDR Unix套接字文件 / tmp / mysql.sock
    NDB_UTILS_LINK_DYNAMIC 使NDB工具动态链接到ndbclient 8.0.22-ndb-8.0.22
    ODBC_INCLUDES ODBC包含目录
    ODBC_LIB_DIR ODBC库目录
    OPTIMIZER_TRACE 是否支持优化器跟踪
    REPRODUCIBLE_BUILD 要特别注意创建独立于生成位置和时间的生成结果 8.0.11
    SYSCONFDIR 选项文件目录
    SYSTEMD_PID_DIR systemd下PID文件的目录 /var/run/mysqld
    SYSTEMD_SERVICE_NAME systemd下的MySQL服务名称 mysqld
    TMPDIR Tmpdir默认值
    USE_LD_GOLD 是否使用GNU黄金链接器
    USE_LD_LLD 是否使用llvm lld连接器 8.0.16
    WIN_DEBUG_NO_INLINE 是否禁用函数内联
    WITHOUT_xxx_STORAGE_ENGINE 从构建中排除存储引擎xxx
    WITH_ANT 用于构建GCS Java包装器的Ant路径 8.0.11
    WITH_ASAN 使AddressSanitizer
    WITH_ASAN_SCOPE 启用AddressSanitizer -fsanitize-address-use-after-scope Clang标志 8.0.4
    WITH_AUTHENTICATION_LDAP 如果无法构建LDAP身份验证插件,是否报告错误 8.0.2
    WITH_AUTHENTICATION_PAM 构建PAM身份验证插件
    WITH_AWS_SDK 亚马逊网络服务软件开发包的位置 8.0.2
    WITH_BOOST Boost库源代码的位置
    WITH_CLIENT_PROTOCOL_TRACING 构建客户端协议跟踪框架
    WITH_CURL curl库的位置 8.0.2
    WITH_DEBUG 是否包含调试支持
    WITH_DEFAULT_COMPILER_OPTIONS 是否使用默认编译器选项
    WITH_DEFAULT_FEATURE_SET 是否使用默认特性集 8.0.22
    WITH_EDITLINE 使用哪个libedit/editline库 捆绑
    WITH_GMOCK googlemock分发版的路径 8.0.25
    WITH_ICU ICU支持类型 捆绑 8.0.4
    WITH_INNODB_EXTRA_DEBUG 是否为InnoDB提供额外的调试支持。
    WITH_INNODB_MEMCACHED 是否生成memcached共享库。
    WITH_JEMALLOC 是否与-ljemalloc链接 8.0.16
    WITH_KEYRING_TEST 构建密匙环测试程序
    WITH_LIBEVENT 使用哪个libevent库 捆绑
    WITH_LIBWRAP 是否包含libwrap (TCP包装器)支持
    WITH_LOCK_ORDER 是否启用LOCK_ORDER工具 8.0.17
    WITH_LSAN 是否运行LeakSanitizer,而不运行AddressSanitizer 8.0.16
    WITH_LTO 启用链接时间优化器 8.0.13
    WITH_LZ4 LZ4库支持的类型 捆绑
    WITH_LZMA LZMA库支持的类型 捆绑 8.0.4 8.0.16
    WITH_MECAB 编译MeCab
    WITH_MSAN 使MemorySanitizer
    WITH_MSCRT_DEBUG 启用Visual Studio CRT内存泄漏跟踪
    WITH_MYSQLX 是否禁用X协议 8.0.11
    WITH_NUMA 设置NUMA内存分配策略
    WITH_PROTOBUF 使用哪个协议缓冲区包 捆绑
    WITH_RAPID 是否构建快速开发周期插件
    WITH_RAPIDJSON RapidJSON支持的类型 捆绑 8.0.13
    WITH_RE2 RE2库支持的类型 捆绑 8.0.4 8.0.18
    WITH_ROUTER 是否构建MySQL路由器 8.0.16
    WITH_SSL SSL支持的类型 系统
    WITH_SYSTEMD 启用systemd支持文件的安装
    WITH_SYSTEMD_DEBUG 启用额外的系统调试信息 8.0.22
    WITH_SYSTEM_LIBS 设置未显式设置的库选项的系统值 8.0.11
    WITH_TCMALLOC 是否与-ltcmalloc连接 8.0.22
    WITH_TEST_TRACE_PLUGIN 构建测试协议跟踪插件
    WITH_TSAN 使ThreadSanitizer
    WITH_UBSAN 启用未定义行为杀毒器
    WITH_UNIT_TESTS 用单元测试编译MySQL
    WITH_UNIXODBC 启用unixODBC支持
    WITH_VALGRIND 是否在Valgrind头文件中编译
    WITH_ZLIB zlib支持的类型 捆绑
    WITH_ZSTD zstd支持的类型 捆绑 8.0.18
    WITH_xxx_STORAGE_ENGINE 静态编译存储引擎xxx到服务器

一般选择

  • -DBUILD_CONFIG = mysql_release

    该选项使用与Oracle为官方MySQL发行版生成二进制发行版使用的相同构建选项配置源发行版。

  • -DBUNDLE_RUNTIME_LIBRARIES =保龄球

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

  • -DCMAKE_BUILD_TYPE =类型

    要生成的构建类型:

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

    • 释放:启用优化,但省略调试信息以减少构建大小。此构建类型是在MySQL 8.0.13中添加的。

    • 调试:关闭优化,并生成调试信息。的情况下也使用此构建类型WITH_DEBUG选项已启用。也就是说,-DWITH_DEBUG = 1有相同的效果-DCMAKE_BUILD_TYPE =调试

  • -DCPACK_MONOLITHIC_INSTALL =保龄球

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

  • -DFORCE_INSOURCE_BUILD =保龄球

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

安装布局选项

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

  • -DCMAKE_INSTALL_PREFIX =dir_name

    安装基目录。

    方法可以在服务器启动时设置此值——basedir选择。

  • -DINSTALL_BINDIR =dir_name

    安装用户程序的位置。

  • -DINSTALL_DOCDIR =dir_name

    安装文档的位置。10bet官方网站

  • -DINSTALL_DOCREADMEDIR =dir_name

    安装地点自述文件。

  • -DINSTALL_INCLUDEDIR =dir_name

    安装头文件的位置。

  • -DINSTALL_INFODIR =dir_name

    在哪里安装信息文件。

  • -DINSTALL_LAYOUT =的名字

    选择一个预定义的安装布局:

    • 独立的:与for相同的布局gz而且. zip包。这是默认设置。

    • RPM:类似RPM包的布局。

    • SVR4: Solaris软件包布局。

    • 黛比: DEB包布局(试验性)。

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

    cmake。-DINSTALL_LAYOUT = SVR4 -DMYSQL_DATADIR = / var / mysql /数据

    INSTALL_LAYOUT的默认值secure_file_privkeyring_encrypted_file_data,keyring_file_data系统变量。这些变量的描述见服务器系统变量,Keyring系统变量

  • -DINSTALL_LIBDIR =dir_name

    安装库文件的位置。

  • -DINSTALL_MANDIR =dir_name

    安装手册页的位置。

  • -DINSTALL_MYSQLKEYRINGDIR =dir_path

    控件的位置使用的默认目录keyring_file插件数据文件。默认值是特定于平台的,取决于INSTALL_LAYOUTCMake选择;的描述keyring_file_data系统变量服务器系统变量

  • -DINSTALL_MYSQLSHAREDIR =dir_name

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

  • -DINSTALL_MYSQLTESTDIR =dir_name

    在何处安装mysql-test目录中。若要禁止安装此目录,请显式将该选项设置为空值(-DINSTALL_MYSQLTESTDIR =).

  • -DINSTALL_PKGCONFIGDIR =dir_name

    要安装的目录mysqlclient.pc文件供pkg-config.默认值为INSTALL_LIBDIR / pkgconfig,除非INSTALL_LIBDIR结尾/ mysql在这种情况下,它会先被移除。

  • -DINSTALL_PLUGINDIR =dir_name

    插件目录的位置。

    方法可以在服务器启动时设置此值——plugin_dir选择。

  • -DINSTALL_PRIV_LIBDIR =dir_name

    动态库目录的位置。

    默认位置:RPM =/usr/lib64/mysql/private/, deb =/usr/lib/mysql/private/, TAR =私人/ lib /

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

    对于Protobuf:因为这是一个私有位置,加载器(如ld-linux。所以在Linux上)可能找不到libprotobuf.so没有帮助的文件。引导装载机,RPATH与价值来源/ . . / INSTALL_PRIV_LIBDIR美元添加到mysqld和mysqlxtest。这适用于大多数情况,但当使用资源组特性,mysqldsetsuid然后加载器忽略RPATH它包含美元的起源.为了克服这个问题,在mysqld的DEB和RPM变体中设置了一个到目录的显式全路径,因为目标目的地是已知的。对于tarball安装,用类似的工具修补mysqldpatchelf是必需的。

  • -DINSTALL_SBINDIR =dir_name

    在何处安装mysqld服务器。

  • -DINSTALL_SECURE_FILE_PRIVDIR =dir_name

    的默认值secure_file_priv系统变量。默认值是特定于平台的,取决于INSTALL_LAYOUTCMake选择;的描述secure_file_priv系统变量服务器系统变量

  • -DINSTALL_SHAREDIR =dir_name

    安装地点aclocal / mysql.m4

  • -DINSTALL_STATIC_LIBRARIES =保龄球

    是否安装静态库。默认为.如果设置为,这些库没有安装:libmysqlclient.alibmysqlservices.a

  • -DINSTALL_SUPPORTFILESDIR =dir_name

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

  • -DLINK_RANDOMIZE =保龄球

    中符号的顺序是否随机化mysqld二进制文件。默认为.只有在调试时才应该启用此选项。

  • -DLINK_RANDOMIZE_SEED =瓦尔

    的种子值LINK_RANDOMIZE选择。字符串形式。默认为mysql,一个武断的选择。

  • -DMYSQL_DATADIR =dir_name

    MySQL数据目录的位置。

    方法可以在服务器启动时设置此值——datadir选择。

  • -DODBC_INCLUDES =dir_name

    ODBC的位置包括目录,可以在配置Connector/ODBC时使用。

  • -DODBC_LIB_DIR =dir_name

    ODBC库目录的位置,可以在配置Connector/ODBC时使用。

  • -DSYSCONFDIR =dir_name

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

    方法不能在服务器启动时设置此位置,但是可以使用给定的选项文件启动服务器——defaults-file =file_name选项,file_name文件的完整路径名。

  • -DSYSTEMD_PID_DIR =dir_name

    当MySQL由systemd管理时,在其中创建PID文件的目录名称。默认为/var/run/mysqld;这可能会根据INSTALL_LAYOUT价值。

    此选项将被忽略,除非WITH_SYSTEMD启用。

  • -DSYSTEMD_SERVICE_NAME =的名字

    当systemd管理MySQL时使用的MySQL服务的名称。默认为mysqld;这可能会根据INSTALL_LAYOUT价值。

    此选项将被忽略,除非WITH_SYSTEMD启用。

  • -DTMPDIR =dir_name

    控件使用的默认位置tmpdir系统变量。如果未指定,默认为P_tmpdir< stdio . h >

存储引擎选项

存储引擎是作为插件构建的。可以将插件构建为静态模块(编译到服务器中)或动态模块(构建为动态库,必须使用安装插件声明或——plugin-load选项,然后才能使用它)。有些插件可能不支持静态或动态构建。

InnoDBMyISAM合并内存,CSV引擎是必需的(总是编译到服务器中),不需要显式安装。

若要将存储引擎静态编译到服务器中,请使用-DWITH_引擎_STORAGE_ENGINE = 1.一些允许的引擎值是存档黑洞例子联邦,NDBNDBCLUSTERNDB支持)。例子:

-DWITH_ARCHIVE_STORAGE_ENGINE = 1 -DWITH_BLACKHOLE_STORAGE_ENGINE = 1
请注意

在没有性能模式支持的情况下无法进行编译。如果希望在编译时不使用特定类型的插装,可以使用以下方法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选择。

若要从构建中排除存储引擎,请使用-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使用COMPILATION_COMMENT_SERVER.其他程序继续使用COMPILATION_COMMENT

  • -DCOMPRESS_DEBUG_SECTIONS =保龄球

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

    默认为.如果未显式设置此选项,则COMPRESS_DEBUG_SECTIONS如果设置了环境变量,则该选项从该变量获取其值。

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

  • -DCOMPILATION_COMMENT_SERVER =字符串

    关于编译环境的描述性注释,供mysqld(例如,设置version_comment系统变量)。这个选项是在MySQL 8.0.14中添加的。在8.0.14之前,服务器使用COMPILATION_COMMENT

  • -DDEFAULT_CHARSET =charset_name

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

    charset_name可能是其中之一二进制armscii8美国信息交换标准代码繁体cp1250cp1251cp1256cp1257cp850cp852cp866cp932dec8eucjpmseuckrgb2312gbkgeostd8希腊希伯来语hp8keybcs2koi8rkoi8ulatin1latin2latin5latin7maccemacromansjisswe7tis620ucs2里头use utf8utf8mb4utf16utf16leutf32.中列出了允许的字符集cmake / character_sets.cmake的值CHARSETS_AVAILABLE

    方法可以在服务器启动时设置此值——character_set_server选择。

  • -DDEFAULT_COLLATION =collation_name

    服务器排序。MySQL默认使用utf8mb4_0900_ai_ci.使用显示排序语句以确定对每个字符集可用的排序规则。

    方法可以在服务器启动时设置此值——collation_server选择。

  • -DDISABLE_PSI_COND =保龄球

    是否排除性能模式条件插装。默认为(包括)。

  • -DDISABLE_PSI_FILE =保龄球

    是否排除性能架构文件检测。默认为(包括)。

  • -DDISABLE_PSI_IDLE =保龄球

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

  • -DDISABLE_PSI_MEMORY =保龄球

    是否排除性能架构内存插装。默认为(包括)。

  • -DDISABLE_PSI_METADATA =保龄球

    是否排除性能架构元数据插装。默认为(包括)。

  • -DDISABLE_PSI_MUTEX =保龄球

    是否排除性能模式互斥锁插装。默认为(包括)。

  • -DDISABLE_PSI_RWLOCK =保龄球

    是否排除性能架构rwlock工具。默认为(包括)。

  • -DDISABLE_PSI_SOCKET =保龄球

    是否排除性能模式套接字插装。默认为(包括)。

  • -DDISABLE_PSI_SP =保龄球

    是否排除性能模式存储程序插装。默认为(包括)。

  • -DDISABLE_PSI_STAGE =保龄球

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

  • -DDISABLE_PSI_STATEMENT =保龄球

    是否排除性能架构语句插装。默认为(包括)。

  • -DDISABLE_PSI_STATEMENT_DIGEST =保龄球

    是否排除性能模式statement_digest工具。默认为(包括)。

  • -DDISABLE_PSI_TABLE =保龄球

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

  • -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选项,以了解关于使用Boost的更多讨论。

  • -DDOWNLOAD_BOOST_TIMEOUT =

    下载Boost库的超时时间(以秒为单位)。缺省值是600秒。

    看到WITH_BOOST选项,以了解关于使用Boost的更多讨论。

  • -DENABLE_10bet手机中文版DOWNLOADS =保龄球

    是否下载可选文件。例如,启用此选项后,CMake10bet手机中文版下载测试套件用于运行单元测试或构建GCS Java包装器所需的Ant和JUnit的谷歌测试分发版。

    从MySQL 8.0.25开始,MySQL源代码发行版捆绑了谷歌测试源代码,用于运行基于谷歌测试的单元测试。因此,从那个版本开始WITH_GMOCK而且ENABLE_10bet手机中文版DOWNLOADSCMake选项将被删除,如果指定则忽略。

  • -DENABLE_EXPERIMENTAL_SYSVARS =保龄球

    是否启用实验InnoDB系统变量。实验性系统变量是为MySQL开发人员准备的,应该只在开发或测试环境中使用,在未来的MySQL版本中可能会被删除而不另行通知。有关实验系统变量的信息,请参见/存储/ / ha_innodb.cc innobase /处理程序在MySQL源代码树中。可以通过搜索来识别实验系统变量PLUGIN_VAR_EXPERIMENTAL

  • -DENABLE_GCOV =保龄球

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

  • -DENABLE_GPROF =保龄球

    是否启用gprof(只针对优化的Linux版本)。

  • -DENABLED_LOCAL_INFILE =保龄球

    此选项控制编译后的默认值当地的MySQL客户端库的功能。因此,没有做出明确安排的客户就有了当地的功能已禁用或已启用ENABLED_LOCAL_INFILE设置在MySQL构建时指定。

    默认情况下,MySQL二进制发行版中的客户端库是用ENABLED_LOCAL_INFILE禁用。如果从源代码编译MySQL,则配置为ENABLED_LOCAL_INFILE根据没有明确安排的客户端是否应该启用或禁用当地的分别禁用或启用功能。

    ENABLED_LOCAL_INFILE控制客户端的默认值当地的能力。对于服务器,local_infile系统变量控制服务器端当地的能力。显式地使服务器拒绝或允许本地加载数据语句(无论在构建时或运行时如何配置客户端程序和库)开始mysqldlocal_infile分别为禁用或启用。local_infile也可以在运行时设置。看到本地加载数据的安全考虑

  • -DENABLED_PROFILING =保龄球

    是否启用查询分析代码显示配置文件而且显示配置文件语句)。

  • -DFORCE_UNSUPPORTED_COMPILER =保龄球

    默认情况下,CMake检查支持的编译器的最小版本: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 =对

  • -DFPROFILE_GENERATE =保龄球

    是否生成PGO (profile guided optimization)数据。此选项可用于在GCC中使用PGO进行试验。看到cmake / fprofile.cmake在MySQL源发行版中的一个文件中获取有关usingFPROFILE_GENERATE而且FPROFILE_USE.这些选项已经在GCC 8和GCC 9中进行了测试。

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

  • -DFPROFILE_USE =保龄球

    是否使用PGO (profile guided optimization)数据。此选项可用于在GCC中使用PGO进行试验。看到cmake / fprofile.cmake在MySQL源发行版中的一个文件中获取有关usingFPROFILE_GENERATE而且FPROFILE_USE.这些选项已经在GCC 8和GCC 9中进行了测试。

    启用FPROFILE_USE还使WITH_LTO

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

  • -DIGNORE_AIO_CHECK =保龄球

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

  • -DMAX_INDEXES =全国矿工工会

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

  • -DMYSQL_MAINTAINER_MODE =保龄球

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

  • -DMUTEX_TYPE =类型

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

    • 事件:使用事件互斥锁。这是默认值和原始值InnoDB互斥对象的实现。

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

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

  • -DMYSQLX_TCP_PORT =port_num

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

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

  • -DMYSQLX_UNIX_ADDR =file_name

    Unix套接字文件路径,服务器在其上监听X Plugin套接字连接。这必须是一个绝对路径名。默认为/ tmp / mysqlx.sock

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

  • -DMYSQL_PROJECT_NAME =的名字

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

  • -DMYSQL_TCP_PORT =port_num

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

    方法可以在服务器启动时设置此值——港口选择。

  • -DMYSQL_UNIX_ADDR =file_name

    Unix套接字文件路径,服务器在其上监听套接字连接。这必须是一个绝对路径名。默认为/ tmp / mysql.sock

    方法可以在服务器启动时设置此值——套接字选择。

  • -DOPTIMIZER_TRACE =保龄球

    是否支持优化器跟踪。看到MySQL内部:跟踪优化器

  • -DREPRODUCIBLE_BUILD =保龄球

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

    这个选项是在MySQL 8.0.11中添加的。从MySQL 8.0.12开始,它默认为RelWithDebInfo构建。

  • -DUSE_LD_GOLD =保龄球

    CMake使构建过程链接到GNU黄金连接器(如果它可用且未显式禁用)。要禁用此链接器的使用,请指定-DUSE_LD_GOLD =了选择。

  • -DUSE_LD_LLD =保龄球

    CMake使构建过程链接到llvmlld如果Clang是可用的,并且没有显式禁用的话。要禁用此链接器的使用,请指定-DUSE_LD_LLD =了选择。

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

  • -DWIN_DEBUG_NO_INLINE =保龄球

    是否禁用Windows上的内联功能。默认是关闭(启用内联)。

  • -DWITH_ANT =path_name

    将路径设置为Ant,这是构建GCS Java包装器时需要的。工作方式与现有的相似WITH_BOOSTCMake的选择。集WITH_ANT到存放Ant tarball或已解压缩归档文件的目录的路径。当WITH_ANT没有设置,还是设置了特殊值系统,构建假定为二进制蚂蚁存在于美元的路径

  • -DWITH_ASAN =保龄球

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

  • -DWITH_ASAN_SCOPE =保龄球

    是否启用AddressSanitizer-fsanitize-address-use-after-scope瞄准镜后检测使用的Clang标志。默认是关闭的。要使用这个选项,-DWITH_ASAN也必须启用。

  • -DWITH_AUTHENTICATION_LDAP =保龄球

    是否在无法构建LDAP认证插件时报错:

    • 如果禁用此选项(默认),则在找到所需的头文件和库时构建LDAP插件。如果不是,CMake显示关于它的注释。

    • 如果启用此选项,将导致无法找到所需的头文件和库CMake产生错误,阻止构建服务器。

  • -DWITH_AUTHENTICATION_PAM =保龄球

    是否为包含此插件的源树构建PAM身份验证插件。(见PAM可插入身份验证)。如果指定了此选项,并且无法编译插件,则构建失败。

  • -DWITH_AWS_SDK =path_name

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

  • -DWITH_BOOST =path_name

    构建MySQL需要Boost库。这些CMake选项允许控制库的源位置,以及是否自动下载:

    • -DWITH_BOOST =path_name指定Boost库目录位置。属性还可以指定Boost位置BOOST_ROOTWITH_BOOST环境变量。

      -DWITH_BOOST =系统也允许,并指示在标准位置的编译主机上安装了正确版本的Boost。在这种情况下,使用的是已安装的Boost版本,而不是MySQL源代码发行版中包含的任何版本。

    • -DDOWNLOAD_BOOST =保龄球指定如果不在指定位置,是否下载Boost源代码。默认为

    • -DDOWNLOAD_BOOST_TIMEOUT =下载Boost库的超时时间(以秒为单位)。缺省值是600秒。

    例如,如果您通常在构建MySQL时将对象输出放在梁式引线掐你可以用Boost像这样构建:

    Mkdir BLD CD BLD cmake ..在-DWITH_BOOST -DDOWNLOAD_BOOST = = $ HOME / my_boost

    这将导致Boost被下载到my_boost目录下的目录。如果已经有所需的Boost版本,则不进行下载。如果所需的Boost版本发生变化,则下载更新的版本。

    如果Boost已经安装在本地,并且编译器自己查找Boost头文件,则可能没有必要指定上述内容CMake选项。但是,如果MySQL所需的Boost版本发生了变化,而本地安装的版本没有升级,则可能会出现构建问题。使用CMake选项应该会给您一个成功的构建。

    使用上述允许Boost下载到指定位置的设置,当所需的Boost版本发生更改时,您需要删除梁式引线掐文件夹,重新创建它,并执行cmake一步了。否则,新的Boost版本可能无法下载,编译可能会失败。

  • -DWITH_CLIENT_PROTOCOL_TRACING =保龄球

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

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

    参见WITH_TEST_TRACE_PLUGIN选择。

  • -DWITH_CURL =curl_type

    的位置旋度图书馆。curl_type可以系统(使用系统旋度类的路径名)或旋度图书馆。

  • -DWITH_DEBUG =保龄球

    是否包含调试支持。

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

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

    启用WITH_DEBUG还启用了调试同步。该工具用于测试和调试。在编译时,调试同步在运行时默认是禁用的。要启用它,请启动mysqld——debug-sync-timeout =N选项,N超时值大于0。(默认值为0,表示禁用调试同步。)N成为各个同步点的默认超时。

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

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

  • -DWITH_DEFAULT_FEATURE_SET =保龄球

    是否使用的标志cmake / build_configurations / feature_set.cmake.此选项在MySQL 8.0.22中被删除。

  • -DWITH_EDITLINE =价值

    哪一个libedit/editline要使用的库。允许的值为捆绑(默认值)和系统

  • -DWITH_GMOCK =path_name

    googlemock分发版的路径,用于谷歌基于测试的单元测试。选项值是分发Zip文件的路径。或者,设置WITH_GMOCK环境变量的路径名。它也可以使用-DENABLE_10bet手机中文版DOWNLOADS = 1,因此CMake10bet手机中文版从GitHub下载发行版。

    如果您构建MySQL时不使用谷歌基于测试的单元测试(通过配置不使用WITH_GMOCK),CMake显示一条消息,指示如何下载它。

    从MySQL 8.0.25开始,MySQL源代码发行版捆绑了谷歌测试源代码,用于运行基于谷歌测试的单元测试。因此,从那个版本开始WITH_GMOCK而且ENABLE_10bet手机中文版DOWNLOADSCMake选项将被删除,如果指定则忽略。

  • -DWITH_ICU = {icu_type|path_name

    MySQL使用Unicode国际组件(ICU)来支持正则表达式操作。的WITH_ICUoption指示要包含的ICU支持的类型或要使用的ICU安装的路径名。

    • icu_type可以是以下值之一:

      • 捆绑:使用与发行版绑定的ICU库。这是默认选项,也是Windows唯一支持的选项。

      • 系统:使用系统ICU库。

    • path_name是要使用的ICU安装的路径名。这可能比使用icu_type的价值系统因为它可以防止CMake检测和使用系统上安装的较旧或不正确的ICU版本。(做同样事情的另一种允许的方法是设置WITH_ICU系统并设置CMAKE_PREFIX_PATH选项path_name)。

  • -DWITH_INNODB_EXTRA_DEBUG =保龄球

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

    启用WITH_INNODB_EXTRA_DEBUG打开额外的InnoDB调试检查。此选项只能在以下情况下启用WITH_DEBUG启用。

  • -DWITH_INNODB_MEMCACHED =保龄球

    是否生成memcached共享库(libmemcached.so而且innodb_engine.so).

  • -DWITH_JEMALLOC =保龄球

    是否与-ljemalloc.如果启用,则内置malloc ()calloc ()realloc (),free ()例程被禁用。默认为

    WITH_JEMALLOC而且WITH_TCMALLOC是相互排斥的。

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

  • -DWITH_KEYRING_TEST =保龄球

    是否构建伴随的测试程序keyring_file插件。默认为.测试文件的源代码位于插件/密匙环/ keyring-test目录中。

  • -DWITH_LIBEVENT =字符串

    哪一个libevent要使用的库。允许的值为捆绑(默认),系统.在MySQL 8.0.21之前,如果指定系统,系统libevent库存在时使用,否则会发生错误。在MySQL 8.0.21及以上版本中,如果系统是指定的,而没有系统libevent库时,无论如何都会发生错误,而绑定的libevent不使用。

    libevent库需要由InnoDBmemcached, X插件,MySQL路由器。

  • -DWITH_LIBWRAP =保龄球

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

  • -DWITH_LOCK_ORDER =保龄球

    是否启用LOCK_ORDER工具。默认情况下,该选项是禁用的,服务器构建不包含任何工具。如果工具是启用的,LOCK_ORDER工具是可用的,可以按照中所述使用LOCK_ORDER工具

    请注意

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

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

  • -DWITH_LSAN =保龄球

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

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

  • -DWITH_LTO =保龄球

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

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

  • -DWITH_LZ4 =lz4_type

    WITH_LZ4的来源。zlib支持:

    • 捆绑:使用lz4库与发行版绑定。这是默认设置。

    • 系统:使用系统lz4图书馆。如果WITH_LZ4设置为这个值,lz4_decompress没有构建实用程序。在本例中,是系统lz4可以使用Command代替。

  • -DWITH_LZMA =lzma_type

    要包含的LZMA库支持的类型。lzma_type可以是以下值之一:

    • 捆绑:使用与发行版捆绑的LZMA库。这是默认设置。

    • 系统:使用系统LZMA库。

    此选项在MySQL 8.0.16中被删除。

  • -DWITH_MECAB ={禁用系统| |path_name

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

    相关信息请参见MeCab全文解析器插件

  • -DWITH_MSAN =保龄球

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

    如果启用了该选项,那么所有链接到MySQL的库也必须在启用该选项的情况下进行编译。

  • -DWITH_MSCRT_DEBUG =保龄球

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

  • -DWITH_MYSQLX =保龄球

    是否构建支持X插件。默认的.看到使用MySQL作为文档存储

  • -DWITH_NUMA =保龄球

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

    • 如果没有NUMA选项(通常情况),CMake正常继续,只产生这样的警告:NUMA库丢失或所需版本不可用

    • -DWITH_NUMA =对CMakeNUMA库丢失或所需版本不可用

  • -DWITH_PROTOBUF =protobuf_type

    要使用哪个协议缓冲区包。protobuf_type可以是以下值之一:

    • 捆绑:使用发行版附带的软件包。这是默认设置。有选择地使用INSTALL_PRIV_LIBDIR修改Protobuf动态库目录。

    • 系统:使用系统自带的安装包。

    其他值将被忽略,并返回到捆绑

  • -DWITH_RAPID =保龄球

    是否构建快速开发周期插件。当启用时,快速目录在包含这些插件的构建树中创建。当禁用时,no快速目录在构建树中创建。默认为,除非快速目录从源树中删除,在这种情况下,默认值变为

  • -DWITH_RAPIDJSON =rapidjson_type

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

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

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

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

  • -DWITH_RE2 =re2_type

    要包含的RE2库支持的类型。re2_type可以是以下值之一:

    • 捆绑:使用与发行版捆绑的RE2库。这是默认设置。

    • 系统:使用系统RE2库。

    从MySQL 8.0.18开始,MySQL不再使用RE2库,这个选项被删除了。

  • -DWITH_ROUTER =保龄球

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

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

  • -DWITH_SSL = {ssl_type|path_name

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

    • ssl_type可以是以下值之一:

      • 系统:使用系统OpenSSL库。这是默认设置。

        在macOS和Windows上,使用系统配置MySQL构建,就像调用CMake一样path_name指向手动安装的OpenSSL库。这是因为它们没有系统SSL库。在macOS,编译安装openssl安装到/usr/local/opt/openssl系统能找到它。在Windows上,它会检查% ProgramFiles % / OpenSSL% ProgramFiles % / OpenSSL-Win32% ProgramFiles % / OpenSSL-Win64C: / OpenSSLC: / OpenSSL-Win32,C: / OpenSSL-Win64

      • 是的这是…的同义词系统

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

    有关配置SSL库的其他信息,请参见配置SSL库支持

  • -DWITH_SYSTEMD =保龄球

    是否启用安装systemd支持文件。缺省情况下,禁用此选项。启用时,将安装systemd支持文件,以及mysqld_safe以及System V初始化脚本未安装。在systemd不可用的平台上,启用WITH_SYSTEMD的错误CMake

    有关使用systemd的更多信息,请参见使用systemd管理MySQL服务器.该部分还包括关于指定先前在(mysqld_safe)选项组。因为mysqld_safe在使用systemd时不安装,因此必须以另一种方式指定这些选项。

  • -DWITH_SYSTEM_LIBS =保龄球

    该选项用作选项来设置系统的值CMake未显式设置的选项:WITH_CURLWITH_EDITLINEWITH_ICUWITH_LIBEVENTWITH_LZ4WITH_LZMAWITH_PROTOBUFWITH_RE2WITH_SSLWITH_ZLIBWITH_ZSTD

  • -DWITH_SYSTEMD_DEBUG =保龄球

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

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

  • -DWITH_TCMALLOC =保龄球

    是否与-ltcmalloc.如果启用,则内置malloc ()calloc ()realloc (),free ()例程被禁用。默认为

    WITH_TCMALLOC而且WITH_JEMALLOC是相互排斥的。

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

  • -DWITH_TEST_TRACE_PLUGIN =保龄球

    是否构建测试协议跟踪客户端插件(参见使用测试协议跟踪插件).缺省情况下,禁用此选项。启用此选项不会产生任何效果,除非WITH_CLIENT_PROTOCOL_TRACING选项已启用。如果MySQL配置时启用了这两个选项,则libmysqlclient客户端库是用内置的测试协议跟踪插件构建的,所有标准的MySQL客户端都会加载这个插件。然而,即使启用了test插件,默认情况下也没有任何效果。使用环境变量提供对插件的控制;看到使用测试协议跟踪插件

    请注意

    启用WITH_TEST_TRACE_PLUGIN选项,因为每次只能加载一个这样的插件,如果试图加载第二个插件,则会出现错误。如果您已经在构建MySQL时启用了测试协议跟踪插件,以查看它是如何工作的,那么在使用自己的插件之前,必须在不使用它的情况下重新构建MySQL。

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

  • -DWITH_TSAN =保龄球

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

  • -DWITH_UBSAN =保龄球

    是否为支持未定义行为杀毒器的编译器启用该杀毒器。默认是关闭的。

  • -DWITH_UNIT_TESTS ={|关闭}

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

  • -DWITH_UNIXODBC =1

    为Connector/ODBC启用unixODBC支持。

  • -DWITH_VALGRIND =保龄球

    是否在Valgrind头文件中编译,这将向MySQL代码公开Valgrind API。默认为

    要生成支持valgrind的调试版本,-DWITH_VALGRIND = 1通常与-DWITH_DEBUG = 1.看到构建调试配置

  • -DWITH_ZLIB =zlib_type

    某些特性要求服务器构建时带有压缩库支持,例如压缩()而且解压()函数,以及客户机/服务器协议的压缩。的WITH_ZLIB的来源。zlib支持:

    • 捆绑:使用zlib库与发行版绑定。这是默认设置。

    • 系统:使用系统zlib图书馆。如果WITH_ZLIB设置为这个值,zlib_decompress没有构建实用程序。在本例中,是系统openssl zlib可以使用Command代替。

  • -DWITH_ZSTD =zstd_type

    的连接压缩zstd算法(见连接压缩控制)要求服务器是用zstd库的支持。的WITH_ZSTD的来源。zstd支持:

    • 捆绑:使用zstd库与发行版绑定。这是默认设置。

    • 系统:使用系统zstd图书馆。

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

编译器标志

  • -DCMAKE_C_FLAGS = "旗帜

    C编译器的标志。

  • -DCMAKE_CXX_FLAGS = "旗帜

    c++编译器的标志。

  • -DWITH_DEFAULT_COMPILER_OPTIONS =保龄球

    是否使用的标志cmake / build_configurations / compiler_options.cmake

    请注意

    所有优化标志都是由MySQL构建团队仔细选择和测试的。忽略它们可能会导致意想不到的结果,这样做的风险由您自己承担。

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

如果你设置了影响优化的标志(- o数量),你必须设置CMAKE_C_FLAGS_build_type和/或CMAKE_CXX_FLAGS_build_type选项,build_type对应于CMAKE_BUILD_TYPE价值。要为默认构建类型指定不同的优化(RelWithDebInfo)设置CMAKE_C_FLAGS_RELWITHDEBINFO而且CMAKE_CXX_FLAGS_RELWITHDEBINFO选项。例如,在Linux上编译o3对于调试符号,可以这样做:

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

CMake NDB集群编译选项

在构建具有NDB Cluster支持的MySQL 8.0源代码时,可以使用以下选项。

  • -DMEMCACHED_HOME =dir_name

    使用安装在指示的系统目录中的memcached(版本1.6或更高)执行构建dir_name.在构建中使用的来自此安装的文件包括memcached二进制文件、头文件和库,以及memcached_utilities库和头文件engine_testapp.h

    构建时必须不设置此选项ndbmemcache使用绑定的memcached源(WITH_BUNDLED_MEMCACHED选项);换句话说,默认情况下使用绑定的源代码)。

    而额外的CMake选项,例如SASL授权和提供dtrace支持在编译时可用memcached的外部源中,这些选项目前没有启用memcached与NDB集群绑定的源代码。

  • -NDB_UTILS_LINK_DYNAMIC ={|关闭}

    控制是否NDB实用程序,如ndb_drop_table都与ndbclient静态()或动态();(静态链接)是默认的。通常在构建这些时使用静态链接,以避免与LD_LIBRARY_PATH,或当多个版本ndbclient安装。此选项用于创建Docker映像,也可能用于其他需要精确控制目标环境并希望减少映像大小的情况。

    在NDB 8.0.22中新增。

  • -DWITH_BUNDLED_LIBEVENT ={|关闭}

    使用libevent在构建NDB集群时包含在NDB集群源代码中ndbmemcached支持。默认启用。导致系统的libevent被代替。

  • -DWITH_BUNDLED_MEMCACHED ={|关闭}

    构建包含在NDB Cluster源树中的memcached源,然后在构建ndbmemcache引擎。在这种情况下,制作安装地方,memcached安装中的二进制文件箱子目录,以及ndbmemcache引擎共享库文件ndb_engine.so在安装过程中自由目录中。

    该选项默认为ON。

  • -DWITH_CLASSPATH =路径

    设置用于构建Java NDB集群连接器的类路径。默认为空。如果发生以下情况,则忽略此选项-DWITH_NDB_JAVA =了使用。

  • -DWITH_ERROR_INSERT ={|关闭}

    控件中启用错误注入NDB内核。只作测试用途;不打算用于构建生产二进制文件。默认为

  • -DWITH_NDBCLUSTER_STORAGE_ENGINE ={|关闭}

    这是一个别名WITH_NDBCLUSTER

  • -DWITH_NDBCLUSTER ={|关闭}

    的构建和链接支持NDBNDBCLUSTER)储存发动机在mysqld.默认为

  • -DWITH_NDBMTD ={|关闭}

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

  • -DWITH_NDB_BINLOG ={|关闭}

    中的默认启用二进制日志记录mysqld使用此选项构建。默认为ON。

  • -DWITH_NDB_DEBUG ={|关闭}

    启用构建NDB集群二进制文件的调试版本。默认为OFF。

  • -DWITH_NDB_JAVA ={|关闭}

    启用使用Java支持构建NDB集群,包括ClusterJ

    该选项默认为ON。如果您不希望编译支持Java的NDB集群,您必须通过指定显式禁用它-DWITH_NDB_JAVA =了运行时CMake.否则,如果找不到Java,则构建配置失败。

  • -DWITH_NDB_PORT =港口

    NDB集群管理服务器(ndb_mgmd)就是用来使用这个的港口默认情况下。如果未设置此选项,则生成的管理服务器默认尝试使用端口1186。

  • -DWITH_NDB_TEST ={|关闭}

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

  • -DWITH_PLUGIN_NDBCLUSTER ={|关闭}

    别名WITH_NDBCLUSTER