mysql源码安装第二部

MySQL源配置选项

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

shell> cmake . -LH
shell> ccmake .

您还可以使用某些环境变量影响CMake请参见 第4.9节“MySQL程序环境变量”

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

表2.12 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    
DISABLE_PSI_COND 排除性能模式条件仪器 OFF 5.7.3  
DISABLE_PSI_FILE 排除性能模式文件检测 OFF 5.7.3  
DISABLE_PSI_IDLE 排除性能模式空闲测试 OFF 5.7.3  
DISABLE_PSI_MEMORY 排除性能模式存储器测试 OFF 5.7.3  
DISABLE_PSI_METADATA 排除性能模式元数据测试 OFF 5.7.3  
DISABLE_PSI_MUTEX 排除性能模式互斥检测 OFF 5.7.3  
DISABLE_PSI_RWLOCK 排除性能模式rwlock仪器 OFF 5.7.3  
DISABLE_PSI_SOCKET 排除性能模式套接字工具 OFF 5.7.3  
DISABLE_PSI_SP 排除性能模式存储的程序工具 OFF 5.7.3  
DISABLE_PSI_STAGE 排除性能模式阶段仪器 OFF 5.7.3  
DISABLE_PSI_STATEMENT 排除性能模式语句工具 OFF 5.7.3  
DISABLE_PSI_STATEMENT_DIGEST 排除性能模式statement_digest工具 OFF 5.7.3  
DISABLE_PSI_TABLE 排除性能模式表工具 OFF 5.7.3  
DOWNLOAD_BOOST 是否下载Boost库 OFF 5.7.5  
DOWNLOAD_BOOST_TIMEOUT 下载Boost库超时(秒) 600 5.7.6  
ENABLED_LOCAL_INFILE 是否启用LOCAL用于LOAD DATA INFILE OFF    
ENABLED_PROFILING 是否启用查询分析代码 ON    
ENABLE_DEBUG_SYNC 是否启用Debug Sync支持 ON   5.7.1
ENABLE_DOWNLOADS 是否下载可选文件 OFF    
ENABLE_DTRACE 是否包括DTrace支持      
ENABLE_GCOV 是否包括gcov支持      
ENABLE_GPROF 启用gprof(仅优化Linux版本) OFF    
FORCE_UNSUPPORTED_COMPILER 是否允许不支持的编译器 OFF 5.7.5  
IGNORE_AIO_CHECK 用-DBUILD_CONFIG = mysql_release,忽略libaio检查 OFF    
INNODB_PAGE_ATOMIC_REF_COUNT 启用或禁用原子页面引用计数 ON 5.7.4 5.7.5
INSTALL_BINDIR 用户可执行文件目录 PREFIX/bin    
INSTALL_DOCDIR 文档目录 PREFIX/docs    
INSTALL_DOCREADMEDIR README文件目录 PREFIX    
INSTALL_INCLUDEDIR 头文件目录 PREFIX/include    
INSTALL_INFODIR Info文件目录 PREFIX/docs    
INSTALL_LAYOUT 选择预定义的安装布局 STANDALONE    
INSTALL_LIBDIR 库文件目录 PREFIX/lib    
INSTALL_MANDIR 手动页面目录 PREFIX/man    
INSTALL_MYSQLKEYRINGDIR keyring_file插件数据文件的目录 platform specific 5.7.11  
INSTALL_MYSQLSHAREDIR 共享数据目录 PREFIX/share    
INSTALL_MYSQLTESTDIR mysql-test目录 PREFIX/mysql-test    
INSTALL_PKGCONFIGDIR mysqlclient.pc pkg-config文件的目录 INSTALL_LIBDIR/pkgconfig 5.7.9  
INSTALL_PLUGINDIR 插件目录 PREFIX/lib/plugin    
INSTALL_SBINDIR 服务器可执行文件 PREFIX/bin    
INSTALL_SCRIPTDIR 脚本目录 PREFIX/scripts    
INSTALL_SECURE_FILE_PRIVDIR secure_file_priv默认值 platform specific 5.7.6  
INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR libmysqld的secure_file_priv默认值   5.7.8  
INSTALL_SHAREDIR aclocal / mysql.m4安装目录 PREFIX/share    
INSTALL_SQLBENCHDIR sql-bench目录 PREFIX   5.7.8
INSTALL_SUPPORTFILESDIR 额外的支持文件目录 PREFIX/support-files    
MAX_INDEXES 每个表的最大索引数 64 5.7.1  
MUTEX_TYPE InnoDB互斥体类型 event 5.7.2  
MYSQLX_TCP_PORT X插件使用的TCP / IP端口号 33060 5.7.17  
MYSQLX_UNIX_ADDR X插件使用的Unix套接字文件 /tmp/mysqlx.sock 5.7.15  
MYSQL_DATADIR 数据目录      
MYSQL_MAINTAINER_MODE 是否启用MySQL维护者特定的开发环境 OFF    
MYSQL_PROJECT_NAME Windows / OS X项目名称 MySQL    
MYSQL_TCP_PORT TCP / IP端口号 3306    
MYSQL_UNIX_ADDR Unix套接字文件 /tmp/mysql.sock    
ODBC_INCLUDES ODBC包含目录      
ODBC_LIB_DIR ODBC库目录      
OPTIMIZER_TRACE 是否支持优化器跟踪      
SUNPRO_CXX_LIBRARY Solaris 10+上的客户端链接库   5.7.5  
SYSCONFDIR 选项文件目录      
SYSTEMD_PID_DIR 系统下PID文件的目录 /var/run/mysqld 5.7.6  
SYSTEMD_SERVICE_NAME systemd下的MySQL服务名称 mysqld 5.7.6  
TMPDIR tmpdir默认值   5.7.4  
WIN_DEBUG_NO_INLINE 是否禁用功能内联 OFF 5.7.6  
WITHOUT_SERVER 不要建立服务器 OFF    
WITHOUT_xxx_STORAGE_ENGINE 从构建中排除存储引擎xxx      
WITH_ASAN 启用AddressSanitizer OFF 5.7.3  
WITH_AUTHENTICATION_LDAP 是否报告错误,如果LDAP认证插件无法构建 OFF 19年7月5日  
WITH_AUTHENTICATION_PAM 构建PAM验证插件 OFF    
WITH_BOOST Boost库源的位置   5.7.5  
WITH_CLIENT_PROTOCOL_TRACING 构建客户端协议跟踪框架 ON 5.7.2  
WITH_DEBUG 是否包括调试支持 OFF    
WITH_DEFAULT_COMPILER_OPTIONS 是否使用默认编译器选项 ON    
WITH_DEFAULT_FEATURE_SET 是否使用默认功能集 ON    
WITH_EDITLINE 哪个libedit / editline库要使用 bundled 5.7.2  
WITH_EMBEDDED_SERVER 是否构建嵌入式服务器 OFF    
WITH_EMBEDDED_SHARED_LIBRARY 是否构建共享嵌入式服务器库 OFF 5.7.4  
WITH_EXTRA_CHARSETS 要包括哪些额外的字符集 all    
WITH_INNODB_EXTRA_DEBUG 是否包含对InnoDB的额外调试支持。 OFF 5.7.2  
WITH_INNODB_MEMCACHED 是否生成memcached共享库。 OFF    
WITH_KEYRING_TEST 构建密钥环测试程序 OFF 5.7.11  
WITH_LIBEVENT 哪个libevent库要使用 bundled    
WITH_LIBWRAP 是否包含libwrap(TCP包装)支持 OFF    
WITH_LZ4 LZ4支持类型 bundled 5.7.14  
WITH_MECAB 编译MeCab   5.7.6  
WITH_MSAN 启用MemorySanitizer OFF 5.7.4  
WITH_MSCRT_DEBUG 启用Visual Studio CRT内存泄漏跟踪 OFF 5.7.6  
WITH_NDBCLUSTER 构建NDB存储引擎; WITH_NDBCLUSTER_STORAGE_ENGINE的别名 ON    
WITH_NDBCLUSTER_STORAGE_ENGINE 构建NDB存储引擎 ON    
WITH_NDB_TEST 包括NDB API测试程序。 OFF    
WITH_NUMA 设置NUMA内存分配策略   5.7.17  
WITH_PROTOBUF 哪个协议缓冲区包使用 bundled 5.7.12  
WITH_RAPID 是否构建快速的开发周期插件 ON 5.7.12  
WITH_SSL SSL支持类型 bundled    
WITH_SYSTEMD 启用systemd支持文件的安装 OFF 5.7.6  
WITH_TEST_TRACE_PLUGIN 构建测试协议跟踪插件 OFF 5.7.2  
WITH_UBSAN 启用未定义的行为消毒剂 OFF 5.7.6  
WITH_UNIT_TESTS 使用单元测试编译MySQL ON    
WITH_UNIXODBC 启用unixODBC支持 OFF    
WITH_VALGRIND 是否在Valgrind头文件中编译 OFF    
WITH_ZLIB zlib支持类型 bundled    
WITH_xxx_STORAGE_ENGINE 将存储引擎xxx静态编译到服务器中      
    默认 介绍 删除

