Spec-Zone.ru › MySQL 9.2

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_PERFSCHEMA Включить все параметры сборки DISABLE_PSI_*. OFF
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 Исключить Prepared statements 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 для сборки обертки GCS Java
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
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-оболочки) OFF
WITH_LOCK_ORDER Включить инструмент LOCK_ORDER OFF
WITH_LOG_DIAGNOSTIC Включить диагностическое протоколирование; только для внутреннего использования OFF
WITH_LSAN Запустить LeakSanitizer без AddressSanitizer OFF
WITH_LTO Включить оптимизатор времени компоновки OFF
WITH_LZ4 Тип поддержки библиотеки LZ4 bundled
WITH_MECAB Компилировать MeCab
WITH_MSAN Включить MemorySanitizer OFF
WITH_MSCRT_DEBUG Включить отслеживание утечек памяти CRT Visual Studio 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. Поддерживается только в 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. Чтобы преодолеть это, в версиях mysqld для DEB и RPM устанавливается явный полный путь к каталогу, поскольку конечный пункт назначения известен. Для установок 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 или GNU gold. Используется компоновщик lld, и отключен.

  • -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_PERFSCHEMA=bool

    Включить все параметры сборки DISABLE_PSI_*. Это то же самое, что установить все такие параметры в ON.

    Значение по умолчанию для DISABLE_PERFSCHEMA — OFF.

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

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

  • -DDISABLE_PSI_ERROR=bool

    Исключить инструментарий ошибок сервера схемы производительности. Значение по умолчанию — 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, необходимый при построении обертки GCS для Java. Установите 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.4, «PAM Pluggable Authentication».) Если этот параметр указан, и плагин не может быть скомпилирован, сборка завершается неудачно.

  • -DWITH_AWS_SDK=path_name

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

  • -DWITH_CLIENT_PROTOCOL_TRACING=bool

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

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

    См. также параметр 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.

    Описание функции отладки синхронизации и способы использования точек синхронизации см. в MySQL Internals: Тестирование синхронизации.

  • -DWITH_LOG_DIAGNOSTIC

    Включает параметры серверной диагностической записи журнала (--log-diagnostic-enable и --log-diagnostic). Только для внутреннего использования.

  • -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 Plugin и 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 Full-Text Parser Plugin».

  • -DWITH_MSAN=bool

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

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

  • -DWITH_MSCRT_DEBUG=bool

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

  • -DMSVC_CPPCHECK=bool

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

  • -DWITH_MYSQLX=bool

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

  • -DWITH_NUMA=bool

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

    • Без параметра NUMA (обычный случай) CMake продолжает работу, выдав предупреждение: Библиотека NUMA отсутствует или не соответствует требуемой версии.

    • С параметром -DWITH_NUMA=ON, CMake прерывает работу с ошибкой: Библиотека NUMA отсутствует или не соответствует требуемой версии.

  • -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 на сервере, используется только в разработке и отладке. Не используется для релизных сборок и не поддерживается в production.

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

    Библиотека tcmalloc включена в исходный код; вы можете заставить сборку использовать встроенную версию, установив этот параметр в BUNDLED. BUNDLED поддерживается только в Linux-системах.

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

  • -DWITH_TEST_TRACE_PLUGIN=bool

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

    Примечание

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

    Для получения информации о написании плагинов трассировки см. Writing Protocol Trace Plugins.

  • -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. См. Building Debug Configurations.

  • -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 без сервера. По умолчанию OFF, что означает построение сервера.

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

    Этот параметр также предотвращает построение хранилища 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

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

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

  • -DNDB_UTILS_LINK_DYNAMIC={ON|OFF}

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

  • -DWITH_CLASSPATH=path

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

  • -DWITH_ERROR_INSERT={ON|OFF}

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

  • -DWITH_NDB={ON|OFF}

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

  • -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. По умолчанию OFF.

  • -DWITH_NDB_JAVA={ON|OFF}

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

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

  • -DWITH_NDB_PORT=port

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

  • -DWITH_NDB_TEST={ON|OFF}

    Если включено, включает набор тестовых программ API NDB. Значение по умолчанию 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-9.2-en/source-configuration-options.html

Spec-Zone.ru

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