Spec-Zone.ru › MySQL 8.4

2.8.7 Параметры конфигурации источника MySQL

Программа CMake предоставляет значительный контроль над конфигурацией дистрибутива MySQL. Обычно это делается с помощью параметров в командной строке CMake. Для получения информации о поддерживаемых параметрах CMake, выполните одну из этих команд в корневой директории исходного кода:

$> cmake . -LH

$> ccmake .

Вы также можете повлиять на CMake с помощью определенных переменных среды. См. Раздел 6.9, «Переменные среды».

Для булевых параметров значение может быть задано как 1 или ON для включения параметра, или как 0 или OFF для отключения параметра.

Многие параметры конфигурируют значения по умолчанию во время компиляции, которые могут быть переопределены при запуске сервера. Например, параметры CMAKE_INSTALL_PREFIX, MYSQL_TCP_PORT и MYSQL_UNIX_ADDR, которые конфигурируют расположение каталога установки по умолчанию, номер порта TCP/IP и файл Unix-соккета, могут быть изменены при запуске сервера с помощью параметров --basedir, --port и --socket для параметра запуска mysqld. Применительно, описания параметров конфигурации указывают соответствующий параметр запуска mysqld.

В следующих разделах представлена дополнительная информация о параметрах CMake.

  • Справочник по параметрам CMake

  • Общие параметры

  • Параметры макета установки

  • Параметры движка хранения данных

  • Параметры функций

  • Флаги компилятора

  • Параметры CMake для компиляции кластера NDB

Справочник по параметрам CMake

В следующей таблице показаны доступные параметры CMake. В столбце Default, PREFIX обозначает значение параметра CMAKE_INSTALL_PREFIX, который определяет базовый каталог установки. Это значение используется в качестве родительского расположения для нескольких подкаталогов установки.

Таблица 2.15 Справочник по параметрам конфигурации MySQL (CMake)

