的CMake程序在如何配置MySQL源代码发行版方面提供了很大的控制。控件上的选项通常可以完成此操作CMake命令行。有关支持的选项的信息CMake,在顶级源目录中运行以下命令之一:
cmake。-LH ccmake。
你也可以影响CMake使用某些环境变量。看到环境变量.
对于布尔选项,该值可以指定为1或在
启用该选项,或为0或从
禁用该选项。
许多选项配置编译时默认值,这些默认值可以在服务器启动时被覆盖。例如,CMAKE_INSTALL_PREFIX
,MYSQL_TCP_PORT
,MYSQL_UNIX_ADDR
选项,这些选项配置默认的安装基础目录位置、TCP/IP端口号和Unix套接字文件,可以在服务器启动时使用——basedir
,——港口
,——套接字
选项mysqld.在适用的情况下,配置选项描述指示了相应的mysqld启动选项。
以下部分提供关于CMake选项。
下表显示了可用的CMake选项。在
默认的
列,前缀
的值CMAKE_INSTALL_PREFIX
选项,该选项指定安装基目录。此值用作几个安装子目录的父位置。表4.1 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
包构建是否生成单个文件 从
DEFAULT_CHARSET
默认的服务器字符集 latin1
DEFAULT_COLLATION
默认的服务器排序规则 latin1_swedish_ci
DISABLE_PSI_COND
排除性能模式条件插装 从
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
排除性能模式事务检测 从
DOWNLOAD_BOOST
是否下载Boost库 从
DOWNLOAD_BOOST_TIMEOUT
下载Boost库的超时时间(以秒为单位) 600
ENABLED_LOCAL_INFILE
是否为LOAD DATA启用LOCAL 从
ENABLED_PROFILING
是否启用查询分析代码 在
ENABLE_10bet手机中文版DOWNLOADS
是否下载可选文件 从
ENABLE_DTRACE
是否包含DTrace支持 ENABLE_GCOV
是否包含gcov支持 ENABLE_GPROF
启用gprof(仅针对优化的Linux版本) 从
FORCE_UNSUPPORTED_COMPILER
是否允许不支持的编译器 从
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插件数据文件的目录 特定于平台的
5.7.11 INSTALL_MYSQLSHAREDIR
共享数据目录 前缀/分享
INSTALL_MYSQLTESTDIR
mysql-test目录 前缀/ mysql-test
INSTALL_PKGCONFIGDIR
mysqlclient的目录。PC pkg-config文件 INSTALL_LIBDIR / pkgconfig
INSTALL_PLUGINDIR
插件目录 前缀/ lib /插件
INSTALL_SBINDIR
服务器可执行目录 前缀/ bin
INSTALL_SCRIPTDIR
脚本目录 前缀/脚本
INSTALL_SECURE_FILE_PRIVDIR
Secure_file_priv默认值 特定于平台的
INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR
libmysqld的Secure_file_priv默认值 INSTALL_SHAREDIR
aclocal / mysql.m4在stallation directory 前缀/分享
INSTALL_SUPPORTFILESDIR
额外支持文件目录 前缀/支持文件
MAX_INDEXES
每个表的最大索引 64
MEMCACHED_HOME
memcached的路径 (没有)
MUTEX_TYPE
InnoDB互斥锁类型 事件
MYSQLX_TCP_PORT
X Plugin使用的TCP/IP端口号 33060
5.7.17 MYSQLX_UNIX_ADDR
X Plugin使用的Unix套接字文件 / tmp / mysqlx.sock
5.7.15 MYSQL_DATADIR
数据目录 MYSQL_MAINTAINER_MODE
是否启用MySQL特定维护人员的开发环境 从
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.7.19 SUNPRO_CXX_LIBRARY
Solaris 10+上的客户端链接库 SYSCONFDIR
选项文件目录 SYSTEMD_PID_DIR
systemd下PID文件的目录 /var/run/mysqld
SYSTEMD_SERVICE_NAME
systemd下的MySQL服务名称 mysqld
TMPDIR
Tmpdir默认值 WIN_DEBUG_NO_INLINE
是否禁用函数内联 从
WITHOUT_xxx_STORAGE_ENGINE
从构建中排除存储引擎xxx WITH_ASAN
使AddressSanitizer 从
WITH_ASAN_SCOPE
启用AddressSanitizer -fsanitize-address-use-after-scope Clang标志 从
5.7.21 WITH_AUTHENTICATION_LDAP
如果无法构建LDAP身份验证插件,是否报告错误 从
5.7.19 WITH_AUTHENTICATION_PAM
构建PAM身份验证插件 从
WITH_AWS_SDK
亚马逊网络服务软件开发包的位置 5.7.19 WITH_BOOST
Boost库源代码的位置 WITH_BUNDLED_LIBEVENT
在构建ndbmemcache时使用绑定的libevent 在
WITH_BUNDLED_MEMCACHED
在构建ndbmemcache时使用绑定的memcached 在
WITH_CLASSPATH
在为Java构建MySQL集群连接器时使用的类路径。Default是一个空字符串。 WITH_CLIENT_PROTOCOL_TRACING
构建客户端协议跟踪框架 在
WITH_CURL
curl库的位置 5.7.19 WITH_DEBUG
是否包含调试支持 从
WITH_DEFAULT_COMPILER_OPTIONS
是否使用默认编译器选项 在
WITH_DEFAULT_FEATURE_SET
是否使用默认特性集 在
WITH_EDITLINE
使用哪个libedit/editline库 捆绑
WITH_EMBEDDED_SERVER
是否构建嵌入式服务器 从
WITH_EMBEDDED_SHARED_LIBRARY
是否构建共享嵌入式服务器库 从
WITH_ERROR_INSERT
在NDB存储引擎中开启错误注入功能。不应用于构建用于生产的二进制文件。 从
WITH_EXTRA_CHARSETS
要包括哪些额外的字符集 所有
WITH_GMOCK
googlemock分发版的路径 WITH_INNODB_EXTRA_DEBUG
是否为InnoDB提供额外的调试支持。 从
WITH_INNODB_MEMCACHED
是否生成memcached共享库。 从
WITH_KEYRING_TEST
构建密匙环测试程序 从
5.7.11 WITH_LDAP
只供内部使用 5.7.29 WITH_LIBEVENT
使用哪个libevent库 捆绑
WITH_LIBWRAP
是否包含libwrap (TCP包装器)支持 从
WITH_LZ4
LZ4库支持的类型 捆绑
5.7.14 WITH_MECAB
编译MeCab WITH_MSAN
使MemorySanitizer 从
WITH_MSCRT_DEBUG
启用Visual Studio CRT内存泄漏跟踪 从
WITH_NDBAPI_EXAMPLES
构建API示例程序 从
WITH_NDBAPI_EXAMPLES_DEFAULT
构建API示例程序;如果需要,使用它来覆盖CMake策略 从
5.7.36 WITH_NDBCLUSTER
打造新db存储引擎;WITH_NDBCLUSTER_STORAGE_ENGINE的别名 在
WITH_NDBCLUSTER_STORAGE_ENGINE
构建新db存储引擎 在
WITH_NDBMTD
构建多线程数据节点。 在
WITH_NDB_BINLOG
mysqld默认启用二进制日志记录。 在
WITH_NDB_DEBUG
生成用于测试或故障排除的调试构建。 从
WITH_NDB_JAVA
启用Java和ClusterJ构建支持。默认启用。MySQL集群只支持。 在
WITH_NDB_PORT
使用此选项构建的管理服务器使用的默认端口。如果没有使用此选项来构建它,则管理服务器的默认端口是1186。 (没有)
WITH_NDB_TEST
包括NDB API测试程序。 从
WITH_NUMA
设置NUMA内存分配策略 5.7.17 WITH_PROTOBUF
使用哪个协议缓冲区包 捆绑
5.7.12 WITH_RAPID
是否构建快速开发周期插件 在
5.7.12 WITH_SASL
只供内部使用 5.7.29 WITH_SSL
SSL支持的类型 系统
WITH_SYSTEMD
启用systemd支持文件的安装 从
WITH_TEST_TRACE_PLUGIN
构建测试协议跟踪插件 从
WITH_UBSAN
启用未定义行为杀毒器 从
WITH_UNIT_TESTS
用单元测试编译MySQL 在
WITH_UNIXODBC
启用unixODBC支持 从
WITH_VALGRIND
是否在Valgrind头文件中编译 从
WITH_ZLIB
zlib支持的类型 捆绑
WITH_xxx_STORAGE_ENGINE
静态编译存储引擎xxx到服务器
-DBUILD_CONFIG = mysql_release
该选项使用与Oracle为官方MySQL发行版生成二进制发行版使用的相同构建选项配置源发行版。
要生成的构建类型:
RelWithDebInfo
:开启优化并生成调试信息。这是默认的MySQL构建类型。调试
:关闭优化,并生成调试信息。的情况下也使用此构建类型WITH_DEBUG
选项已启用。也就是说,-DWITH_DEBUG = 1
有相同的效果-DCMAKE_BUILD_TYPE =调试
.
-DCPACK_MONOLITHIC_INSTALL =
保龄球
该选项将影响使包操作可生成多个安装包文件或单个安装包文件。如果禁用,该操作将生成多个安装包文件,如果您只想安装完整MySQL安装的一个子集,这可能很有用。如果启用,它将生成一个用于安装所有内容的文件。
的CMAKE_INSTALL_PREFIX
Option表示基本安装目录。具有表单名称的其他选项INSTALL_
指示组件位置是相对于前缀解释的,它们的值是相对路径名。它们的值不应该包含前缀。xxx
-DCMAKE_INSTALL_PREFIX =
dir_name
安装基目录。
方法可以在服务器启动时设置此值
——basedir
选择。安装用户程序的位置。
安装文档的位置。10bet官方网站
-DINSTALL_DOCREADMEDIR =
dir_name
安装地点
自述
文件。-DINSTALL_INCLUDEDIR =
dir_name
安装头文件的位置。
在哪里安装信息文件。
选择一个预定义的安装布局:
独立的
:与for相同的布局gz
而且. zip
包。这是默认设置。RPM
:类似RPM包的布局。SVR4
: Solaris软件包布局。黛比
: DEB包布局(试验性)。
您可以选择预定义的布局,但可以通过指定其他选项修改各个组件的安装位置。例如:
cmake。-DINSTALL_LAYOUT = SVR4 -DMYSQL_DATADIR = / var / mysql /数据
的
INSTALL_LAYOUT
的默认值secure_file_priv
,keyring_encrypted_file_data
,keyring_file_data
系统变量。这些变量的描述见服务器系统变量,Keyring系统变量.安装库文件的位置。
安装手册页的位置。
-DINSTALL_MYSQLKEYRINGDIR =
dir_path
控件的位置使用的默认目录
keyring_file
插件数据文件。默认值是特定于平台的,取决于INSTALL_LAYOUT
CMake选择;的描述keyring_file_data
系统变量服务器系统变量.此选项在MySQL 5.7.11中添加。
-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
在这种情况下,它会先被移除。插件目录的位置。
方法可以在服务器启动时设置此值
——plugin_dir
选择。在何处安装mysqld服务器。
安装地点mysql_install_db.
-DINSTALL_SECURE_FILE_PRIVDIR =
dir_name
的默认值
secure_file_priv
系统变量。默认值是特定于平台的,取决于INSTALL_LAYOUT
CMake选择;的描述secure_file_priv
系统变量服务器系统变量.的值
libmysqld
嵌入式服务器,使用INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR
.-DINSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR =
dir_name
的默认值
secure_file_priv
系统变量,为libmysqld
嵌入式服务器。请注意的
libmysqld
从MySQL 5.7.19起已弃用嵌入式服务器库;我希望在MySQL 8.0中删除它。安装地点
aclocal / mysql.m4
.-DINSTALL_SUPPORTFILESDIR =
dir_name
在哪里安装额外的支持文件。
MySQL数据目录的位置。
方法可以在服务器启动时设置此值
——datadir
选择。ODBC的位置包括目录,可以在配置Connector/ODBC时使用。
ODBC库目录的位置,可以在配置Connector/ODBC时使用。
默认的
my.cnf
选项文件目录。方法不能在服务器启动时设置此位置,但是可以使用给定的选项文件启动服务器
——defaults-file =
选项,file_name
file_name
文件的完整路径名。当MySQL由systemd管理时,在其中创建PID文件的目录名称。默认为
/var/run/mysqld
;这可能会根据INSTALL_LAYOUT
价值。此选项将被忽略,除非
WITH_SYSTEMD
启用。当systemd管理MySQL时使用的MySQL服务的名称。默认为
mysqld
;这可能会根据INSTALL_LAYOUT
价值。此选项将被忽略,除非
WITH_SYSTEMD
启用。控件使用的默认位置
tmpdir
系统变量。如果未指定,默认为P_tmpdir
在< stdio . h >
.
存储引擎是作为插件构建的。可以将插件构建为静态模块(编译到服务器中)或动态模块(构建为动态库,必须使用安装插件
声明或——plugin-load
选项,然后才能使用它)。有些插件可能不支持静态或动态构建。
的InnoDB
,MyISAM
,合并
,内存
,CSV
引擎是必需的(总是编译到服务器中),不需要显式安装。
若要将存储引擎静态编译到服务器中,请使用-DWITH_
.一些允许的引擎
_STORAGE_ENGINE = 1引擎
值是存档
,黑洞
,例子
,联邦
,NDB
或NDBCLUSTER
(NDB
),分区
(分区支持)。例子:
-DWITH_ARCHIVE_STORAGE_ENGINE = 1 -DWITH_BLACKHOLE_STORAGE_ENGINE = 1
WITH_NDBCLUSTER_STORAGE_ENGINE
仅在使用NDB集群源构建NDB集群时支持。它不能用于在其他MySQL源树或发行版中启用集群支持。在NDB集群源分发版中,默认是启用的。看到在Linux上从Source构建NDB集群,在Windows上从Source编译和安装NDB集群,以查询更多资料。
在没有性能模式支持的情况下无法进行编译。如果希望在编译时不使用特定类型的插装,可以使用以下方法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
选择。
若要从构建中排除存储引擎,请使用-DWITH_
.例子:引擎
_STORAGE_ENGINE = 0
-dwith_example_storage_engine =0 -dwith_federated_storage_engine =0 -dwith_partition_storage_engine =0
也可以将存储引擎排除在使用的构建之外-DWITHOUT_
(但引擎
_STORAGE_ENGINE = 1-DWITH_
者优先)。例子:引擎
_STORAGE_ENGINE = 0
-dwithout_example_storage_engine =1 -dwithout_federated_storage_engine =1 -dwithout_partition_storage_engine =1
如果既不-DWITH_
也不引擎
_STORAGE_ENGINE-DWITHOUT_
为给定的存储引擎指定,则将该引擎构建为共享模块,如果不能将其构建为共享模块则排除该引擎。引擎
_STORAGE_ENGINE
关于编译环境的描述性注释。
-DDEFAULT_CHARSET =
charset_name
服务器字符集。默认情况下,MySQL使用
latin1
(cp1252西欧)字符集。charset_name
可能是其中之一二进制
,armscii8
,美国信息交换标准代码
,繁体
,cp1250
,cp1251
,cp1256
,cp1257
,cp850
,cp852
,cp866
,cp932
,dec8
,eucjpms
,euckr
,gb2312
,gbk
,geostd8
,希腊
,希伯来语
,hp8
,keybcs2
,koi8r
,koi8u
,latin1
,latin2
,latin5
,latin7
,macce
,macroman
,sjis
,swe7
,tis620
,ucs2
,里头
,use utf8
,utf8mb4
,utf16
,utf16le
,utf32
.中列出了允许的字符集cmake / character_sets.cmake
的值CHARSETS_AVAILABLE
.方法可以在服务器启动时设置此值
——character_set_server
选择。-DDEFAULT_COLLATION =
collation_name
服务器排序。MySQL默认使用
latin1_swedish_ci
.使用显示排序
语句以确定对每个字符集可用的排序规则。方法可以在服务器启动时设置此值
——collation_server
选择。是否排除性能模式条件插装。默认为
从
(包括)。是否排除性能架构文件检测。默认为
从
(包括)。是否排除性能模式空闲检测。默认为
从
(包括)。是否排除性能架构内存插装。默认为
从
(包括)。是否排除性能架构元数据插装。默认为
从
(包括)。是否排除性能模式互斥锁插装。默认为
从
(包括)。是否排除性能架构rwlock工具。默认为
从
(包括)。是否排除性能模式套接字插装。默认为
从
(包括)。是否排除性能模式存储程序插装。默认为
从
(包括)。是否排除性能模式阶段检测。默认为
从
(包括)。是否排除性能架构语句插装。默认为
从
(包括)。-DDISABLE_PSI_STATEMENT_DIGEST =
保龄球
是否排除性能模式statement_digest工具。默认为
从
(包括)。是否排除性能模式表检测。默认为
从
(包括)。排除性能模式预置语句实例插装。默认为
从
(包括)。排除性能模式线程检测。默认为
从
(包括)。只在不使用任何工具的情况下构建时禁用线程,因为其他工具对线程有依赖关系。
-DDISABLE_PSI_TRANSACTION =
保龄球
排除性能模式事务检测。默认为
从
(包括)。是否下载Boost库。默认为
从
.看到
WITH_BOOST
选项,以了解关于使用Boost的更多讨论。下载Boost库的超时时间(以秒为单位)。缺省值是600秒。
看到
WITH_BOOST
选项,以了解关于使用Boost的更多讨论。-DENABLE_10bet手机中文版DOWNLOADS =
保龄球
是否下载可选文件。例如,启用此选项后,CMake10bet手机中文版下载测试套件用于运行单元测试的谷歌测试分发版。
是否包含对DTrace探测的支持。有关DTrace的信息,请点击wee使用DTrace跟踪mysqld
此选项已弃用,因为对DTrace的支持在MySQL 5.7中已弃用,在MySQL 8.0中已删除。
是否包含gcov支持(仅限Linux)。
是否启用
gprof
(只针对优化的Linux版本)。此选项控制编译后的默认值
当地的
MySQL客户端库的功能。因此,没有做出明确安排的客户就有了当地的
功能已禁用或已启用ENABLED_LOCAL_INFILE
设置在MySQL构建时指定。默认情况下,MySQL二进制发行版中的客户端库是用
ENABLED_LOCAL_INFILE
启用。如果从源代码编译MySQL,则配置为ENABLED_LOCAL_INFILE
根据没有明确安排的客户端是否应该启用或禁用当地的
分别禁用或启用功能。ENABLED_LOCAL_INFILE
控制客户端的默认值当地的
能力。对于服务器,local_infile
系统变量控制服务器端当地的
能力。显式地使服务器拒绝或允许本地加载数据
语句(无论在构建时或运行时如何配置客户端程序和库)开始mysqld与local_infile
分别为禁用或启用。local_infile
也可以在运行时设置。看到本地加载数据的安全考虑.-DFORCE_UNSUPPORTED_COMPILER =
保龄球
默认情况下,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 =对
.如果
-DBUILD_CONFIG = mysql_release
选项在Linux上给出libaio
库在默认情况下必须被链接。如果你没有libaio
或者不想安装它,您可以通过指定来抑制对它的检查-DIGNORE_AIO_CHECK = 1
.每个表的最大索引数。默认值是64。最大值为255。小于64的值将被忽略,并使用默认值64。
是否启用MySQL特定维护人员的开发环境。如果启用,此选项将导致编译器警告变为错误。
使用的互斥锁类型
InnoDB
.选项包括:事件
:使用事件互斥锁。这是默认值和原始值InnoDB
互斥对象的实现。sys
:在UNIX系统上使用POSIX互斥锁。使用CRITICAL_SECTION
对象在Windows上,如果可用。futex
:使用Linux的futexes代替条件变量来调度等待线程。
X Plugin监听TCP/IP连接的端口号。默认值为33060。
方法可以在服务器启动时设置此值
mysqlx_port
系统变量。Unix套接字文件路径,服务器在其上监听X Plugin套接字连接。这必须是一个绝对路径名。默认为
/ tmp / mysqlx.sock
.方法可以在服务器启动时设置此值
mysqlx_port
系统变量。对于Windows或macOS,要合并到项目文件名中的项目名称。
服务器监听TCP/IP连接的端口号。默认值是3306。
方法可以在服务器启动时设置此值
——港口
选择。Unix套接字文件路径,服务器在其上监听套接字连接。这必须是一个绝对路径名。默认为
/ tmp / mysql.sock
.方法可以在服务器启动时设置此值
——套接字
选择。是否支持优化器跟踪。看到MySQL内部:跟踪优化器.
对于Linux系统上的构建,此选项控制是否特别注意创建独立于构建位置和时间的构建结果。
此选项在MySQL 5.7.19中添加。
是否禁用Windows上的内联功能。默认是关闭(启用内联)。
是否为支持AddressSanitizer的编译器启用它。默认是关闭的。
是否启用AddressSanitizer
-fsanitize-address-use-after-scope
瞄准镜后检测使用的Clang标志。默认是关闭的。要使用这个选项,-DWITH_ASAN
也必须启用。-DWITH_AUTHENTICATION_LDAP =
保龄球
是否在无法构建LDAP认证插件时报错:
如果禁用此选项(默认),则在找到所需的头文件和库时构建LDAP插件。如果不是,CMake显示关于它的注释。
如果启用此选项,将导致无法找到所需的头文件和库CMake产生错误,阻止构建服务器。
有关LDAP身份验证的信息,请参见LDAP可插入认证.此选项在MySQL 5.7.19中添加。
-DWITH_AUTHENTICATION_PAM =
保龄球
是否为包含此插件的源树构建PAM身份验证插件。(见PAM可插入身份验证)。如果指定了此选项,并且无法编译插件,则构建失败。
Amazon Web Services软件开发工具包的位置。
此选项在MySQL 5.7.19中添加。
构建MySQL需要Boost库。这些CMake选项允许控制库的源位置,以及是否自动下载:
-DWITH_BOOST =
指定Boost库目录位置。属性还可以指定Boost位置path_name
BOOST_ROOT
或WITH_BOOST
环境变量。从MySQL 5.7.11开始,
-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 =
保龄球
是否将客户端协议跟踪框架构建到客户端库中。缺省情况下,启用此选项。
有关编写协议跟踪客户端插件的信息,请参见正在编写协议跟踪插件.
的位置旋度图书馆。
curl_type
可以系统
(使用系统旋度类的路径名)或旋度图书馆。此选项在MySQL 5.7.19中添加。
是否包含调试支持。
配置MySQL与调试支持使您可以使用
- debug = " d, parser_debug”
选项。这将导致用于处理SQL语句的Bison解析器将解析器跟踪转储到服务器的标准错误输出。通常,此输出被写入错误日志。的同步调试检查
InnoDB
存储引擎的定义如下UNIV_DEBUG
方法编译调试支持时可用WITH_DEBUG
选择。当在中编译调试支持时,innodb_sync_debug
配置选项可用于启用或禁用InnoDB
同步调试检查。截至MySQL 5.7.18,启用
WITH_DEBUG
还启用了调试同步。有关“调试同步”功能以及如何使用同步点的说明,请参见MySQL内部:测试同步.-DWITH_DEFAULT_FEATURE_SET =
保龄球
是否使用的标志
cmake / build_configurations / feature_set.cmake
.哪一个
libedit
/editline
要使用的库。允许的值为捆绑
(默认值)和系统
.WITH_EDITLINE
替换WITH_LIBEDIT
,已被删除。是否建立
libmysqld
嵌入式服务器库。请注意的
libmysqld
嵌入式服务器库从MySQL 5.7.17起已弃用,在MySQL 8.0中已被移除。-DWITH_EMBEDDED_SHARED_LIBRARY =
保龄球
是否构建共享
libmysqld
嵌入式服务器库。请注意的
libmysqld
嵌入式服务器库从MySQL 5.7.17起已弃用,在MySQL 8.0中已被移除。需要包括哪些额外字符集:
所有
:所有字符集。这是默认设置。复杂的
:复杂字符集。没有一个
:没有额外的字符集。
googlemock分发版的路径,用于谷歌基于测试的单元测试。选项值是分发Zip文件的路径。或者,设置
WITH_GMOCK
环境变量的路径名。它也可以使用-DENABLE_10bet手机中文版DOWNLOADS = 1
,这样的话CMake10bet手机中文版从GitHub下载发行版。如果您构建MySQL时不使用谷歌基于测试的单元测试(通过配置不使用
WITH_GMOCK
),CMake显示一条消息,指示如何下载它。-DWITH_INNODB_EXTRA_DEBUG =
保龄球
是否包含额外的InnoDB调试支持。
启用
WITH_INNODB_EXTRA_DEBUG
打开额外的InnoDB调试检查。此选项只能在以下情况下启用WITH_DEBUG
启用。是否生成memcached共享库(
libmemcached.so
而且innodb_engine.so
).是否构建伴随的测试程序
keyring_file
插件。默认为从
.测试文件的源代码位于插件/密匙环/ keyring-test
目录中。此选项在MySQL 5.7.11中添加。
只供内部使用。此选项在MySQL 5.7.29中添加。
哪一个
libevent
要使用的库。允许的值为捆绑
(默认),系统
.在MySQL 5.7.31之前,如果指定系统
,系统libevent
库存在时使用,否则会发生错误。在MySQL 5.7.31及以后版本中,如果系统
是指定的,而没有系统libevent
库时,无论如何都会发生错误,而绑定的libevent
不使用。的
libevent
库需要由InnoDB
memcached和X Plugin。是否包括
libwrap
(TCP包装器)支持。的
WITH_LZ4
Option表示的源zlib
支持:捆绑
:使用LZ4
库与发行版绑定。这是默认设置。系统
:使用系统LZ4
图书馆。如果WITH_LZ4
设置为这个值,lz4_decompress没有构建实用程序。在本例中,是系统lz4可以使用Command代替。
-DWITH_MECAB ={禁用系统| |
path_name
}使用此选项编译MeCab解析器。如果已将MeCab安装到默认安装目录,请设置
-DWITH_MECAB =系统
.的系统
选项适用于使用本机包管理实用程序从源文件或从二进制文件执行的MeCab安装。如果您将MeCab安装到自定义安装目录,请指定MeCab安装路径。例如,-DWITH_MECAB = / opt / mecab
.如果系统
选项无效,指定MeCab安装路径应该在所有情况下都有效。相关信息请参见MeCab全文解析器插件.
是否为支持MemorySanitizer的编译器启用它。默认是关闭的。
如果启用了该选项,那么所有链接到MySQL的库也必须在启用该选项的情况下进行编译。
是否启用Visual Studio CRT内存泄漏跟踪。默认为
从
.显式设置NUMA内存分配策略。CMake设置默认值
WITH_NUMA
值,根据当前平台是否具有NUMA
支持。对于没有NUMA支持的平台,CMake行为如下:如果没有NUMA选项(通常情况),CMake正常继续,只产生这样的警告:NUMA库丢失或所需版本不可用
与
-DWITH_NUMA =对
,CMakeNUMA库丢失或所需版本不可用
此选项在MySQL 5.7.17中添加。
-DWITH_PROTOBUF =
protobuf_type
要使用哪个协议缓冲区包。
protobuf_type
可以是以下值之一:捆绑
:使用发行版附带的软件包。这是默认设置。系统
:使用系统自带的安装包。
其他值将被忽略,并返回到
捆绑
.此选项在MySQL 5.7.12中添加。
是否构建快速开发周期插件。当启用时,
快速
目录在包含这些插件的构建树中创建。当禁用时,no快速
目录在构建树中创建。默认为在
,除非快速
目录从源树中删除,在这种情况下,默认值变为从
.此选项在MySQL 5.7.12中添加。只供内部使用。此选项在MySQL 5.7.29中添加。
-DWITH_SSL = {
|ssl_type
path_name
}为了支持加密连接、随机数生成的熵和其他加密相关的操作,MySQL必须使用SSL库构建。此选项指定要使用的SSL库。
ssl_type
可以是以下值之一:是的
:如果存在,则使用系统OpenSSL库,否则使用与发行版绑定的库。捆绑
:使用与发行版捆绑的SSL库。这是MySQL 5.7.28之前的默认设置。从5.7.28开始,这不再是一个允许的值,默认值是系统
.系统
:使用系统OpenSSL库。这是MySQL 5.7.28的默认设置。
path_name
是要使用的OpenSSL安装的路径名称。这可能比使用ssl_type
的价值系统
因为它可以防止CMake检测并使用系统上安装的较旧或不正确的OpenSSL版本。(做同样事情的另一种允许的方法是设置WITH_SSL
来系统
并设置CMAKE_PREFIX_PATH
选项path_name
)。
有关配置SSL库的其他信息,请参见配置SSL库支持.
是否启用安装systemd支持文件。缺省情况下,禁用此选项。启用时,将安装systemd支持文件,以及mysqld_safe以及System V初始化脚本未安装。在systemd不可用的平台上,启用
WITH_SYSTEMD
的错误CMake.有关使用systemd的更多信息,请参见使用systemd管理MySQL服务器.该部分还包括关于指定先前在
(mysqld_safe)
选项组。因为mysqld_safe在使用systemd时不安装,因此必须以另一种方式指定这些选项。是否构建测试协议跟踪客户端插件(参见使用测试协议跟踪插件).缺省情况下,禁用此选项。启用此选项不会产生任何效果,除非
WITH_CLIENT_PROTOCOL_TRACING
选项已启用。如果MySQL配置时启用了这两个选项,则libmysqlclient
客户端库是用内置的测试协议跟踪插件构建的,所有标准的MySQL客户端都会加载这个插件。然而,即使启用了test插件,默认情况下也没有任何效果。使用环境变量提供对插件的控制;看到使用测试协议跟踪插件.请注意做不启用
WITH_TEST_TRACE_PLUGIN
选项,因为每次只能加载一个这样的插件,如果试图加载第二个插件,则会出现错误。如果您已经在构建MySQL时启用了测试协议跟踪插件,以查看它是如何工作的,那么在使用自己的插件之前,必须在不使用它的情况下重新构建MySQL。有关编写跟踪插件的信息,请参见正在编写协议跟踪插件.
是否为支持未定义行为杀毒器的编译器启用该杀毒器。默认是关闭的。
如果启用,则使用单元测试编译MySQL。默认值是ON,除非服务器没有被编译。
为Connector/ODBC启用unixODBC支持。
是否在Valgrind头文件中编译,这将向MySQL代码公开Valgrind API。默认为
从
.要生成支持valgrind的调试版本,
-DWITH_VALGRIND = 1
通常与-DWITH_DEBUG = 1
.看到构建调试配置.某些特性要求服务器构建时带有压缩库支持,例如
压缩()
而且解压()
函数,以及客户机/服务器协议的压缩。的WITH_ZLIB
Option表示的源zlib
支持:捆绑
:使用zlib
库与发行版绑定。这是默认设置。系统
:使用系统zlib
图书馆。
要指定自己的C和c++编译器标志,对于不影响优化的标志,请使用CMAKE_C_FLAGS
而且CMAKE_CXX_FLAGS
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_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"
在使用NDB集群源构建NDB集群时,可以使用以下选项:当使用MySQL 5.6服务器树中的源代码时,它们目前不被支持。
使用安装在指示的系统目录中的memcached(版本1.6或更高)执行构建
dir_name
.在构建中使用的来自此安装的文件包括memcached二进制文件、头文件和库,以及memcached_utilities
库和头文件engine_testapp.h
.构建时必须不设置此选项
ndbmemcache
使用绑定的memcached源(WITH_BUNDLED_MEMCACHED
选项);换句话说,默认情况下使用绑定的源代码)。而额外的CMake选项,例如SASL授权和提供
dtrace
支持在编译时可用memcached的外部源中,这些选项目前没有启用memcached与NDB集群绑定的源代码。-DWITH_BUNDLED_LIBEVENT ={|关闭}
使用
libevent
在构建NDB集群时包含在NDB集群源代码中ndbmemcached
支持。默认启用。从
导致系统的libevent
被代替。-DWITH_BUNDLED_MEMCACHED ={|关闭}
构建包含在NDB Cluster源树中的memcached源,然后在构建
ndbmemcache
引擎。在这种情况下,制作安装地方,memcached安装中的二进制文件箱子
目录,以及ndbmemcache
引擎共享库文件ndb_engine.so
在安装过程中自由
目录中。该选项默认为ON。
设置用于构建Java NDB集群连接器的类路径。默认为空。如果发生以下情况,则忽略此选项
-DWITH_NDB_JAVA =了
使用。控件中启用错误注入
NDB
内核。只作测试用途;不打算用于构建生产二进制文件。默认为从
.构建API示例程序
存储/ ndb / ndbapi-examples /
.-DWITH_NDBAPI_EXAMPLES_DEFAULT ={|关闭}
构建API示例程序
存储/ ndb / ndbapi-examples /
.使用此选项可避免CMake忽略WITH_NDBAPI_EXAMPLES
.在NDB 7.5.25和7.6.21中新增。-DWITH_NDBCLUSTER_STORAGE_ENGINE ={|关闭}
的构建和链接支持
NDB
(NDBCLUSTER
)储存发动机在mysqld.默认为在
.构建多线程数据节点可执行文件ndbmtd.默认为
在
.中的默认启用二进制日志记录mysqld使用此选项构建。默认为ON。
启用构建NDB集群二进制文件的调试版本。默认为OFF。
启用使用Java支持构建NDB集群,包括
ClusterJ
.该选项默认为ON。如果您不希望编译支持Java的NDB集群,您必须通过指定显式禁用它
-DWITH_NDB_JAVA =了
运行时CMake.否则,如果找不到Java,则构建配置失败。NDB集群管理服务器(ndb_mgmd)就是用来使用这个的
港口
默认情况下。如果未设置此选项,则生成的管理服务器默认尝试使用端口1186。如果启用,则包含一组NDB API测试程序。默认为OFF。