此表是用cmake安装预编译的参数可以根据自己的需求选择
列举几个常用的选项
一般选项
  • -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包操作是否生成多个安装包文件或单个文件。如果禁用,该操作将生成多个安装包文件,如果您只想安装完整MySQL安装的一部分,这可能很有用。如果启用,它将生成一个文件来安装所有内容。

安装布局选项

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

  • -DCMAKE_INSTALL_PREFIX=dir_name

    安装基本目录。

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

  • -DINSTALL_BINDIR=dir_name

    在哪里安装用户程序。

  • -DINSTALL_DOCDIR=dir_name

    哪里安装文档。

  • -DINSTALL_DOCREADMEDIR=dir_name

    哪里安装README文件

  • -DINSTALL_INCLUDEDIR=dir_name

    在哪里安装头文件。

  • -DINSTALL_INFODIR=dir_name

    在哪里安装信息文件。

  • -DINSTALL_LAYOUT=name

    选择预定义的安装布局:

    • STANDALONE:与用于.tar.gz.zip 包的布局相同 这是默认值。

    • RPM:布局类似于RPM包。

    • SVR4:Solaris包布局。

    • DEB:DEB封装布局(实验)。

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

    shell> cmake . -DINSTALL_LAYOUT=SVR4 -DMYSQL_DATADIR=/var/mysql/data

    从MySQL 5.7.6开始,该 INSTALL_LAYOUT值决定secure_file_priv系统和 keyring_file_data系统变量的默认值 请参阅第5.1.5节“服务器系统变量”中对这些变量的描述

  • -DINSTALL_LIBDIR=dir_name

    哪里安装库文件

  • -DINSTALL_MANDIR=dir_name

    在哪里安装手册页。

  • -DINSTALL_MYSQLKEYRINGDIR=dir_path

    用作keyring_file插件数据文件位置的默认目录 默认值是特定于平台的,取决于CMake选项的值 请参见第5.1.5节“服务器系统变量”中的系统变量的描述 INSTALL_LAYOUT keyring_file_data

    此选项已添加到MySQL 5.7.11中。

  • -DINSTALL_MYSQLSHAREDIR=dir_name

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

  • -DINSTALL_MYSQLTESTDIR=dir_name

    在哪里安装mysql-test 目录。从MySQL 5.7.2开始,要禁止安装此目录,请将该选项显式设置为空值(-DINSTALL_MYSQLTESTDIR=)。

  • -DINSTALL_PKGCONFIGDIR=dir_name

    要安装pkg-configmysqlclient.pc使用文件 的目录 默认值是 ,除非 有结束 ,在这种情况下被首先删除。 INSTALL_LIBDIR/pkgconfigINSTALL_LIBDIR/mysql

    此选项已添加到MySQL 5.7.9中。

  • -DINSTALL_PLUGINDIR=dir_name

    插件目录的位置。

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

  • -DINSTALL_SBINDIR=dir_name

    在哪里安装mysqld服务器。

  • -DINSTALL_SCRIPTDIR=dir_name

    在哪里安装mysql_install_db

  • -DINSTALL_SECURE_FILE_PRIVDIR=dir_name

    secure_file_priv系统变量 的默认值 默认值是特定于平台的,取决于CMake选项的值 请参见第5.1.5节“服务器系统变量”中的系统变量的描述 。 INSTALL_LAYOUTsecure_file_priv

    此选项已添加到MySQL 5.7.6中。要设置libmysqld嵌入式服务器的值 ,请使用 INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR

  • -DINSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR=dir_name

    嵌入式服务器 的secure_file_priv系统变量的默认值 libmysqld此选项已添加到MySQL 5.7.8中。

    注意

    libmysqldMySQL 5.7.19起,嵌入式服务器库已被弃用,MySQL 8.0将被删除。

  • -DINSTALL_SHAREDIR=dir_name

    在哪里安装aclocal/mysql.m4

  • -DINSTALL_SQLBENCHDIR=dir_name

    在哪里安装sql-bench目录。要禁止安装此目录,请将该选项显式设置为空值(-DINSTALL_SQLBENCHDIR=)。

    从MySQL 5.7.8开始,该sql-bench 目录不再包含在MYSQL发行版中,所以该 INSTALL_SQLBENCHDIR=选项也被删除。

  • -DINSTALL_SUPPORTFILESDIR=dir_name

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

  • -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_namefile_name

  • -DSYSTEMD_PID_DIR=dir_name

    当MySQL由systemd管理时,创建PID文件的目录的名称。默认值为 /var/run/mysqld这可能会根据INSTALL_LAYOUT价值隐含地改变 

    忽略此选项,除非 WITH_SYSTEMD已启用。它被添加到MySQL 5.7.6中。

  • -DSYSTEMD_SERVICE_NAME=name

    当MySQL由systemd管理时使用的MySQL服务的名称。默认值为mysqld这可能会根据INSTALL_LAYOUT价值隐含地改变 

    忽略此选项,除非 WITH_SYSTEMD已启用。它被添加到MySQL 5.7.6中。

  • -DTMPDIR=dir_name

    用于tmpdir系统变量的默认位置 如果未指定,则该值默认为P_tmpdir in <stdio.h>。 此选项已添加到MySQL 5.7.4中。