Таблица 2.15 Справочник по параметрам конфигурации MySQL (CMake)
Форматы Описание Значение по умолчанию
END_OF_DOCUMENT_MARKER ```
ADD_GDB_INDEX Включать ли генерацию секции .gdb_index в бинарных файлах
BUILD_CONFIG Использовать те же параметры сборки, что и в официальных релизах
BUNDLE_RUNTIME_LIBRARIES Включать библиотеки времени выполнения в пакеты MSI и Zip для Windows OFF
CMAKE_BUILD_TYPE Тип создаваемой сборки RelWithDebInfo
CMAKE_CXX_FLAGS Флаги для компилятора C++
CMAKE_C_FLAGS Флаги для компилятора C
CMAKE_INSTALL_PREFIX Базовый каталог установки /usr/local/mysql
COMPILATION_COMMENT Комментарий об окружающей среде компиляции
COMPILATION_COMMENT_SERVER Комментарий об окружающей среде компиляции для использования mysqld
COMPRESS_DEBUG_SECTIONS Сжимать секции отладки бинарных исполняемых файлов OFF
CPACK_MONOLITHIC_INSTALL Создает ли сборка пакета один файл OFF
DEFAULT_CHARSET Набор символов сервера по умолчанию utf8mb4
DEFAULT_COLLATION Сортировка сервера по умолчанию utf8mb4_0900_ai_ci
DISABLE_PSI_COND Исключить инструментирование условий Performance Schema OFF
DISABLE_PSI_DATA_LOCK Исключить инструментирование блокировки данных Performance Schema OFF
DISABLE_PSI_ERROR Исключить инструментирование ошибок сервера Performance Schema OFF
DISABLE_PSI_FILE Исключить инструментирование файлов Performance Schema OFF
DISABLE_PSI_IDLE Исключить инструментирование простоя Performance Schema OFF
DISABLE_PSI_MEMORY Исключить инструментирование памяти Performance Schema OFF
DISABLE_PSI_METADATA Исключить инструментирование метаданных Performance Schema OFF
DISABLE_PSI_MUTEX Исключить инструментирование мьютексов Performance Schema OFF
DISABLE_PSI_PS Исключить подготовленные запросы Performance Schema OFF
DISABLE_PSI_RWLOCK Исключить инструментирование rwlock Performance Schema OFF
DISABLE_PSI_SOCKET Исключить инструментирование сокетов Performance Schema OFF
DISABLE_PSI_SP Исключить инструментирование хранимых процедур Performance Schema OFF
DISABLE_PSI_STAGE Исключить инструментирование этапов Performance Schema OFF
DISABLE_PSI_STATEMENT Исключить инструментирование запросов Performance Schema OFF
DISABLE_PSI_STATEMENT_DIGEST Исключить инструментирование statements_digest Performance Schema OFF
DISABLE_PSI_TABLE Исключить инструментирование таблиц Performance Schema OFF
DISABLE_PSI_THREAD Исключить инструментирование потоков Performance Schema OFF
DISABLE_PSI_TRANSACTION Исключить инструментирование транзакций Performance Schema OFF
ENABLED_LOCAL_INFILE Включать ли LOCAL для LOAD DATA OFF
ENABLED_PROFILING Включать ли код профилирования запросов ON
ENABLE_EXPERIMENTAL_SYSVARS Включать ли экспериментальные системные переменные InnoDB OFF
ENABLE_GCOV Включать ли поддержку gcov
ENABLE_GPROF Включить gprof (только для оптимизированных сборок Linux) OFF
FORCE_COLORED_OUTPUT Раскрашивать ли вывод компилятора OFF
FORCE_INSOURCE_BUILD Принудительно ли выполнять сборку в исходном каталоге OFF
FORCE_UNSUPPORTED_COMPILER Разрешать ли неподдерживаемые компиляторы OFF
FPROFILE_GENERATE Генерировать ли данные для оптимизации, управляемой профилем OFF
FPROFILE_USE Использовать ли данные для оптимизации, управляемой профилем OFF
HAVE_PSI_MEMORY_INTERFACE Включить модуль трассировки памяти Performance Schema для функций выделения памяти, используемых в динамическом хранении типов с выравниванием OFF
IGNORE_AIO_CHECK С -DBUILD_CONFIG=mysql_release, игнорировать проверку libaio OFF
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_MYSQLSHAREDIR Директория общих данных PREFIX/share
INSTALL_MYSQLTESTDIR Директория mysql-test PREFIX/mysql-test
INSTALL_PKGCONFIGDIR Директория для файла pkg-config mysqlclient.pc INSTALL_LIBDIR/pkgconfig
INSTALL_PLUGINDIR Директория плагинов PREFIX/lib/plugin
INSTALL_PRIV_LIBDIR Директория приватной библиотеки установки
INSTALL_SBINDIR Директория исполняемых файлов сервера PREFIX/bin
INSTALL_SECURE_FILE_PRIVDIR Значение по умолчанию для secure_file_priv platform specific
INSTALL_SHAREDIR Директория установки aclocal/mysql.m4 PREFIX/share
INSTALL_STATIC_LIBRARIES Устанавливать ли статические библиотеки ON
INSTALL_SUPPORTFILESDIR Дополнительная директория файлов поддержки PREFIX/support-files
LINK_RANDOMIZE Случайный порядок символов в бинарнике mysqld OFF
LINK_RANDOMIZE_SEED Значение начального значения для опции LINK_RANDOMIZE mysql
MAX_INDEXES Максимальное количество индексов на таблицу 64
MSVC_CPPCHECK Включить анализ кода MSVC. ON
MUTEX_TYPE Тип блокировки InnoDB event
MYSQLX_TCP_PORT Номер порта TCP/IP, используемый плагином X 33060
MYSQLX_UNIX_ADDR Файл Unix-соккета, используемый плагином X /tmp/mysqlx.sock
MYSQL_DATADIR Директория данных
MYSQL_MAINTAINER_MODE Включить среду разработки MySQL для системных администраторов OFF
MYSQL_PROJECT_NAME Имя проекта Windows/macOS MySQL
MYSQL_TCP_PORT Номер порта TCP/IP 3306
MYSQL_UNIX_ADDR Файл Unix-соккета /tmp/mysql.sock
NDB_UTILS_LINK_DYNAMIC Вызывать динамическую привязку NDB-инструментов к ndbclient
ODBC_INCLUDES Директория заголовочных файлов ODBC
ODBC_LIB_DIR Директория библиотек ODBC
OPTIMIZER_TRACE Поддержка отслеживания оптимизатора
OPTIMIZE_SANITIZER_BUILDS Оптимизировать сборку с использованием анализаторов ON
REPRODUCIBLE_BUILD Создавать результат сборки, независимый от местоположения и времени сборки
SHOW_SUPPRESSED_COMPILER_WARNING Показывать подавленные предупреждения компилятора и не вызывать ошибку с -Werror. OFF
SYSCONFDIR Директория файла опций
SYSTEMD_PID_DIR Директория для файла PID в systemd /var/run/mysqld
SYSTEMD_SERVICE_NAME Имя службы MySQL в systemd mysqld
TMPDIR Значение по умолчанию для tmpdir
WIN_DEBUG_NO_INLINE Отключить встроенные функции OFF
WITHOUT_SERVER Не строить сервер; только для внутреннего использования OFF
WITHOUT_xxx_STORAGE_ENGINE Исключить движок хранения xxx из сборки
WITH_ANT Путь к Ant для сборки оболочки Java GCS
WITH_ASAN Включить AddressSanitizer OFF
WITH_ASAN_SCOPE Включить AddressSanitizer -fsanitize-address-use-after-scope Clang-флаг OFF
WITH_AUTHENTICATION_CLIENT_PLUGINS Включается автоматически, если построены соответствующие серверные плагины аутентификации
WITH_AUTHENTICATION_LDAP Сообщать об ошибке, если плагины аутентификации LDAP не могут быть построены OFF
WITH_AUTHENTICATION_PAM Сборка плагина аутентификации PAM OFF
WITH_AWS_SDK Расположение набора инструментов для разработки программного обеспечения Amazon Web Services
WITH_BUILD_ID На Linux-системах сгенерировать уникальный идентификатор сборки ON
WITH_CLASSPATH Путь к Classpath для сборки MySQL Cluster Connector для Java. По умолчанию пустая строка.
WITH_CLIENT_PROTOCOL_TRACING Сборка клиентской части фреймворка отслеживания протоколов ON
WITH_CURL Расположение библиотеки curl
WITH_DEBUG Включить поддержку отладки OFF
WITH_DEFAULT_COMPILER_OPTIONS Использовать ли стандартные опции компилятора ON
WITH_DEVELOPER_ENTITLEMENTS Добавить ли привилегию 'get-task-allow' ко всем исполняемым файлам на macOS для создания дампов памяти в случае неожиданной остановки сервера OFF
WITH_EDITLINE Используемая библиотека libedit/editline bundled
END_OF_DOCUMENT_MARKER
WITH_ERROR_INSERT Включить впрыск ошибок в хранилище NDB. Не следует использовать для построения бинарных файлов, предназначенных для производства. OFF
WITH_ICU Тип поддержки ICU bundled
WITH_INNODB_EXTRA_DEBUG Включить дополнительную поддержку отладки для InnoDB. OFF
WITH_JEMALLOC Подключаться с -ljemalloc OFF
WITH_LD Использовать линкер LLVM lld или mold
WITH_LIBEVENT Используемая библиотека libevent bundled
WITH_LIBWRAP Включить поддержку libwrap (TCP-wrappers) OFF
WITH_LOCK_ORDER Включить инструмент LOCK_ORDER OFF
WITH_LSAN Запускать LeakSanitizer без AddressSanitizer OFF
WITH_LTO Включить оптимизатор link-time OFF
WITH_LZ4 Тип поддержки библиотеки LZ4 bundled
WITH_MECAB Компилировать MeCab
WITH_MSAN Включить MemorySanitizer OFF
WITH_MSCRT_DEBUG Включить отслеживание утечек памяти Visual Studio CRT OFF
WITH_MYSQLX Отключить протокол X ON
WITH_NDB Собрать MySQL NDB Cluster, включая движок хранения NDB и все программы NDB OFF
WITH_NDBAPI_EXAMPLES Собрать примеры программ API. OFF
WITH_NDBCLUSTER NDB 8.0.30 и ранее: Собрать движок хранения NDB. NDB 8.0.31 и новее: устарело; используйте WITH_NDB OFF
WITH_NDBCLUSTER_STORAGE_ENGINE До версии NDB 8.0.31 - только для внутреннего использования. NDB 8.0.31 и новее: включает (только) движок хранения NDBCLUSTER ON
WITH_NDBMTD Собрать многопоточную двоичную программу узла данных ON
WITH_NDB_DEBUG Создать отладочную сборку для тестирования или устранения неполадок. OFF
WITH_NDB_JAVA Включить создание поддержки Java и ClusterJ. Включено по умолчанию. Поддерживается только в MySQL Cluster. ON
WITH_NDB_PORT Порт по умолчанию, используемый сервером управления, созданным с помощью этого параметра. Если этот параметр не использовался для его сборки, порт управления по умолчанию - 1186. [none]
WITH_NDB_TEST Включить тестовые программы API NDB. OFF
WITH_NDB_TLS_SEARCH_PATH Путь по умолчанию, используемый программами NDB для поиска файлов сертификата и ключа TLS. $HOME/ndb-tls
WITH_NUMA Установить политику выделения памяти NUMA
WITH_PACKAGE_FLAGS Для флагов, обычно используемых для пакетов RPM/DEB, добавлять ли их к автономным сборкам на этих платформах
WITH_PROTOBUF Используемый пакет Protocol Buffers bundled
WITH_RAPID Собрать плагины для быстрого цикла разработки ON
WITH_RAPIDJSON Тип поддержки RapidJSON bundled
WITH_ROUTER Собрать MySQL Router ON
WITH_SASL Только для внутреннего использования
WITH_SHOW_PARSE_TREE Поддержка команды SHOW PARSE_TREE для отладки
WITH_SSL Тип поддержки SSL system
WITH_SYSTEMD Включить установку файлов поддержки systemd OFF
WITH_SYSTEMD_DEBUG Включить дополнительную отладочную информацию systemd OFF
WITH_SYSTEM_LIBS Установить системное значение параметров библиотек, не установленных явно OFF
WITH_TCMALLOC Подключаться с -ltcmalloc. BUNDLED поддерживается только на Linux OFF
WITH_TEST_TRACE_PLUGIN Собрать плагин трассировки тестового протокола OFF
WITH_TSAN Включить ThreadSanitizer OFF
WITH_UBSAN Включить Undefined Behavior Sanitizer OFF
WITH_UNIT_TESTS Компилировать MySQL с тестовыми модулями ON
WITH_UNIXODBC Включить поддержку unixODBC OFF
WITH_VALGRIND Компилировать с заголовками Valgrind OFF
WITH_WIN_JEMALLOC Путь к каталогу, содержащему jemalloc.dll
WITH_ZLIB Тип поддержки zlib bundled
WITH_ZSTD Тип поддержки zstd bundled
WITH_xxx_STORAGE_ENGINE Компилировать движок хранения xxx статически в сервер

Общие параметры

  • -DBUILD_CONFIG=mysql_release

    Этот параметр настраивает дистрибутив исходного кода с теми же параметрами сборки, которые используются Oracle для создания двоичных дистрибутивов для официальных релизов MySQL.

  • -DWITH_BUILD_ID=bool

    В системах Linux генерирует уникальный идентификатор сборки, который используется в качестве значения системной переменной build_id и записывается в журнал MySQL-сервера при запуске. Установите этот параметр в значение OFF, чтобы отключить эту функцию.

    Этот параметр не оказывает влияния на платформы, отличные от Linux.

  • -DBUNDLE_RUNTIME_LIBRARIES=bool

    Флаг, определяющий, следует ли включать библиотеки времени выполнения в MSI- и Zip-пакеты сервера для Windows.

  • -DCMAKE_BUILD_TYPE=type

    Тип производимой сборки:

    • RelWithDebInfo: Включает оптимизации и генерирует отладочную информацию. Это тип сборки по умолчанию для MySQL.

    • Release: Включает оптимизации, но опускает отладочную информацию для уменьшения размера сборки.

    • Debug: Отключает оптимизации и генерирует отладочную информацию. Этот тип сборки также используется, если включен параметр WITH_DEBUG. То есть, -DWITH_DEBUG=1 имеет тот же эффект, что и -DCMAKE_BUILD_TYPE=Debug.

    Значения параметров None и MinSizeRel не поддерживаются.

  • -DCPACK_MONOLITHIC_INSTALL=bool

    Этот параметр влияет на то, будут ли операции make package генерировать несколько файлов пакетов установки или один. Если отключён, операции генерируют несколько файлов пакетов установки, что может быть полезно, если вы хотите установить только подмножество полной установки MySQL. Если включён, генерируется один файл для установки всего.

  • -DFORCE_INSOURCE_BUILD=bool

    Определяет, следует ли принудительно использовать внутреннюю сборку. Внутренние сборки рекомендуются, так как они позволяют выполнять несколько сборок из одного исходного кода, и очистку можно быстро выполнить, удалив каталог сборки. Для принудительного использования внутренней сборки вызовите CMake с параметром -DFORCE_INSOURCE_BUILD=ON.

  • -DFORCE_COLORED_OUTPUT=bool

    Определяет, следует ли включить цветной вывод компилятора для gcc и clang при компиляции в командной строке. По умолчанию значение OFF.

Параметры расположения установки

Параметр 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

    Место установки файлов Info.

  • -DINSTALL_LAYOUT=name

    Выбор предопределённой схемы установки:

    • STANDALONE: Такая же схема, как используется для пакетов .tar.gz и .zip. По умолчанию.

    • RPM: Схема, похожая на схемы пакетов RPM.

    • SVR4: Схема пакетов Solaris.

    • DEB: Схема пакетов DEB (экспериментальная).

    Вы можете выбрать предопределённую схему, но изменить расположение установки отдельных компонентов, указав другие параметры. Например:

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

    Значение INSTALL_LAYOUT определяет значение системной переменной secure_file_priv по умолчанию. См. описание этой переменной в разделе 7.1.8, «Системные переменные сервера».

  • -DINSTALL_LIBDIR=dir_name

    Место установки библиотек.

  • -DINSTALL_MANDIR=dir_name

    Место установки страниц руководства.

  • -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/private/.

    Protobuf. Поскольку это частное расположение, загрузчик (такой как ld-linux.so в Linux) может не найти файлы libprotobuf.so без помощи. Для управления загрузчиком, RPATH=$ORIGIN/../$INSTALL_PRIV_LIBDIR добавляется к mysqld и mysqlxtest. Это работает в большинстве случаев, но при использовании функции Группы ресурсов, mysqld является setsuid, и загрузчик игнорирует любой RPATH, содержащий $ORIGIN. Чтобы преодолеть это, в DEB и RPM-версиях mysqld устанавливается явный полный путь к каталогу, так как целевой пункт назначения известен. Для установок tarball необходимо выполнить исправление mysqld с помощью инструмента, такого как patchelf.

  • -DINSTALL_SBINDIR=dir_name

    Место установки сервера mysqld.

  • -DINSTALL_SECURE_FILE_PRIVDIR=dir_name

    Значение по умолчанию для системной переменной secure_file_priv. Значение по умолчанию зависит от платформы и значения параметра INSTALL_LAYOUT CMake; см. описание системной переменной secure_file_priv в разделе 7.1.8, «Системные переменные сервера».

  • -DINSTALL_SHAREDIR=dir_name

    Место установки aclocal/mysql.m4.

  • -DINSTALL_STATIC_LIBRARIES=bool

    Устанавливать ли статические библиотеки. По умолчанию — ON. Если установлено значение OFF, эти файлы библиотек не устанавливаются: libmysqlclient.a, libmysqlservices.a.

  • -DINSTALL_SUPPORTFILESDIR=dir_name

    Место установки дополнительных файлов поддержки.

  • -DLINK_RANDOMIZE=bool

    Случайный порядок символов в двоичном файле mysqld. По умолчанию — OFF. Этот параметр следует включать только для отладки.

  • -DLINK_RANDOMIZE_SEED=val

    Значение начального числа для параметра 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

    Название директории, в которой будет создаваться файл PID при управлении MySQL с помощью systemd. По умолчанию — /var/run/mysqld; это может быть изменено неявно в зависимости от значения INSTALL_LAYOUT.

    Этот параметр игнорируется, если не включен WITH_SYSTEMD.

  • -DSYSTEMD_SERVICE_NAME=name

    Имя службы MySQL для использования при управлении MySQL с помощью systemd. По умолчанию — mysqld; это может быть изменено неявно в зависимости от значения INSTALL_LAYOUT.

    Этот параметр игнорируется, если не включен WITH_SYSTEMD.

  • -DTMPDIR=dir_name

    По умолчанию используется расположение для системной переменной tmpdir. Если не указано иное, значение по умолчанию — P_tmpdir в <stdio.h>.

Параметры движков хранилища

Движки хранилища создаются как плагины. Вы можете создать плагин как статический модуль (скомпилированный в сервер) или динамический модуль (созданный как динамическую библиотеку, которую необходимо установить в сервер с помощью оператора INSTALL PLUGIN или опции --plugin-load, прежде чем использовать его). Некоторые плагины могут не поддерживать статическое или динамическое построение.

Движки InnoDB, MyISAM, MERGE, MEMORY и CSV являются обязательными (всегда компилируются в сервер) и не требуют явной установки.

Для компиляции движка хранилища статически в сервер используйте -DWITH_engine_STORAGE_ENGINE=1. Некоторые допустимые значения engine — ARCHIVE, BLACKHOLE, EXAMPLE и FEDERATED. Примеры:

-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1

Для компиляции MySQL с поддержкой NDB Cluster используйте опцию WITH_NDB.

Примечание

Компиляция без поддержки Performance Schema невозможна. Если необходимо скомпилировать без определённых типов инструментации, это можно сделать с помощью следующих опций 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

Например, для компиляции без инструментации мьютексов, сконфигурируйте MySQL с помощью -DDISABLE_PSI_MUTEX=1.

Для исключения движка хранилища из сборки используйте -DWITH_engine_STORAGE_ENGINE=0. Примеры:

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

Также можно исключить движок хранилища из сборки, используя -DWITHOUT_engine_STORAGE_ENGINE=1 (но предпочтительнее -DWITH_engine_STORAGE_ENGINE=0). Примеры:

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

Если ни -DWITH_engine_STORAGE_ENGINE, ни -DWITHOUT_engine_STORAGE_ENGINE не указаны для данного движка хранилища, движок строится как общий модуль или исключается, если его нельзя построить как общий модуль.

Параметры функций

  • -DADD_GDB_INDEX=bool

    Этот параметр определяет, следует ли включать генерацию раздела .gdb_index в двоичных файлах, что ускоряет их загрузку в отладчике. По умолчанию параметр отключен. Используется компоновщик lld, и он отключен, если используется компоновщик, отличный от lld или GNU gold.

  • -DCOMPILATION_COMMENT=string

    Описательный комментарий об среде компиляции. В то время как mysqld использует COMPILATION_COMMENT_SERVER, другие программы используют COMPILATION_COMMENT.

  • -DCOMPRESS_DEBUG_SECTIONS=bool

    Сжимать ли отладочные разделы двоичных исполняемых файлов (только Linux). Сжатие отладочных разделов исполняемых файлов экономит место за счет дополнительного времени ЦП во время процесса сборки.

    Значение по умолчанию — OFF. Если этот параметр не задан явно, но переменная среды COMPRESS_DEBUG_SECTIONS установлена, параметр принимает значение из этой переменной.

  • -DCOMPILATION_COMMENT_SERVER=string

    Описательный комментарий об среде компиляции для использования mysqld (например, для установки системной переменной version_comment). Программы, отличные от сервера, используют COMPILATION_COMMENT.

  • -DDEFAULT_CHARSET=charset_name

    Кодировка сервера. По умолчанию MySQL использует кодировку utf8mb4.

    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, utf8mb3, utf8mb4, utf16, utf16le, utf32.

    Это значение можно установить при запуске сервера с помощью параметра --character-set-server.

  • -DDEFAULT_COLLATION=collation_name

    Сортировка сервера. По умолчанию MySQL использует utf8mb4_0900_ai_ci. Используйте оператор SHOW COLLATION, чтобы определить, какие сортировки доступны для каждой кодировки.

    Это значение можно установить при запуске сервера с помощью параметра --collation_server.

  • -DDISABLE_PSI_COND=bool

    Исключать ли инструментарий условий Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_FILE=bool

    Исключать ли инструментарий файлов Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_IDLE=bool

    Исключать ли инструментарий простоя Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_MEMORY=bool

    Исключать ли инструментарий памяти Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_METADATA=bool

    Исключать ли инструментарий метаданных Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_MUTEX=bool

    Исключать ли инструментарий мьютексов Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_RWLOCK=bool

    Исключать ли инструментарий rwlock Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_SOCKET=bool

    Исключать ли инструментарий сокетов Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_SP=bool

    Исключать ли инструментарий хранимых процедур Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_STAGE=bool

    Исключать ли инструментарий этапов Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_STATEMENT=bool

    Исключать ли инструментарий операторов Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_STATEMENT_DIGEST=bool

    Исключать ли инструментарий дайджестов операторов Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_TABLE=bool

    Исключать ли инструментарий таблиц Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_PS=bool

    Исключить инструментарий экземпляров подготовленных операторов Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_THREAD=bool

    Исключить инструментарий потоков Performance Schema. Значение по умолчанию — OFF (включить).

    Отключайте потоки только при сборке без какого-либо инструментария, поскольку другие инструментарии зависят от потоков.

  • -DDISABLE_PSI_TRANSACTION=bool

    Исключить инструментарий транзакций Performance Schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_DATA_LOCK=bool

    Исключить инструментарий блокировки данных performance schema. Значение по умолчанию — OFF (включить).

  • -DDISABLE_PSI_ERROR=bool

    Исключить инструментарий ошибок сервера performance schema. Значение по умолчанию — OFF (включить).

  • -DENABLE_EXPERIMENTAL_SYSVARS=bool

    Включать ли экспериментальные системные переменные InnoDB. Экспериментальные системные переменные предназначены для тех, кто участвует в разработке MySQL, должны использоваться только в среде разработки или тестирования и могут быть удалены без предварительного уведомления в будущих выпусках MySQL. Для получения информации об экспериментальных системных переменных обратитесь к /storage/innobase/handler/ha_innodb.cc в исходном дереве MySQL. Экспериментальные системные переменные можно определить, выполнив поиск по “PLUGIN_VAR_EXPERIMENTAL”.

  • -DENABLE_GCOV=bool

    Включать ли поддержку gcov (только Linux).

  • -DENABLE_GPROF=bool

    Включать ли gprof (только оптимизированные сборки Linux).

  • -DENABLED_LOCAL_INFILE=bool

    Этот параметр управляет встроенной по умолчанию LOCAL возможностью для клиентской библиотеки MySQL. Таким образом, клиенты, которые не делают явных настроек, имеют LOCAL возможность отключенную или включенную в соответствии с настройкой ENABLED_LOCAL_INFILE, указанной во время сборки MySQL.

    По умолчанию клиентская библиотека в двоичных дистрибутивах MySQL компилируется с отключенной ENABLED_LOCAL_INFILE. Если вы компилируете MySQL из исходного кода, настройте его с ENABLED_LOCAL_INFILE, отключенной или включенной в зависимости от того, должны ли клиенты, которые не делают явных настроек, иметь LOCAL возможность отключенной или включенной соответственно.

    ENABLED_LOCAL_INFILE управляет значением по умолчанию для возможности LOCAL на стороне клиента. Для сервера системная переменная local_infile управляет возможностью LOCAL на стороне сервера. Чтобы явно заставить сервер отклонять или разрешать операторы LOAD DATA LOCAL (независимо от того, как клиентские программы и библиотеки настроены во время сборки или выполнения), запустите mysqld с отключенной или включенной --local-infile соответственно. local_infile также может быть установлена во время выполнения. См. Раздел 8.1.6, «Меры безопасности для LOAD DATA LOCAL».

  • -DENABLED_PROFILING=bool

    Включать ли код профилирования запросов (для операторов SHOW PROFILE и SHOW PROFILES).

  • -DFORCE_UNSUPPORTED_COMPILER=bool

    По умолчанию CMake проверяет минимальные версии поддерживаемых компиляторов; чтобы отключить эту проверку, используйте -DFORCE_UNSUPPORTED_COMPILER=ON.

  • -DFPROFILE_GENERATE=bool

    Генерировать ли данные профилируемой оптимизации (PGO). Этот параметр доступен для экспериментирования с PGO с GCC. См. cmake/fprofile.cmake в дистрибутиве исходного кода MySQL для получения информации об использовании FPROFILE_GENERATE и FPROFILE_USE. Эти параметры были протестированы с GCC 8 и 9.

  • -DFPROFILE_USE=bool

    Использовать ли данные профилируемой оптимизации (PGO). Этот параметр доступен для экспериментирования с PGO с GCC. См. файл cmake/fprofile.cmake в дистрибутиве исходного кода MySQL для получения информации об использовании FPROFILE_GENERATE и FPROFILE_USE. Эти параметры были протестированы с GCC 8 и 9.

    Включение FPROFILE_USE также включает WITH_LTO.

  • -DHAVE_PSI_MEMORY_INTERFACE=bool

    Включать ли модуль трассировки памяти схемы производительности для функций выделения памяти (ut::aligned_name функции библиотеки), используемых в динамическом хранении типов с выравниванием.

  • -DIGNORE_AIO_CHECK=bool

    Если параметр -DBUILD_CONFIG=mysql_release задан в Linux, библиотека libaio должна быть связана по умолчанию. Если у вас нет libaio или вы не хотите устанавливать её, вы можете подавить проверку, указав -DIGNORE_AIO_CHECK=1.

  • -DMAX_INDEXES=num

    Максимальное количество индексов на таблицу. Значение по умолчанию — 64. Максимальное значение — 255. Значения меньше 64 игнорируются, и используется значение по умолчанию 64.

  • -DMYSQL_MAINTAINER_MODE=bool

    Включать ли среду разработки, специфичную для сопровождающего MySQL. Если включено, этот параметр приводит к тому, что предупреждения компилятора становятся ошибками.

  • -DWITH_DEVELOPER_ENTITLEMENTS=bool

    Добавлять ли право get-task-allow ко всем исполняемым файлам для генерации дампа памяти в случае неожиданной остановки сервера.

    В macOS 11 и выше дампы памяти ограничены процессами с правом com.apple.security.get-task-allow, которое включает этот параметр CMake. Право позволяет другим процессам подключаться и читать/изменять память процессов, а также позволяет --core-file работать как ожидается.

  • -DMUTEX_TYPE=type

    Тип мьютекса, используемый InnoDB. Варианты включают:

    • event: Использовать мьютексы событий. Это значение по умолчанию и исходная реализация мьютекса InnoDB.

    • sys: Использовать мьютексы POSIX в UNIX-системах. Использовать объекты 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=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

    Поддерживать ли трассировку оптимизатора. См. Раздел 10.15, «Трассировка оптимизатора».

  • -DREPRODUCIBLE_BUILD=bool

    Для сборок в Linux-системах этот параметр управляет тем, следует ли проявлять дополнительную осторожность при создании результата сборки, независимого от местоположения и времени сборки.

    Этот параметр по умолчанию имеет значение ON для сборок RelWithDebInfo.

  • -DSHOW_SUPPRESSED_COMPILER_WARNINGS=bool

    Показывать подавленные предупреждения компилятора, и делать это без сбоя с -Werror. По умолчанию — OFF.

  • -DWIN_DEBUG_NO_INLINE=bool

    Отключать ли встроенные функции в Windows. Значение по умолчанию — OFF (встраивание включено).

  • -DWITH_LD=string

    По умолчанию CMake использует стандартный компоновщик. Можно дополнительно указать альтернативный компоновщик, передав lld или mold. mold должен быть версии 2 или выше.

    Этот параметр можно использовать на Linux-системах, кроме Enterprise Linux, где всегда используется компоновщик ld.

    Примечание

    Раньше параметр USE_LD_LLD можно было использовать для включения (по умолчанию) или явного отключения компоновщика LLVM lld для Clang. В MySQL 8.3, USE_LD_LLD был удалён.

  • -DWITH_ANT=path_name

    Указывает путь к Ant, необходимый при сборке Java-обёртки GCS. Установите WITH_ANT в путь к каталогу, где сохранён архив Ant или его распакованное содержимое. Если WITH_ANT не установлен или установлен со специальным значением system, процесс сборки предполагает наличие двоичного файла ant в $PATH.

  • -DWITH_ASAN=bool

    Включает AddressSanitizer для компиляторов, которые его поддерживают. По умолчанию значение OFF.

  • -DWITH_ASAN_SCOPE=bool

    Включает AddressSanitizer -fsanitize-address-use-after-scope флаг Clang для обнаружения использования после выхода из области видимости. По умолчанию выключено. Для использования этого параметра необходимо также включить -DWITH_ASAN.

  • -DWITH_AUTHENTICATION_CLIENT_PLUGINS=bool

    Этот параметр автоматически включается, если скомпилированы какие-либо соответствующие плагины аутентификации сервера. Таким образом, его значение зависит от других параметров CMake, и его не следует устанавливать явно.

  • -DWITH_AUTHENTICATION_LDAP=bool

    Указывает, следует ли сообщать об ошибке, если не удалось скомпилировать плагины аутентификации LDAP:

    • Если этот параметр отключён (по умолчанию), плагины LDAP компилируются, если найдены необходимые заголовочные файлы и библиотеки. Если их нет, CMake выводит об этом сообщение.

    • Если этот параметр включён, отсутствие необходимых заголовочных файлов и библиотек приводит к ошибке CMake, предотвращая сборку сервера.

  • -DWITH_AUTHENTICATION_PAM=bool

    Включает сборку плагина аутентификации PAM для исходных кодов, содержащих этот плагин. (См. Раздел 8.4.1.5, «PAM Pluggable Authentication».) Если этот параметр задан, и плагин не может быть скомпилирован, сборка завершается ошибкой.

  • -DWITH_AWS_SDK=path_name

    Путь к набору инструментов для разработки ПО Amazon Web Services.

  • -DWITH_CLIENT_PROTOCOL_TRACING=bool

    Включает ли сборку клиента-стороны фреймворка отслеживания протокола в клиентской библиотеке. По умолчанию этот параметр включён.

    Подробную информацию об написании плагинов отслеживания протоколов клиента см. в Writing Protocol Trace Plugins.

    См. также параметр WITH_TEST_TRACE_PLUGIN.

  • -DWITH_CURL=curl_type

    Путь к библиотеке curl. curl_type может быть system (использование системной curl библиотеки), путём к библиотеке curl, no|off|none для отключения поддержки curl, или bundled для использования входящей в комплект поставки дистрибуции curl в extra/curl/.

  • -DWITH_DEBUG=bool

    Включает ли поддержку отладки.

    Настройка MySQL с поддержкой отладки позволяет использовать параметр --debug="d,parser_debug" при запуске сервера. Это заставит парсер Bison, который используется для обработки SQL-запросов, выводить трассировку парсера в стандартный поток ошибок сервера. Обычно этот вывод записывается в журнал ошибок.

    Проверка отладки синхронизации для хранилища InnoDB определяется в UNIV_DEBUG и доступна при компиляции поддержки отладки с помощью параметра WITH_DEBUG. При компиляции поддержки отладки параметр конфигурации innodb_sync_debug может использоваться для включения или выключения проверки отладки синхронизации InnoDB.

    Включение WITH_DEBUG также включает отладку синхронизации. Этот механизм используется для тестирования и отладки. При компиляции отладка синхронизации по умолчанию выключена во время выполнения. Чтобы включить её, запустите mysqld с параметром --debug-sync-timeout=N, где N — значение таймаута, большее 0. (Значение по умолчанию — 0, что отключает отладку синхронизации.) N становится значением таймаута по умолчанию для отдельных точек синхронизации.

    Проверка отладки синхронизации для хранилища InnoDB доступна при компиляции поддержки отладки с помощью параметра WITH_DEBUG.

    Описание механизма Debug Sync и использования точек синхронизации см. в MySQL Internals: Test Synchronization.

  • -DWITH_EDITLINE=value

    Какую библиотеку libedit/editline использовать. Допустимые значения — bundled (по умолчанию) и system.

  • -DWITH_ICU={icu_type|path_name}

    MySQL использует International Components for Unicode (ICU) для поддержки операций с регулярными выражениями. Параметр WITH_ICU указывает тип поддержки ICU или путь к установке ICU.

    • icu_type может принимать следующие значения:

      • bundled: Использование библиотеки ICU, входящей в дистрибутив. Это значение по умолчанию, и единственное поддерживаемое для Windows.

      • system: Использование системной библиотеки ICU.

    • path_name — путь к установке ICU. Это может быть предпочтительнее использования значения icu_type system, так как это может предотвратить обнаружение и использование CMake устаревшей или неправильной версии ICU, установленной в системе. (Другой способ сделать это — установить WITH_ICU в значение system и установить параметр CMAKE_PREFIX_PATH в path_name.)

  • -DWITH_INNODB_EXTRA_DEBUG=bool

    Включает дополнительную поддержку отладки InnoDB.

    Включение WITH_INNODB_EXTRA_DEBUG включает дополнительные проверки отладки InnoDB. Этот параметр можно включить только при включённом WITH_DEBUG.

  • -DWITH_JEMALLOC=bool

    Включает ли подключение с -ljemalloc. При включении встроенные функции malloc(), calloc(), realloc() и free() отключаются. Значение по умолчанию — OFF.

    WITH_JEMALLOC и WITH_TCMALLOC взаимно исключают друг друга.

  • -DWITH_LIBEVENT=string

    Какую библиотеку libevent использовать. Допустимые значения — bundled (по умолчанию) и system. Если system задано, и системная библиотека libevent не найдена, возникает ошибка, и встроенная libevent не используется.

    Библиотека libevent необходима для X-плагина и MySQL Router.

  • -DWITH_LIBWRAP=bool

    Включает ли поддержку libwrap (TCP-обёрток).

  • -DWITH_LOCK_ORDER=bool

    Включать ли инструменты LOCK_ORDER. По умолчанию этот параметр отключен, и серверные сборки не содержат инструментов. Если инструменты включены, инструмент LOCK_ORDER доступен и может использоваться, как описано в разделе 7.9.3, «Инструмент LOCK_ORDER».

    Примечание

    При включенном параметре WITH_LOCK_ORDER для сборок MySQL требуется программа flex.

  • -DWITH_LSAN=bool

    Запускать ли LeakSanitizer без AddressSanitizer. Значение по умолчанию — OFF.

  • -DWITH_LTO=bool

    Включать ли оптимизатор времени компоновки, если он поддерживается компилятором. Значение по умолчанию — OFF, если не включен параметр FPROFILE_USE.

  • -DWITH_LZ4=lz4_type

    Параметр WITH_LZ4 указывает источник поддержки zlib:

    • bundled: Использовать библиотеку lz4, включенную в дистрибутив. Это значение используется по умолчанию.

    • system: Использовать системную библиотеку lz4.

  • -DWITH_MECAB={disabled|system|path_name}

    Используйте этот параметр для компиляции парсера MeCab. Если вы установили MeCab в его каталог установки по умолчанию, установите -DWITH_MECAB=system. Параметр system применяется к установкам MeCab из исходного кода или из двоичных файлов с помощью утилиты управления пакетами. Если вы установили MeCab в пользовательский каталог установки, укажите путь к установке MeCab, например, -DWITH_MECAB=/opt/mecab. Если параметр system не работает, указание пути установки MeCab должно работать во всех случаях.

    Для получения дополнительной информации см. раздел 14.9.9, «Подключаемый модуль парсера полнотекстового поиска MeCab».

  • -DWITH_MSAN=bool

    Включать ли MemorySanitizer для компиляторов, которые его поддерживают. По умолчанию отключен.

    Для того чтобы этот параметр действовал при включении, все библиотеки, связанные с MySQL, также должны быть скомпилированы с включенным параметром.

  • -DWITH_MSCRT_DEBUG=bool

    Включать ли трассировку утечек памяти Visual Studio CRT. Значение по умолчанию — OFF.

  • -DMSVC_CPPCHECK=bool

    Включать ли анализ кода MSVC. Значение по умолчанию — ON.

  • -DWITH_MYSQLX=bool

    Создавать ли со поддержкой плагина X. Значение по умолчанию — ON. См. главу 22, «Использование MySQL в качестве хранилища документов».

  • -DWITH_NUMA=bool

    Явно задать политику распределения памяти NUMA. CMake устанавливает значение по умолчанию WITH_NUMA в зависимости от того, есть ли поддержка NUMA на текущей платформе. Для платформ без поддержки NUMA CMake работает следующим образом:

    • Без параметра NUMA (обычный случай) CMake продолжает работу нормально, выводя только это предупреждение: NUMA library missing or required version not available.

    • С параметром -DWITH_NUMA=ON CMake завершается с ошибкой: NUMA library missing or required version not available.

  • -DWITH_PACKAGE_FLAGS=bool

    Для флагов, обычно используемых для пакетов RPM и Debian, добавлять ли их в автономные сборки на этих платформах. Значение по умолчанию — ON для сборок без отладки.

  • -DWITH_PROTOBUF=protobuf_type

    Какой пакет Protocol Buffers использовать. protobuf_type может иметь одно из следующих значений:

    • bundled: Использовать пакет, включенный в дистрибутив. Это значение используется по умолчанию. Дополнительно используйте INSTALL_PRIV_LIBDIR для изменения каталога динамической библиотеки Protobuf.

    • system: Использовать пакет, установленный в системе.

    Другие значения игнорируются, с возвратом к bundled.

  • -DWITH_RAPID=bool

    Создавать ли плагины цикла быстрой разработки. При включении в дереве сборки создается каталог rapid, содержащий эти плагины. При отключении каталог rapid в дереве сборки не создается. Значение по умолчанию — ON, если каталог rapid не удален из дерева исходных текстов, в противном случае значение по умолчанию становится OFF.

  • -DWITH_RAPIDJSON=rapidjson_type

    Тип поддержки библиотеки RapidJSON для включения. rapidjson_type может иметь одно из следующих значений:

    • bundled: Использовать библиотеку RapidJSON, включенную в дистрибутив. Это значение используется по умолчанию.

    • system: Использовать системную библиотеку RapidJSON. Требуется версия 1.1.0 или более поздняя.

  • -DWITH_ROUTER=bool

    Создавать ли MySQL Router. Значение по умолчанию — ON.

  • -DWITH_SASL=value

    Только для внутреннего использования. Не поддерживается в Windows.

  • -DWITH_SSL={ssl_type|path_name}

    Для поддержки зашифрованных соединений, энтропии для генерации случайных чисел и других операций, связанных с шифрованием, MySQL должен быть построен с использованием библиотеки SSL. Этот параметр указывает, какую библиотеку SSL использовать.

    • ssl_type может иметь одно из следующих значений:

      • system: Использовать системную библиотеку OpenSSL. Это значение используется по умолчанию.

        В macOS и Windows использование system настраивает MySQL для сборки так, как если бы CMake был вызван с path_name указывает на вручную установленную библиотеку OpenSSL. Это связано с тем, что у них нет системных библиотек SSL. В macOS brew install openssl устанавливается в /usr/local/opt/openssl так, чтобы system мог найти его. В Windows он проверяет %ProgramFiles%/OpenSSL, %ProgramFiles%/OpenSSL-Win32, %ProgramFiles%/OpenSSL-Win64, C:/OpenSSL, C:/OpenSSL-Win32 и C:/OpenSSL-Win64.

      • yes: Это синоним для system.

      • opensslversion: Использовать альтернативный системный пакет OpenSSL, такой как openssl11 на EL7 или openssl3 (или openssl3-fips) на EL8.

        Плагины аутентификации, такие как LDAP и Kerberos, отключены, поскольку они не поддерживают эти альтернативные версии OpenSSL.

    • path_name — это имя пути к используемой установке OpenSSL. Это может быть предпочтительнее использования значения ssl_type system, поскольку это может предотвратить обнаружение и использование CMake устаревшей или неверной версии OpenSSL, установленной в системе. (Другой допустимый способ сделать то же самое — установить WITH_SSL в system и установить параметр CMAKE_PREFIX_PATH в path_name.)

    Для получения дополнительной информации о настройке библиотеки SSL см. раздел 2.8.6, «Настройка поддержки библиотеки SSL».

  • -DWITH_SHOW_PARSE_TREE=bool

    Включает поддержку SHOW PARSE_TREE на сервере, используется только для разработки и отладки. Не используется для релизных сборок или не поддерживается в рабочей среде.

  • -DWITH_SYSTEMD=bool

    Включать ли установку файлов поддержки systemd. По умолчанию этот параметр отключен. При включении устанавливаются файлы поддержки systemd, а скрипты, такие как mysqld_safe и скрипт инициализации System V не устанавливаются. На платформах, где systemd недоступен, включение WITH_SYSTEMD приводит к ошибке CMake.

    При построении сервера с этим параметром MySQL включает все сообщения systemd в журнале ошибок сервера (см. раздел 7.4.2, «Журнал ошибок»).

    Для получения дополнительной информации об использовании systemd, см. раздел 2.5.9, «Управление сервером MySQL с помощью systemd». Этот раздел также содержит информацию о указании параметров, иначе задаваемых в группах параметров [mysqld_safe]. Поскольку mysqld_safe не устанавливается при использовании systemd, такие параметры необходимо указать другим способом.

  • -DWITH_SYSTEM_LIBS=bool

    Этот параметр служит параметром “зонтиком” для установки значения system любого из следующих параметров CMake, которые не заданы явно: WITH_CURL, WITH_EDITLINE, WITH_ICU, WITH_LIBEVENT, WITH_LZ4, , WITH_PROTOBUF, , WITH_SSL, WITH_ZLIB, WITH_ZSTD.

  • -DWITH_SYSTEMD_DEBUG=bool

    Включить дополнительную информацию для отладки systemd для платформ, на которых systemd используется для запуска MySQL. Значение по умолчанию — OFF.

  • -DWITH_TCMALLOC=bool

    Связываться ли с -ltcmalloc. При включении встроенные malloc(), calloc(), realloc() и free() функции отключаются. По умолчанию — OFF.

    Начиная с MySQL 8.4.1, в исходном коде включена библиотека tcmalloc; можно заставить сборку использовать свёрнутую версию, установив этот параметр в BUNDLED. BUNDLED поддерживается только на системах Linux.

    WITH_TCMALLOC и WITH_JEMALLOC взаимоисключающие.

  • -DWITH_TEST_TRACE_PLUGIN=bool

    Создавать ли плагин клиента трассировки протокола тестов (см. Использование плагина трассировки протокола тестов). По умолчанию этот параметр отключен. Включение этого параметра не повлияет, если не включен параметр WITH_CLIENT_PROTOCOL_TRACING. Если MySQL сконфигурирован с включенными обоими параметрами, клиентская библиотека libmysqlclient строится с встроенным плагином трассировки протокола тестов, и все стандартные клиенты MySQL загружают плагин. Однако даже при включенном плагине трассировки, он по умолчанию не работает. Управление плагином осуществляется с помощью переменных окружения; см. Использование плагина трассировки протокола тестов.

    Примечание

    Не включайте параметр WITH_TEST_TRACE_PLUGIN, если хотите использовать собственные плагины трассировки протокола, так как может быть загружен только один такой плагин, а попытки загрузить второй приводят к ошибке. Если вы уже создали MySQL с включенным плагином трассировки протокола тестов, чтобы посмотреть, как он работает, необходимо пересобрать MySQL без него, прежде чем вы сможете использовать собственные плагины.

    Сведения по написанию плагинов трассировки см. в Написании плагинов трассировки протоколов.

  • -DWITH_TSAN=bool

    Включить ли ThreadSanitizer для компиляторов, которые его поддерживают. По умолчанию отключено.

  • -DWITH_UBSAN=bool

    Включить ли Undefined Behavior Sanitizer для компиляторов, которые его поддерживают. По умолчанию отключено.

  • -DWITH_UNIT_TESTS={ON|OFF}

    Если включено, скомпилировать MySQL с модульными тестами. По умолчанию — ON, если сервер не компилируется.

  • -DWITH_UNIXODBC=1

    Включить поддержку unixODBC для Connector/ODBC.

  • -DWITH_VALGRIND=bool

    Включить ли заголовки Valgrind, которые предоставляют API Valgrind для кода MySQL. По умолчанию — OFF.

    Для создания сборки отладки, совместимой с Valgrind, -DWITH_VALGRIND=1 обычно комбинируется с -DWITH_DEBUG=1. См. Создание конфигураций отладки.

  • -DWITH_WIN_JEMALLOC=string

    В Windows, укажите путь к каталогу, содержащему jemalloc.dll, чтобы включить функциональность jemalloc. Система сборки копирует jemalloc.dll в ту же директорию, что и mysqld.exe и/или mysqld-debug.exe и использует её для операций управления памятью. Если jemalloc.dll не найден или не экспортирует необходимые функции, используются стандартные функции памяти. Сообщение уровня INFORMATION записывает, найден и использован ли jemalloc.

    Этот параметр включён для официальных бинарников MySQL для Windows.

  • -DWITH_ZLIB=zlib_type

    Некоторые функции требуют, чтобы сервер был скомпилирован с поддержкой библиотек сжатия, таких как функции COMPRESS() и UNCOMPRESS(), а также сжатие клиентского/серверного протокола. Параметр WITH_ZLIB указывает источник поддержки zlib:

    Минимальная поддерживаемая версия zlib — 1.2.13.

    • bundled: Использовать библиотеку zlib, входящую в дистрибутив. По умолчанию.

    • system: Использовать системную библиотеку zlib.

  • -DWITH_ZSTD=zstd_type

    Сжатие соединений с помощью алгоритма zstd (см. раздел 6.2.8, «Управление сжатием соединений») требует, чтобы сервер был скомпилирован с поддержкой библиотеки zstd. Параметр WITH_ZSTD указывает источник поддержки zstd:

    • bundled: Использовать библиотеку zstd, входящую в дистрибутив. По умолчанию.

    • system: Использовать системную библиотеку zstd.

  • -DWITHOUT_SERVER=bool

    Скомпилировать ли без MySQL Server. По умолчанию — ВЫКЛ., что подразумевает компиляцию сервера.

    Этот параметр считается экспериментальным; предпочтительнее компилировать с сервером.

    Этот параметр также предотвращает компиляцию хранилища NDB или каких-либо NDB бинарников, включая программы управления и программы узлов данных.

  • Флаги компилятора

    • -DCMAKE_C_FLAGS="flags"

      Флаги для компилятора C.

    • -DCMAKE_CXX_FLAGS="flags"

      Флаги для компилятора C++.

    • -DWITH_DEFAULT_COMPILER_OPTIONS=bool

      Использовать ли флаги из cmake/build_configurations/compiler_options.cmake.

      Примечание

      Все флаги оптимизации тщательно подобраны и протестированы командой разработчиков MySQL. Их переопределение может привести к неожиданным результатам и выполняется на ваш собственный риск.

    • -DOPTIMIZE_SANITIZER_BUILDS=bool

      Добавлять ли -O1 -fno-inline в сборки с санитайзерами. Значение по умолчанию — ON.

    Чтобы указать собственные флаги компилятора C и C++ для флагов, которые не влияют на оптимизацию, используйте параметры CMake CMAKE_C_FLAGS и CMAKE_CXX_FLAGS.

    При предоставлении собственных флагов компилятора вы также можете указать CMAKE_BUILD_TYPE.

    Например, чтобы создать 32-разрядную релизную сборку на 64-разрядной машине Linux, сделайте следующее:

    $> mkdir build
    $> cd build
    $> cmake .. -DCMAKE_C_FLAGS=-m32 \
      -DCMAKE_CXX_FLAGS=-m32 \
      -DCMAKE_BUILD_TYPE=RelWithDebInfo
    

    Если вы устанавливаете флаги, влияющие на оптимизацию (-Onumber), необходимо установить параметры 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_C_FLAGS_RELWITHDEBINFO="-O3 -g" \
      -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g"
    

    Параметры CMake для компиляции NDB Cluster

    Для компиляции с поддержкой NDB Cluster можно использовать -DWITH_NDB, что приводит к включению в сборку механизма хранения NDB и всех программ NDB. Этот параметр включен по умолчанию. Чтобы предотвратить сборку подключаемого модуля механизма хранения NDB, используйте -DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF. Другие аспекты сборки можно контролировать с помощью других параметров, перечисленных в этом разделе.

    Следующие параметры применяются при сборке исходных кодов MySQL с поддержкой NDB Cluster.

    • -DNDB_UTILS_LINK_DYNAMIC={ON|OFF}

      Управляет тем, связываются ли утилиты NDB, такие как ndb_drop_table, с ndbclient статически (OFF) или динамически (ON); OFF (статическая компоновка) используется по умолчанию. Обычно статическая компоновка используется при сборке, чтобы избежать проблем с LD_LIBRARY_PATH или при установке нескольких версий ndbclient. Этот параметр предназначен для создания образов Docker и, возможно, других случаев, когда целевая среда находится под строгим контролем, и желательно уменьшить размер образа.

    • -DWITH_CLASSPATH=path

      Устанавливает classpath для сборки MySQL NDB Cluster Connector для Java. Значение по умолчанию пустое. Этот параметр игнорируется, если используется -DWITH_NDB_JAVA=OFF.

    • -DWITH_ERROR_INSERT={ON|OFF}

      Включает вставку ошибок в ядро NDB. Только для тестирования; не предназначено для использования при создании производственных бинарных файлов. Значение по умолчанию — OFF.

    • -DWITH_NDB={ON|OFF}

      Сборка MySQL NDB Cluster; сборка плагина NDB и всех программ NDB Cluster.

    • -DWITH_NDBAPI_EXAMPLES={ON|OFF}

      Сборка примерных программ NDB API в storage/ndb/ndbapi-examples/. См. , для получения информации об этом.

    • -DWITH_NDBCLUSTER_STORAGE_ENGINE={ON|OFF}

      Управляет (только) тем, включен ли механизм хранения NDBCLUSTER в сборку; WITH_NDB автоматически включает этот параметр, поэтому рекомендуется использовать WITH_NDB вместо него.

    • -DWITH_NDBCLUSTER={ON|OFF} (УСТАРЕЛ)

      Сборка и компоновка поддержки механизма хранения NDB в mysqld.

      Этот параметр устарел и будет в конечном итоге удален; используйте WITH_NDB вместо него.

    • -DWITH_NDBMTD={ON|OFF}

      Сборка многопоточного исполняемого файла узла данных ndbmtd. Значение по умолчанию — ON.

    • -DWITH_NDB_DEBUG={ON|OFF}

      Включить сборку отладочных версий бинарных файлов NDB Cluster. По умолчанию это OFF.

    • -DWITH_NDB_JAVA={ON|OFF}

      Включить сборку NDB Cluster с поддержкой Java, включая поддержку ClusterJ (см. ).

      Этот параметр ON по умолчанию. Если вы не хотите компилировать NDB Cluster с поддержкой Java, необходимо явно отключить его, указав -DWITH_NDB_JAVA=OFF при запуске CMake. В противном случае, если Java не может быть найдена, конфигурация сборки завершается неудачей.

    • -DWITH_NDB_PORT=port

      Заставляет сервер управления NDB Cluster (ndb_mgmd), который создается, использовать этот port по умолчанию. Если этот параметр не установлен, созданный сервер управления пытается использовать порт 1186 по умолчанию.

    • -DWITH_NDB_TEST={ON|OFF}

      Если включено, включить набор тестовых программ NDB API. Значение по умолчанию — OFF.

    • -DWITH_NDB_TLS_SEARCH_PATH=path

      Установите путь по умолчанию, который используется ndb_sign_keys и другими программами NDB для файлов сертификатов и ключей TLS.

      Значение по умолчанию для платформ Windows — $HOMEDIR/ndb-tls; для других платформ, таких как Linux, это $HOME/ndb-tls.

    © 2025 Oracle
    Licensed under the GPLv2 License.
    https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/source-configuration-options.html

    Spec-Zone.ru

    Настройки Оффлайн Что нового Помощь О нас
    Spec-Zone .ru
    спецификации, руководства, описания, API