存储引擎选项

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

InnoDB, MyISAM, MERGE, MEMORY,和 CSV发动机是强制性的(总是编译到服务器)和无需显式安装。

要将存储引擎静态编译到服务器中,请使用 一些可允许的值 , ,  (), 分区支持),和 (性能模式;这仅适用的MySQL 5.7.9之前,在该点处的性能模式变为强制性的)。例子: -DWITH_engine_STORAGE_ENGINE=1engineARCHIVEBLACKHOLEEXAMPLEFEDERATEDNDBNDBCLUSTERNDBPARTITIONPERFSCHEMA

-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
注意

WITH_NDBCLUSTER_STORAGE_ENGINE仅在使用NDB群集源构建NDB群集时才受支持。它不能用于在其他MySQL源代码树或发行版中启用群集支持。在NDB群集源分发中,默认启用。有关详细信息,请参见 第21.2.2.4节“在Linux上从源构建NDB群集”和 第21.2.3.2节“在Windows上从源编译和安装NDB群集”

注意

从MySQL 5.7.9起,如果不支持性能架构,则无法进行编译。 如果希望在没有特定类型的仪器的情况下编译,可以使用以下CMake选项进行编译

DISABLE_PSI_COND
DISABLE_PSI_FILE
DISABLE_PSI_IDLE
DISABLE_PSI_MEMORY
DISABLE_PSI_METADATA
DISABLE_PSI_MUTEX
DISABLE_PSI_PS
DISABLE_PSI_RWLOCK
DISABLE_PSI_SOCKET
DISABLE_PSI_SP
DISABLE_PSI_STAGE
DISABLE_PSI_STATEMENT
DISABLE_PSI_STATEMENT_DIGEST
DISABLE_PSI_TABLE
DISABLE_PSI_THREAD
DISABLE_PSI_TRANSACTION

例如,要在不使用互调测试的情况下进行编译,请使用该-DDISABLE_PSI_MUTEX=1选项配置MySQL 

从MySQL 5.7.4开始,要从构建中排除存储引擎,请使用 例子: -DWITH_engine_STORAGE_ENGINE=0

-DWITH_EXAMPLE_STORAGE_ENGINE=0
-DWITH_FEDERATED_STORAGE_ENGINE=0
-DWITH_PARTITION_STORAGE_ENGINE=0

在MySQL 5.7.4之前,要从构建中排除存储引擎,请使用 (该语法也适用于5.7.4或更高版本,但 优选。)示例: -DWITHOUT_engine_STORAGE_ENGINE=1-DWITH_engine_STORAGE_ENGINE=0

-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西欧)字符集。

    charset_name可以是一种 binaryarmscii8, asciibig5, cp1250cp1251, cp1256cp1257, cp850cp852, cp866cp932, dec8eucjpms, euckrgb2312, gbkgeostd8, greekhebrew, hp8keybcs2, koi8rkoi8u, latin1latin2, latin5latin7, maccemacroman, sjisswe7, tis620ucs2, ujisutf8, utf8mb4utf16, utf16leutf32cmake/character_sets.cmake文件中列出了允许的字符集 作为值CHARSETS_AVAILABLE

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

  • -DDEFAULT_COLLATION=collation_name

    服务器排序规则。默认情况下,MySQL使用 latin1_swedish_ci使用该 SHOW COLLATION语句来确定哪些归类可用于每个字符集。

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

  • -DDISABLE_PSI_COND=bool

    是否排除性能模式条件检测。 默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_FILE=bool

    是否排除Performance Schema文件检测。 默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_IDLE=bool

    是否排除Performance Schema空闲工具。默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_MEMORY=bool

    是否排除性能模式存储器检测。默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_METADATA=bool

    是否排除Performance Schema元数据工具。 默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_MUTEX=bool

    是否排除性能模式互斥检测。 默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_RWLOCK=bool

    是否排除Performance Schema rwlock工具。 默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_SOCKET=bool

    是否排除Performance Schema套接字工具。默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_SP=bool

    是否排除Performance Schema存储的程序工具。默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_STAGE=bool

    是否排除Performance Schema阶段工具。 默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_STATEMENT=bool

    是否排除性能模式语句工具。 默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_STATEMENT_DIGEST=bool

    是否排除Performance Schema statement_digest工具。默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDISABLE_PSI_TABLE=bool

    是否排除Performance Schema表的工具。默认值为OFF (包括)。 此选项已添加到MySQL 5.7.3中。

  • -DDOWNLOAD_BOOST=bool

    是否下载Boost库。默认是 OFF此选项已添加到MySQL 5.7.5中。

    WITH_BOOST有关使用Boost的更多讨论, 请参阅该选项。

  • -DDOWNLOAD_BOOST_TIMEOUT=seconds

    下载Boost库的超时时间(秒)。默认值为600秒。此选项已添加到MySQL 5.7.6中。

    WITH_BOOST有关使用Boost的更多讨论, 请参阅该选项。

  • -DENABLE_DEBUG_SYNC=bool

    注意

    从MySQL 5.7.18起,ENABLE_DEBUG_SYNC删除并启用 WITH_DEBUG启用调试同步功能。

    是否将Debug Sync设备编译到服务器中。该设备用于测试和调试。此选项默认启用,但没有任何效果,除非MySQL配置了启用调试。如果启用调试,并且要禁用调试同步,请使用 -DENABLE_DEBUG_SYNC=0

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

    从MySQL 5.7.8起,InnoDB在使用该WITH_DEBUG选项编译调试支持时,可以使用存储引擎的 同步调试检查 

    有关Debug Sync工具的描述以及如何使用同步点,请参阅 MySQL Internals:测试同步

  • -DENABLE_DOWNLOADS=bool

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

  • -DENABLE_DTRACE=bool

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

    此选项不推荐使用,因为在MySQL 5.7中不支持DTrace,在MySQL 8.0中已被删除。

  • -DENABLE_GCOV=bool

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

  • -DENABLE_GPROF=bool

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

  • -DENABLED_LOCAL_INFILE=bool

    此选项控制LOCALMySQL客户端库的编译默认 功能。因此,不明确安排的客户端LOCAL可以根据ENABLED_LOCAL_INFILEMySQL构建时指定设置禁用或启用功能 

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

    ENABLED_LOCAL_INFILE控制客户端LOCAL 功能的默认值对于服务器, local_infile系统变量控制服务器端LOCAL功能。要明确地使服务器拒绝或允许 LOAD DATA LOCAL语句(不管在构建时或运行时如何配置客户端程序和库) ,请分别启用具有 禁用或启用的mysqldlocal_infile。 local_infile也可以在运行时设置。请参见第6.1.6节“LOAD DATA LOCAL的安全问题”

  • -DENABLED_PROFILING=bool

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

  • -DFORCE_UNSUPPORTED_COMPILER=bool

    默认情况下,CMake检查支持的编译器的最低版本:Visual Studio 2013(Windows); GCC 4.4或Clang 3.3(Linux); Developer Studio 12.5(Solaris服务器); Developer Studio 12.2或GCC 4.4(Solaris客户端库); Clang 3.3(macOS),Clang 3.3(FreeBSD)。要禁用此检查,请使用 -DFORCE_UNSUPPORTED_COMPILER=ON此选项已添加到MySQL 5.7.5中。

  • -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(默认),使用可用的atomics跟踪获取和释放。对于不支持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,这使得该选项过时。

  • -DMAX_INDEXES=num

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

  • -DMYSQL_MAINTAINER_MODE=bool

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

  • -DMUTEX_TYPE=type

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

    • event:使用事件互斥体。这是默认值和原来的InnoDB 互斥体实现。

    • sys:在UNIX系统上使用POSIX互斥体。CRITICAL_SECTION在Windows上使用onjects(如果有)。

    • futex:使用Linux futexes而不是条件变量来调度等待线程。

  • -DMYSQLX_TCP_PORT=port_num

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

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

  • -DMYSQLX_UNIX_ADDR=file_name

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

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

  • -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内部:跟踪优化器

  • -DWIN_DEBUG_NO_INLINE=bool

    是否禁用Windows上的功能内联。默认值为off(内联启用)。此选项已添加到MySQL 5.7.6中。

  • -DWITH_ASAN=bool

    是否启用AddressSanitizer,支持它的编译器。默认是关闭。此选项已添加到MySQL 5.7.3中。

  • -DWITH_AUTHENTICATION_LDAP=bool

    如果无法构建LDAP验证插件,是否报告错误:

    • 如果此选项被禁用(默认),则如果找到所需的头文件和库,则会构建LDAP插件。 如果没有,CMake会显示一个关于它的注释。

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

    有关LDAP认证的信息,请参见 第6.5.1.8节“LDAP可插拔认证”。 此选项已添加到MySQL 5.7.19中。

  • -DWITH_AUTHENTICATION_PAM=bool

    是否构建PAM认证插件,用于包含此插件的源代码树。 (见 第6.5.1.6节“PAM可插拔认证”)从MySQL 5.7.2开始,如果指定了该选项,并且插件无法编译,则构建将失败。

  • -DWITH_BOOST=path_name

    从MySQL 5.7.5开始,需要Boost库构建MySQL。这些CMake选项启用对库源位置的控制,以及是否自动下载它:

    • -DWITH_BOOST=path_name 指定Boost库目录位置。也可以通过设置BOOST_ROOT或 WITH_BOOST环境变量来指定Boost位置 

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

    • -DDOWNLOAD_BOOST=bool 指定是否下载Boost源(如果它不在指定位置)。默认是 OFF

    • -DDOWNLOAD_BOOST_TIMEOUT=seconds 下载Boost库的超时时间(以秒为单位)。默认值为600秒。

    例如,如果您通常构建MySQL将对象输出放在bldMySQL源代码树子目录中,则可以使用Boost构建:

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

    这会导致Boost被下载到 my_boost您的主目录下的目录中。如果所需的Boost版本已经存在,则不进行下载。如果所需的Boost版本更改,则下载较新版本。

    如果Boost已经在本地安装,并且您的编译器自行找到Boost头文件,则可能无需指定前面的CMake选项。但是,如果MySQL所需的Boost版本更改并且本地安装的版本尚未升级,则可能会有构建问题。使用CMake 选项可以让您成功构建。

  • -DWITH_CLIENT_PROTOCOL_TRACING=bool

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

    有关编写协议跟踪客户端插件的信息,请参见第28.2.4.11节“编写协议跟踪插件”

    另见该 WITH_TEST_TRACE_PLUGIN选项。

  • -DWITH_DEBUG=bool

    是否包括调试支持。

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

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

    从MySQL 5.7.18起,启用 WITH_DEBUG也启用调试同步。有关Debug Sync工具的描述以及如何使用同步点,请参阅 MySQL Internals:测试同步

  • -DWITH_DEFAULT_FEATURE_SET=bool

    是否使用标志 cmake/build_configurations/feature_set.cmake

  • -DWITH_EDITLINE=value

    要使用 哪个libediteditline库。允许的值为 bundled(默认值)和 system

    WITH_EDITLINE被添加到MySQL 5.7.2中。它取而代之WITH_LIBEDIT,已被删除。

  • -DWITH_EMBEDDED_SERVER=bool

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

    注意

    libmysqldMySQL 5.7.17起,嵌入式服务器库已被弃用,MySQL 8.0中将被删除。

  • -DWITH_EMBEDDED_SHARED_LIBRARY=bool

    是否构建共享libmysqld 嵌入式服务器库。 此选项已添加到MySQL 5.7.4中。

    注意

    libmysqldMySQL 5.7.17起,嵌入式服务器库已被弃用,MySQL 8.0中将被删除。

  • -DWITH_EXTRA_CHARSETS=name

    哪些额外的字符集包括:

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

    • complex:复杂的字符集。

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

  • -DWITH_INNODB_EXTRA_DEBUG=bool

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

    启用WITH_INNODB_EXTRA_DEBUG打开额外的InnoDB调试检查。只有启用此选项才能WITH_DEBUG启用。

  • -DWITH_INNODB_MEMCACHED=bool

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

  • -DWITH_KEYRING_TEST=bool

    是否构建keyring_file插件附带的测试程序 默认是 OFF测试文件源代码位于plugin/keyring/keyring-test 目录中。

    此选项已添加到MySQL 5.7.11中。

  • -DWITH_LIBEVENT=string

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

  • -DWITH_LIBWRAP=bool

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

  • -DWITH_LZ4=lz4_type

    WITH_LZ4表明zlib支持的来源

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

    • system:使用系统 LZ4库。如果 WITH_LZ4设置为此值,则不构建lz4_decompress实用程序。在这种情况下, 可以使用系统lz4命令。

  • -DWITH_MSAN=bool

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

    对于此选项,如果启用该功能,则所有连接到MySQL的库也必须已经通过启用该选项进行编译。

    此选项已添加到MySQL 5.7.4中。

  • -DWITH_MECAB={disabled|system|path_name}

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

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

  • -DWITH_MSCRT_DEBUG=bool

    是否启用Visual Studio CRT内存泄漏跟踪。默认是OFF此选项已添加到MySQL 5.7.6中。

  • -DWITH_NUMA=bool

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

    • 没有NUMA选项(正常情况下), CMake正常运行,仅产生此警告:缺少NUMA库或不可用版本

    • 随着-DWITH_NUMA=ON, CMake的中止与此错误:NUMA库丢失或需要的版本不可用

    此选项已添加到MySQL 5.7.17中。

  • -DWITH_PROTOBUF=protobuf_type

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

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

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

    其他值将被忽略,后退到 bundled

    此选项已添加到MySQL 5.7.12中。

  • -DWITH_RAPID=bool

    是否构建快速开发周期插件。启用后,将rapid在包含这些插件的构建树中创建一个目录。禁用时,不会 rapid在生成树中创建目录。默认值是ON,除非rapid目录从源代码树中删除 ,否则 默认值为OFF此选项已添加到MySQL 5.7.12中。

  • -DWITH_SSL={ssl_typepath_name}

    要包含的SSL支持类型或要使用的OpenSSL安装的路径名。

    • ssl_type 可以是以下值之一:

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

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

      • system:使用系统SSL库。

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

    有关使用SSL支持的信息,请参见 第6.4节“使用加密连接”

  • -DWITH_SYSTEMD=bool

    是否启用systemd支持文件的安装。默认情况下,此选项被禁用。 启用系统支持文件后, 将不安装mysqld_safe和System V初始化脚本等脚本。在systemd不可用的平台上,启用CMakeWITH_SYSTEMD 导致错误

    有关使用systemd的更多信息,请参见第2.5.10节“使用systemd 管理MySQL服务器”该部分还包括有关指定先前在[mysqld_safe]选项组中指定的 选项的信息。因为 在使用systemd时没有安装mysqld_safe,所以这个选项必须以另一种方式指定。

    此选项已添加到MySQL 5.7.6中。

  • -DWITH_TEST_TRACE_PLUGIN=bool

    是否构建测试协议跟踪客户端插件(请参见 第28.2.4.11.1节“使用测试协议跟踪插件”)。默认情况下,此选项被禁用。启用此选项不起作用,除非该WITH_CLIENT_PROTOCOL_TRACING 选项被启用。如果MySQL配置启用了这两个选项,libmysqlclient客户端库将内置测试协议跟踪插件构建,所有标准的MySQL客户端都会加载该插件。但是,即使启用测试插件,默认情况下也不起作用。使用环境变量来控制插件; 请参见第28.2.4.11.1节“使用测试协议跟踪插件”

    此选项已添加到MySQL 5.7.2中。

    注意

    不要启用 WITH_TEST_TRACE_PLUGIN,如果你想使用自己的协议跟踪的插件,因为只有一个这样的插件可以在同一时间被加载并出现错误尝试加载第二个选项。如果您已经使用启用了测试协议跟踪插件的MySQL来构建MySQL,以了解它是如何工作的,那么在使用自己的插件之前,您必须重新构建MySQL。

    有关编写跟踪插件的信息,请参见 第28.2.4.11节“编写协议跟踪插件”

  • -DWITH_UBSAN=bool

    是否为支持它的编译器启用Undefined Behavior Sanitizer。默认是关闭。此选项已添加到MySQL 5.7.6中。

  • -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库。

  • -DWITHOUT_SERVER=bool

    是否建立没有MySQL服务器。默认是 OFF,它构建服务器。

编译器标志
  • -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

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

    cmake -DWITHOUT_SERVER=1 -DSUNPRO_CXX_LIBRARY=Cstd

    此选项已添加到MySQL 5.7.5中。

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

当提供您自己的编译器标志时,您可能还需要指定 CMAKE_BUILD_TYPE

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

shell> mkdir bld
shell> cd bld
shell> 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

shell> cmake .. -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g" \
         -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g"
用于编译NDB群集的CMake选项

在使用NDB群集源构建NDB群集时,可以使用以下选项; 当使用MySQL 5.6 Server树中的源时,目前不支持它们。

  • -DMEMCACHED_HOME=dir_name

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

    ndbmemcache使用捆绑的memcached源(WITH_BUNDLED_MEMCACHED 选项) 构建时,必须使此选项不成立 换句话说,默认情况下使用捆绑的源)。

    虽然在从外部源编译memcached时,可以使用其他CMake选项(例如SASL授权和提供 dtrace支持),但是对于与NDB Cluster捆绑在一起memcached,这些选项目前尚未启用 

  • -DWITH_BUNDLED_LIBEVENT={ON|OFF}

    在使用支持libevent构建NDB群集时,请使用NDB群集源中包含的内容 ndbmemcached默认启用。 OFF导致系统 libevent被使用。

  • -DWITH_BUNDLED_MEMCACHED={ON|OFF}

    构建NDB群集源代码树中包含的memcached源,然后在构建ndbmemcache引擎时使用生成的memcached服务器在这种情况下, make install将 memcached二进制文件放在安装 bin目录中,并将 ndbmemcache引擎共享库文件 ndb_engine.so放在安装 lib目录中。

    此选项默认为ON。

  • -DWITH_CLASSPATH=path

    设置用于构建NDB Cluster Connector for Java的类路径。默认值为空。如果-DWITH_NDB_JAVA=OFF使用此选项将被忽略 

  • -DWITH_ERROR_INSERT={ON|OFF}

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

  • -DWITH_NDBCLUSTER_STORAGE_ENGINE={ON|OFF}

    构建并链接mysqld中的 NDB (NDBCLUSTER)存储引擎 默认是 。 ON

  • -DWITH_NDBCLUSTER={ON|OFF}

    这是一个别名 WITH_NDBCLUSTER_STORAGE_ENGINE

  • -DWITH_NDBMTD={ON|OFF}

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

  • -DWITH_NDB_BINLOG={ON|OFF}

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

  • -DWITH_NDB_DEBUG={ON|OFF}

    启用构建NDB群集二进制程序的调试版本。OFF。

  • -DWITH_NDB_JAVA={ON|OFF}

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

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

  • -DWITH_NDB_PORT=port

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

  • -DWITH_NDB_TEST={ON|OFF}

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


以上内容全部来自mysql官方文档


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值