Spec-Zone.ru › MySQL 9.2

7.1.8 Переменные системы сервера

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

Установка значения глобальной переменной системы во время выполнения обычно требует привилегии SYSTEM_VARIABLES_ADMIN (или устаревшей привилегии SUPER). Установка значения сеансовой переменной системы во время выполнения обычно не требует особых привилегий и может быть выполнена любым пользователем, хотя есть исключения. Дополнительную информацию см. в разделе 7.1.9.1 «Привилегии переменных системы»

Существует несколько способов просмотра имен и значений переменных системы:

  • Чтобы увидеть значения, используемые сервером на основе его скомпилированных значений по умолчанию и любых файлов параметров, которые он считывает, используйте следующую команду:

    mysqld --verbose --help
    
  • Чтобы увидеть значения, используемые сервером только на основе его скомпилированных значений по умолчанию, игнорируя настройки в любых файлах параметров, используйте следующую команду:

    mysqld --no-defaults --verbose --help
    
  • Чтобы увидеть текущие значения, используемые работающим сервером, используйте оператор SHOW VARIABLES или таблицы переменных системы Performance Schema. См. раздел 29.12.14 «Таблицы переменных системы Performance Schema».

В этом разделе описывается каждая переменная системы. Таблицу сводки переменных системы см. в разделе 7.1.5 «Справочник по переменным системы сервера». Дополнительную информацию об управлении переменными системы см. в разделе 7.1.9 «Использование переменных системы».

Для дополнительной информации о переменных системы см. следующие разделы:

  • Раздел 7.1.9 «Использование переменных системы» описывает синтаксис установки и отображения значений переменных системы.

  • Раздел 7.1.9.2 «Динамические переменные системы» перечисляет переменные, которые можно установить во время выполнения.

  • Информацию о настройке переменных системы можно найти в разделе 7.1.1 «Настройка сервера».

  • Раздел 17.14 «Параметры запуска InnoDB и переменные системы» перечисляет InnoDB переменных системы.

  • Раздел 25.4.3.9.2 «Переменные системы кластера NDB» перечисляет переменные системы, которые специфичны для кластера NDB.

  • Сведения о переменных системы сервера, специфичных для репликации, см. в разделе 19.1.6 «Опции и переменные репликации и двоичного протоколирования».

Примечание

Некоторые из следующих описаний переменных относятся к “включению” или “выключению” переменной. Эти переменные можно включить с помощью оператора SET, установив их значение в ON или 1, или выключить, установив их значение в OFF или 0. Булевы переменные могут быть установлены при запуске в значения ON, TRUE, OFF и FALSE (регистр не учитывается), а также 1 и 0. См. раздел 6.2.2.4 «Модификаторы параметров программы».

Некоторые переменные системы управляют размером буферов или кэшей. Для данного буфера серверу может потребоваться выделить внутренние структуры данных. Эти структуры обычно выделяются из общего объема памяти, выделенного для буфера, а объем требуемого пространства может зависеть от платформы. Это означает, что при присвоении значения переменной системы, контролирующей размер буфера, фактически доступное количество пространства может отличаться от назначенного значения. В некоторых случаях количество может быть меньше назначенного значения. Также возможно, что сервер скорректирует значение вверх. Например, если вы присвоите значение 0 переменной, для которой минимальное значение равно 1024, сервер установит значение в 1024.

Значения размеров буферов, длин и размеров стеков указаны в байтах, если не указано иное.

Примечание

Некоторые описания переменных системы включают размер блока, в этом случае значение, которое не является целым кратным указанного размера блока, округляется вниз до ближайшего меньшего кратного размера блока перед хранением сервером, т. е. до FLOOR(value) * block_size.

Пример: Предположим, что размер блока для данной переменной равен 4096, и вы устанавливаете значение переменной в 100000 (мы предполагаем, что максимальное значение переменной больше этого числа). Так как 100000 / 4096 = 24,4140625, сервер автоматически уменьшает значение до 98304 (24 * 4096) перед его сохранением.

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

Пример: Максимальное значение переменной системы показано как 4294967295 (232-1), а ее размер блока равен 1024. 4294967295 / 1024 = 4194303,9990234375, поэтому если вы установите эту переменную на ее указанное максимальное значение, фактически сохраненное значение будет 4194303 * 1024 = 4294966272.

Некоторые переменные системы принимают значения имен файлов. Если не указано иное, по умолчанию расположение файла находится в каталоге данных, если значение является относительным именем файла. Чтобы явно указать расположение, используйте абсолютное имя файла. Предположим, что каталог данных находится в /var/mysql/data. Если переменной, значением которой является имя файла, дано относительное имя, оно находится в /var/mysql/data. Если значение является абсолютным именем файла, его расположение указано этим именем.

  • activate_all_roles_on_login

    Формат командной строки --activate-all-roles-on-login[={OFF|ON}]
    Системная переменная activate_all_roles_on_login
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Включить автоматическую активацию всех предоставленных ролей при входе пользователей на сервер:

    • Если activate_all_roles_on_login включено, сервер активирует все роли, предоставленные каждому пользователю, при входе. Это имеет приоритет над ролями по умолчанию, указанными с помощью SET DEFAULT ROLE.

    • Если activate_all_roles_on_login отключено, сервер активирует роли по умолчанию, указанные с помощью SET DEFAULT ROLE, если таковые имеются, при входе.

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

    activate_all_roles_on_login применяется только при входе, а также в начале выполнения хранимых процедур и представлений, выполняемых в контексте создателя. Для изменения активных ролей в сеансе используйте SET ROLE. Для изменения активных ролей для хранимой процедуры тело процедуры должно выполнить SET ROLE.

  • admin_address

    Формат командной строки --admin-address=addr
    Системная переменная admin_address
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка

    IP-адрес, на котором нужно прослушивать TCP/IP-соединения на интерфейсе административной сети (см. Раздел 7.1.12.1, «Интерфейсы подключения»). Значение по умолчанию для admin_address отсутствует. Если эта переменная не указана при запуске, сервер не поддерживает административный интерфейс. Сервер также имеет системную переменную bind_address для настройки обычных (неадминистративных) клиентских TCP/IP-соединений. См. Раздел 7.1.12.1, «Интерфейсы подключения».

    Если admin_address указан, его значение должно соответствовать этим требованиям:

    • Значение должно быть единственным IPv4-адресом, IPv6-адресом или именем хоста.

    • Значение не может содержать формат адреса с подстановкой (*, 0.0.0.0 или ::).

    • Значение может включать спецификатор пространства имен сети.

    IP-адрес можно указать как IPv4- или IPv6-адрес. Если значение является именем хоста, сервер разрешает имя в IP-адрес и связывается с этим адресом. Если имя хоста разрешается на несколько IP-адресов, сервер использует первый IPv4-адрес, если таковой есть, или первый IPv6-адрес в противном случае.

    Сервер обрабатывает разные типы адресов следующим образом:

    • Если адрес является IPv4-адресом, отображаемым как IPv6, сервер принимает TCP/IP-соединения для этого адреса в формате IPv4 или IPv6. Например, если сервер связан с ::ffff:127.0.0.1, клиенты могут подключаться, используя --host=127.0.0.1 или --host=::ffff:127.0.0.1.

    • Если адрес является «обычным» IPv4- или IPv6-адресом (например, 127.0.0.1 или ::1), сервер принимает TCP/IP-соединения только для этого IPv4- или IPv6-адреса.

    Эти правила применяются к указанию пространства имен сети для адреса:

    • Для IP-адреса или имени хоста можно указать пространство имен сети.

    • Пространство имен сети не может быть указано для IP-адреса с подстановкой.

    • Для данного адреса пространство имен сети является необязательным. Если оно указано, оно должно быть указано как суффикс /ns непосредственно после адреса.

    • Адрес без суффикса /ns использует глобальное пространство имен системы хоста. Глобальное пространство имен, следовательно, является значением по умолчанию.

    • Адрес с суффиксом /ns использует пространство имен, названное ns.

    • Система хоста должна поддерживать пространства имен сети, и каждое именованное пространство имен должно быть предварительно настроено. Указание несуществующего пространства имен приводит к ошибке.

    Дополнительную информацию о пространствах имен сети см. в Разделе 7.1.14, «Поддержка пространств имен сети».

    Если привязка к адресу завершается ошибкой, сервер выводит сообщение об ошибке и не запускается.

    Системная переменная admin_address аналогична системной переменной bind_address, которая связывает сервер с адресом для обычных клиентских соединений, но с этими отличиями:

    • bind_address разрешает несколько адресов. admin_address разрешает один адрес.

    • bind_address разрешает адреса с подстановкой. admin_address не разрешает.

  • admin_port

    Формат командной строки --admin-port=port_num
    Системная переменная admin_port
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 33062
    Минимальное значение 0
    Максимальное значение 65535

    Номер порта TCP/IP для подключений на административном сетевом интерфейсе (см. Раздел 7.1.12.1, «Интерфейсы подключения»). Установка этой переменной в 0 приводит к использованию значения по умолчанию.

    Установка admin_port не имеет эффекта, если admin_address не указан, так как в этом случае сервер не поддерживает административный сетевой интерфейс.

  • admin_ssl_ca

    Формат командной строки --admin-ssl-ca=file_name
    Системная переменная admin_ssl_ca
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Системная переменная admin_ssl_ca подобна ssl_ca, за исключением того, что она применяется к административному интерфейсу подключения, а не к основному. Сведения о настройке поддержки шифрования для административного интерфейса см. в Разделе «Поддержка административного интерфейса для защищенных подключений».

  • admin_ssl_capath

    Формат командной строки --admin-ssl-capath=dir_name
    Системная переменная admin_ssl_capath
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Имя каталога
    Значение по умолчанию NULL

    Системная переменная admin_ssl_capath подобна переменной ssl_capath, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.

  • admin_ssl_cert

    Формат командной строки --admin-ssl-cert=file_name
    Системная переменная admin_ssl_cert
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Системная переменная admin_ssl_cert подобна переменной ssl_cert, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.

  • admin_ssl_cipher

    Формат командной строки --admin-ssl-cipher=name
    Системная переменная admin_ssl_cipher
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Строка
    Значение по умолчанию NULL

    Системная переменная admin_ssl_cipher подобна переменной ssl_cipher, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.

    В списке, задаваемом этой переменной, могут быть любые из следующих значений:

    • ECDHE-ECDSA-AES128-GCM-SHA256

    • ECDHE-ECDSA-AES256-GCM-SHA384

    • ECDHE-RSA-AES128-GCM-SHA256

    • ECDHE-RSA-AES256-GCM-SHA384

    • ECDHE-ECDSA-CHACHA20-POLY1305

    • ECDHE-RSA-CHACHA20-POLY1305

    • ECDHE-ECDSA-AES256-CCM

    • ECDHE-ECDSA-AES128-CCM

    • DHE-RSA-AES128-GCM-SHA256

    • DHE-RSA-AES256-GCM-SHA384

    • DHE-RSA-AES256-CCM

    • DHE-RSA-AES128-CCM

    • DHE-RSA-CHACHA20-POLY1305

    Попытка включить в список шифров значения, не указанные здесь, при настройке этой переменной приводит к ошибке ().

  • admin_ssl_crl

    Формат командной строки --admin-ssl-crl=file_name
    Системная переменная admin_ssl_crl
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Системная переменная admin_ssl_crl подобна переменной ssl_crl, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.

  • admin_tls_ciphersuites

    Формат командной строки --admin-tls-ciphersuites=ciphersuite_list
    Системная переменная admin_tls_ciphersuites
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию NULL

    Системная переменная admin_tls_ciphersuites похожа на tls_ciphersuites, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в Поддержке шифрованных подключений административного интерфейса.

    Значение представляет собой список нуля или более имён шифров, разделённых двоеточием, из тех, что перечислены здесь:

    • TLS_AES_128_GCM_SHA256

    • TLS_AES_256_GCM_SHA384

    • TLS_CHACHA20_POLY1305_SHA256

    • TLS_AES_128_CCM_SHA256

    Попытка включить в список шифров значения, которые здесь не показаны, при настройке этой переменной вызывает ошибку ().

  • admin_tls_version

    Формат командной строки --admin-tls-version=protocol_list
    Системная переменная admin_tls_version
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию TLSv1.2,TLSv1.3

    Системная переменная admin_tls_version похожа на tls_version, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в Поддержке шифрованных подключений административного интерфейса.

    Важно
    • MySQL 9.2 не поддерживает протоколы подключения TLSv1 и TLSv1.1. Дополнительную информацию см. в ...

    • MuySQL 9.2 поддерживает протокол TLSv1.3, при условии, что сервер MySQL был скомпилирован с использованием OpenSSL 1.1.1 или более поздней версии. Сервер проверяет версию OpenSSL при запуске, и если она старше 1.1.1, TLSv1.3 удаляется из значения по умолчанию для системной переменной. В этом случае значением по умолчанию является TLSv1.2.

  • authentication_openid_connect_configuration

    Формат командной строки --authentication_openid_connect_configuration
    Системная переменная authentication_openid_connect_configuration
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Определяет список издателей и соответствующих открытых ключей подписи, используемых для проверки подписи токена идентификации для Раздела 8.4.1.9, «Подключаемая аутентификация OpenID Connect». Принимает строку JSON с префиксом JSON:// или полный путь к файлу JSON с префиксом file://.

  • authentication_policy

    Формат командной строки --authentication-policy=value
    Системная переменная authentication_policy
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию *,,

    Эта переменная используется для администрирования возможностей многофакторной аутентификации (MFA). Для операторов CREATE USER и ALTER USER, используемых для управления определениями учетных записей MySQL, она определяет, какой(ие) фактор(ы) аутентификации могут быть указаны, где “фактор” соответствует методу или плагину аутентификации, связанному с учетной записью. authentication_policy определяет следующие аспекты многофакторной аутентификации:

    • Количество факторов аутентификации.

    • Допустимые плагины (или методы) для каждого фактора.

    • Плагин аутентификации по умолчанию для спецификаций аутентификации, которые не указывают плагин явно.

    Поскольку authentication_policy применяется только при создании или изменении учетных записей, изменения его значения не влияют на существующие учетные записи пользователей.

    Примечание

    Хотя системная переменная authentication_policy накладывает определенные ограничения на связанные с аутентификацией предложения операторов CREATE USER и ALTER USER, пользователь, обладающий привилегией AUTHENTICATION_POLICY_ADMIN, не подчиняется этим ограничениям. (Предупреждение возникает для операторов, которые в противном случае не были бы разрешены.)

    Значение authentication_policy представляет собой список из 1, 2 или 3 элементов, разделенных запятыми, каждый из которых соответствует фактору аутентификации и имеет одну из перечисленных здесь форм со своими значениями:

    • пустой

      Фактор аутентификации является необязательным; может использоваться любой плагин аутентификации.

    • *

      Фактор аутентификации является обязательным; может использоваться любой плагин аутентификации.

    • plugin_name

      Фактор аутентификации является обязательным; этот фактор должен быть plugin_name.

    • *:plugin_name

      Фактор аутентификации является обязательным; plugin_name является значением по умолчанию, но может использоваться другой плагин аутентификации.

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

    authentication_policy должен содержать хотя бы один непустой фактор, а любые пустые факторы должны идти в конце списка после любых непустых факторов. Это означает, что ',,' не допускается, поскольку это означает, что все факторы являются необязательными. Каждая учетная запись должна иметь хотя бы один фактор аутентификации.

    Значение по умолчанию для authentication_policy — '*,,'. Это означает, что фактор 1 является обязательным в определениях учетных записей и может использовать любой плагин аутентификации (с caching_sha2_password по умолчанию), а факторы 2 и 3 являются необязательными и каждый может использовать любой плагин аутентификации.

    Если authentication_policy не указывает плагин по умолчанию для первого фактора, плагином по умолчанию для этого фактора является caching_sha2_password, хотя может использоваться и другой плагин.

    В следующей таблице показаны некоторые возможные значения для authentication_policy и политика, которую каждый из них устанавливает для создания или изменения учетных записей.

    Таблица 7.4 Примеры значений authentication_policy

    Таблица 7.4 Примеры значений authentication_policy
    authentication_policy Политика
    '*' Только один фактор, который использует caching_sha2_password, хотя может использоваться и другой плагин.
    '*,*' Только два фактора; первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой плагин; второй может использовать любой плагин.
    '*,*,*' Только три фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой плагин; второй и третий факторы могут использовать любые плагины.
    '*,' Один или два фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой плагин; второй фактор является необязательным и может использовать любой плагин.
    '*,,' Один, два или три фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой плагин; второй и третий факторы являются необязательными и могут использовать любые плагины.
    '*,*,' Два или три фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой плагин; второй фактор является обязательным, а третий — необязательным; второй и третий факторы могут использовать любые плагины.
    '*,auth_plugin' Два фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой плагин; второй фактор должен быть именованным плагином.
    'auth_plugin,*,' Два или три фактора, где первый фактор должен быть именованным плагином; второй фактор является обязательным, но может использовать любой плагин; третий фактор является необязательным и может использовать любой плагин.
    '*,*:auth_plugin' Два фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой плагин; второй фактор является обязательным и использует именованный плагин, но может использоваться и другой плагин.
    'auth_plugin,' Один или два фактора, где первый фактор должен быть именованным плагином; второй фактор является необязательным и может использовать любой плагин.
    '*:auth_plugin,*,' Два или три фактора, где первый фактор должен быть именованным плагином; второй фактор является обязательным и может использовать любой плагин, а третий фактор является необязательным и может использовать любой плагин.
    'auth_plugin,auth_plugin,auth_plugin' Три фактора, где все три фактора должны использовать именованные плагины.

  • authentication_windows_log_level

    Формат командной строки --authentication-windows-log-level=#
    Системная переменная authentication_windows_log_level
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 2
    Минимальное значение 0
    Максимальное значение 4

    Эта переменная доступна только в том случае, если включен плагин аутентификации Windows authentication_windows и включен код отладки. См. Раздел 8.4.1.5, «Плагинная аутентификация Windows».

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

    Значение Описание
    0 Журналирование отключено
    1 Регистрировать только сообщения об ошибках
    2 Регистрировать сообщения уровня 1 и предупреждающие сообщения
    3 Регистрировать сообщения уровня 2 и информационные заметки
    4 Регистрировать сообщения уровня 3 и отладочные сообщения
  • authentication_windows_use_principal_name

    Формат командной строки --authentication-windows-use-principal-name[={OFF|ON}]
    Переменная системы authentication_windows_use_principal_name
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Эта переменная доступна только в случае, если плагин Windows-аутентификации authentication_windows включён. См. Раздел 8.4.1.5, «Windows Pluggable Authentication».

    Клиент, который выполняет аутентификацию с помощью функции InitSecurityContext(), должен предоставить строку, идентифицирующую сервис, к которому он подключается (targetName). MySQL использует имя принципа (UPN) учётной записи, под которой работает сервер. UPN имеет вид user_id@computer_name и не требует регистрации для использования. Это UPN отправляется сервером в начале процесса рукопожатия аутентификации.

    Эта переменная управляет отправкой сервером UPN в начальном запросе. По умолчанию переменная включена. По соображениям безопасности она может быть отключена, чтобы избежать отправки имени учётной записи сервера клиенту в открытом виде. Если переменная отключена, сервер всегда отправляет байт 0x00 в первом запросе, клиент не указывает targetName, и в результате используется аутентификация NTLM.

    Если сервер не может получить своё UPN (что происходит в основном в средах, не поддерживающих аутентификацию Kerberos), UPN не отправляется сервером, и используется аутентификация NTLM.

  • autocommit

    Формат командной строки --autocommit[={OFF|ON}]
    Переменная системы autocommit
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Режим автоматического подтверждения. Если значение равно 1, все изменения в таблице вступают в силу немедленно. Если значение равно 0, необходимо использовать COMMIT для подтверждения транзакции или ROLLBACK для её отмены. Если autocommit равно 0 и вы измените его на 1, MySQL выполнит автоматическое COMMIT любой открытой транзакции. Другой способ начать транзакцию — использование START TRANSACTION или BEGIN оператора. См. Раздел 15.3.1, «START TRANSACTION, COMMIT, and ROLLBACK Statements».

    По умолчанию подключения клиентов начинаются с autocommit равным 1. Чтобы клиенты начинали с значения по умолчанию 0, установите глобальное значение autocommit при запуске сервера с параметром --autocommit=0. Чтобы установить переменную с помощью файла настроек, добавьте эти строки:

    [mysqld]
    autocommit=0
    
  • automatic_sp_privileges

    Формат командной строки --automatic-sp-privileges[={OFF|ON}]
    Переменная системы automatic_sp_privileges
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Когда значение этой переменной равно 1 (по умолчанию), сервер автоматически предоставляет привилегии EXECUTE и ALTER ROUTINE создателю хранимой процедуры, если пользователь ещё не имеет права на выполнение и изменение/удаление процедуры. (Привилегия ALTER ROUTINE требуется для удаления процедуры.) Сервер также автоматически лишает создателя этих привилегий при удалении процедуры. Если automatic_sp_privileges равно 0, сервер не добавляет и не удаляет эти привилегии автоматически.

    Создателем процедуры является учётная запись, используемая для выполнения оператора CREATE для неё. Это может отличаться от учётной записи, указанной как DEFINER в определении процедуры.

    Если вы запускаете mysqld с --skip-new, automatic_sp_privileges устанавливается в OFF.

    Действие этой переменной одинаково в отношении JavaScript-библиотек и хранимых процедур; когда automatic_sp_privileges равно 1, привилегии EXECUTE и ALTER ROUTINE автоматически предоставляются создателю библиотеки, если у создателя этих привилегий ещё нет.

    См. также Раздел 27.2.2, «Хранимые процедуры и привилегии MySQL».

  • auto_generate_certs

    Формат командной строки --auto-generate-certs[={OFF|ON}]
    Переменная системы auto_generate_certs
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Эта переменная управляет автоматическим созданием файлов ключей и сертификатов SSL в каталоге данных, если они ещё не существуют.

    При запуске сервер автоматически генерирует файлы сертификатов и ключей SSL для серверной и клиентской сторон в каталоге данных, если переменная системы auto_generate_certs включена и файлы SSL для сервера отсутствуют в каталоге данных. Эти сертификаты всегда генерируются в таких случаях, независимо от значений других TLS-параметров. Эти сертификаты и ключи позволяют устанавливать безопасные клиентские соединения с использованием SSL; см. Раздел 8.3.1, «Настройка MySQL для использования зашифрованных соединений».

    Дополнительную информацию об автоматическом создании файлов SSL, включая имена и характеристики файлов, см. в Разделе 8.3.3.1, «Создание сертификатов и ключей SSL и RSA с помощью MySQL»

    Переменные sha256_password_auto_generate_rsa_keys и caching_sha2_password_auto_generate_rsa_keys взаимосвязаны, но управляют автоматическим созданием пар ключей RSA, необходимых для безопасного обмена паролями с использованием RSA по незашифрованным соединениям.

END_OF_DOCUMENT_MARKER
  • back_log

    Формат командной строки --back-log=#
    Системная переменная back_log
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применимо подсказка Нет
    Тип Целое число
    Значение по умолчанию -1 (указывает на автоматическое изменение размера; не присваивайте это значение в явном виде)
    Минимальное значение 1
    Максимальное значение 65535

    Количество ожидающих запросов на подключение, которые может обработать MySQL. Это значение становится важным, когда основной поток MySQL получает очень большое количество запросов на подключение за очень короткий промежуток времени. Тогда основному потоку требуется некоторое время (хотя и очень небольшое), чтобы проверить подключение и запустить новый поток. Значение back_log указывает, сколько запросов можно накопить за это короткое время, прежде чем MySQL временно перестанет обрабатывать новые запросы. Увеличивать это значение необходимо только если ожидается большое количество подключений за короткий промежуток времени.

    Другими словами, это значение представляет размер очереди для входящих TCP/IP соединений. Ваша операционная система имеет собственный предел для размера этой очереди. Более подробная информация должна быть в руководстве по системному вызову Unix listen(). Обратитесь к документации вашей ОС, чтобы узнать максимальное значение для этой переменной. back_log не может быть установлено выше предела, заданного вашей операционной системой.

    Значение по умолчанию равно значению max_connections, что позволяет регулировать ожидаемую очередь в соответствии с максимальным количеством допустимых подключений.

  • basedir

    Формат командной строки --basedir=dir_name
    Системная переменная basedir
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применимо подсказка Нет
    Тип Имя каталога
    Значение по умолчанию parent of mysqld installation directory

    Путь к основной директории установки MySQL.

  • big_tables

    Формат командной строки --big-tables[={OFF|ON}]
    Системная переменная big_tables
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    При включении сервер сохраняет все временные таблицы на диске вместо оперативной памяти. Это предотвращает большинство ошибок The table tbl_name is full для операций SELECT, требующих большой временной таблицы, но также замедляет запросы, для которых временные таблицы в оперативной памяти были бы достаточны.

    Значение по умолчанию для новых подключений — OFF (использовать временные таблицы в памяти). Обычно необходимость в включении этой переменной не возникает. Когда временные внутренние таблицы в памяти управляются движком хранения TempTable (по умолчанию), и превышен максимальный объём памяти, который может занимать движок хранения TempTable, движок хранения TempTable начинает сохранять данные во временные файлы на диске. Когда временные таблицы в памяти управляются движком хранения MEMORY, таблицы в памяти автоматически преобразуются в таблицы на диске по мере необходимости. Дополнительная информация содержится в Разделе 10.4.4, «Использование внутренних временных таблиц в MySQL».

  • bind_address

    Формат командной строки --bind-address=addr
    Системная переменная bind_address
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию *

    Сервер MySQL прослушивает один или несколько сетевых сокетов для подключений TCP/IP. Каждый сокет привязан к одному адресу, но один адрес может быть сопоставлен с несколькими сетевыми интерфейсами. Для указания способа прослушивания сервером подключений TCP/IP, установите системную переменную bind_address при запуске сервера. Сервер также имеет системную переменную admin_address, которая позволяет устанавливать административные подключения на выделенном интерфейсе. См. Раздел 7.1.12.1, “Интерфейсы подключений”.

    Если задано bind_address, оно принимает список из одного или нескольких значений адресов, каждое из которых может указывать на единственный IP-адрес или имя хоста без использования подстановочных символов. Каждый адрес может включать указатель сетевого пространства имён. Если указан только один адрес, он может использовать один из форматов адресов с подстановкой символов, которые позволяют прослушивать подключения на нескольких сетевых интерфейсах (*, 0.0.0.0 или ::). Несколько адресов разделяются запятыми. Когда указано несколько значений, каждое значение должно указывать на единственный IP-адрес (IPv4 или IPv6) или имя хоста без использования подстановочных символов, и форматы адресов с подстановкой символов (*, 0.0.0.0 или ::) запрещены.

    IP-адреса могут быть указаны как IPv4 или IPv6 адреса. Для любого значения, являющегося именем хоста, сервер разрешает имя в IP-адрес и привязывается к этому адресу. Если имя хоста разрешается в несколько IP-адресов, сервер использует первый IPv4 адрес, если таковой имеется, или первый IPv6 адрес в противном случае.

    Сервер обрабатывает различные типы адресов следующим образом:

    • Если адрес - *, сервер принимает TCP/IP подключения на все IPv4 интерфейсы хоста сервера и, если хост сервера поддерживает IPv6, на все IPv6 интерфейсы. Используйте этот адрес, чтобы разрешить как IPv4, так и IPv6 подключения на всех интерфейсах сервера. Это значение является значением по умолчанию. Если переменная указывает список нескольких значений, это значение недопустимо.

    • Если адрес - 0.0.0.0, сервер принимает TCP/IP подключения на все IPv4 интерфейсы хоста сервера. Если переменная указывает список нескольких значений, это значение недопустимо.

    • Если адрес - ::, сервер принимает TCP/IP подключения на все IPv4 и IPv6 интерфейсы хоста сервера. Если переменная указывает список нескольких значений, это значение недопустимо.

    • Если адрес - IPv4-адрес в формате, отображаемом как IPv6, сервер принимает TCP/IP подключения для этого адреса в формате IPv4 или IPv6. Например, если сервер привязан к ::ffff:127.0.0.1, клиенты могут подключиться используя --host=127.0.0.1 или --host=::ffff:127.0.0.1.

    • Если адрес - “обычный” IPv4 или IPv6 адрес (например, 127.0.0.1 или ::1), сервер принимает TCP/IP подключения только для указанного IPv4 или IPv6 адреса.

    Эти правила применяются к указанию сетевого пространства имён для адреса:

    • Для IP-адреса или имени хоста можно указать сетевое пространство имён.

    • Сетевое пространство имён не может быть указано для IP-адреса с подстановкой символов.

    • Для данного адреса сетевое пространство имён является необязательным. Если оно указано, оно должно быть указано как суффикс /ns сразу после адреса.

    • Адрес без суффикса /ns использует глобальное пространство имён хостовой системы. Глобальное пространство имён является, следовательно, значением по умолчанию.

    • Адрес с суффиксом /ns использует пространство имён с именем ns.

    • Хостовая система должна поддерживать сетевые пространства имён, и каждое именованное пространство имён должно быть предварительно настроено. Указание несуществующего пространства имён приводит к ошибке.

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

    Дополнительную информацию о сетевых пространствах имён см. в Разделе 7.1.14, “Поддержка сетевых пространств имён”.

    Если привязка к любому адресу завершается ошибкой, сервер выдаёт ошибку и не запускается.

    Примеры:

    • bind_address=*

      Сервер прослушивает все IPv4 или IPv6 адреса, как указано подстановкой символов *.

    • bind_address=198.51.100.20

      Сервер прослушивает только адрес 198.51.100.20 IPv4.

    • bind_address=198.51.100.20,2001:db8:0:f101::1

      Сервер прослушивает адрес 198.51.100.20 IPv4 и адрес 2001:db8:0:f101::1 IPv6.

    • bind_address=198.51.100.20,*

      Это приводит к ошибке, так как адреса с подстановкой символов недопустимы, когда bind_address называет список из нескольких значений.

    • bind_address=198.51.100.20/red,2001:db8:0:f101::1/blue,192.0.2.50

      Сервер прослушивает адрес 198.51.100.20 IPv4 в пространстве имён red, адрес 2001:db8:0:f101::1 IPv6 в пространстве имён blue и адрес 192.0.2.50 IPv4 в глобальном пространстве имён.

    Когда bind_address называет единственное значение (с подстановкой символов или без), сервер прослушивает на одном сокете, который для адреса с подстановкой символов может быть привязан к нескольким сетевым интерфейсам. Когда bind_address называет список из нескольких значений, сервер прослушивает на одном сокете на каждое значение, при этом каждый сокет привязан к одному сетевому интерфейсу. Количество сокетов прямо пропорционально количеству указанных значений. В зависимости от эффективности приема подключений операционной системой, длинные списки значений могут привести к снижению производительности при приёме TCP/IP подключений.

    Поскольку для сокетов прослушивания и файлов сетевых пространств имён выделены дескрипторы файлов, может потребоваться увеличить системную переменную open_files_limit.

    Если вы собираетесь привязать сервер к определённому адресу, убедитесь, что системная таблица mysql.user содержит учётную запись с административными привилегиями, которую можно использовать для подключения к этому адресу. В противном случае вы не сможете остановить сервер. Например, если вы привязываете сервер к *, вы можете подключиться к нему с использованием всех существующих учётных записей. Но если вы привязываете сервер к ::1, он принимает подключения только по этому адресу. В этом случае, сначала убедитесь, что учётная запись 'root'@'::1' присутствует в таблице mysql.user, чтобы вы могли подключиться к серверу для его остановки.

  • block_encryption_mode

    Формат командной строки --block-encryption-mode=#
    Системная переменная block_encryption_mode
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию aes-128-ecb

    Эта переменная управляет режимом шифрования блоков для блочных алгоритмов, таких как AES. Она влияет на шифрование для AES_ENCRYPT() и AES_DECRYPT().

    block_encryption_mode принимает значение в формате aes-keylen-mode, где keylen - длина ключа в битах, а mode - режим шифрования. Значение не чувствительно к регистру. Разрешённые значения keylen - 128, 192 и 256. Разрешённые значения mode - ECB, CBC, CFB1, CFB8, CFB128 и OFB.

    Например, эта команда заставляет функции шифрования AES использовать длину ключа 256 бит и режим CBC:

    SET block_encryption_mode = 'aes-256-cbc';
    

    При попытке установить block_encryption_mode на значение, содержащее недопустимую длину ключа или режим, который не поддерживается библиотекой SSL, произойдёт ошибка.

  • build_id

    Системная переменная build_id
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Специфично для платформы Linux

    Это 160-битная SHA1 подпись, которая генерируется компоновщиком при компиляции сервера на системах Linux с -DWITH_BUILD_ID=ON (включена по умолчанию) и преобразуется в шестнадцатеричную строку. Это значение только для чтения служит уникальным идентификатором сборки и записывается в лог сервера при запуске.

    build_id не поддерживается на платформах, отличных от Linux.

  • bulk_insert_buffer_size

    Формат командной строки --bulk-insert-buffer-size=#
    Системная переменная bulk_insert_buffer_size
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 8388608
    Минимальное значение 0
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байт/поток

    MyISAM использует специальный кэш древовидной структуры, чтобы ускорить массовую вставку для INSERT ... SELECT, INSERT ... VALUES (...), (...), ... и LOAD DATA при добавлении данных в незаполненные таблицы. Эта переменная ограничивает размер дерева кэша в байтах на поток. Установка значения 0 отключает эту оптимизацию. Значение по умолчанию — 8 МБ.

    Установка значения сессии этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. Раздел 7.1.9.1, «Привилегии системных переменных».

  • caching_sha2_password_digest_rounds

    Формат командной строки --caching-sha2-password-digest-rounds=#
    Системная переменная caching_sha2_password_digest_rounds
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 5000
    Минимальное значение 5000
    Максимальное значение 4095000

    Количество раундов хэширования, используемых плагином аутентификации caching_sha2_password для хранения паролей.

    Увеличение количества раундов хэширования выше значения по умолчанию приводит к снижению производительности, которое коррелирует с величиной увеличения:

    • Создание учетной записи, использующей плагин caching_sha2_password, не влияет на сеанс клиента, в котором создается учетная запись, но сервер должен выполнить раунды хэширования для завершения операции.

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

  • caching_sha2_password_auto_generate_rsa_keys

    Формат командной строки --caching-sha2-password-auto-generate-rsa-keys[={OFF|ON}]
    Системная переменная caching_sha2_password_auto_generate_rsa_keys
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию ON

    Сервер использует эту переменную, чтобы определить, следует ли автоматически генерировать файлы пар закрытых/открытых ключей RSA в каталоге данных, если их еще нет.

    При запуске сервер автоматически генерирует файлы пар закрытых/открытых ключей RSA в каталоге данных, если выполняются все следующие условия: Системная переменная sha256_password_auto_generate_rsa_keys или caching_sha2_password_auto_generate_rsa_keys включена; параметры RSA не указаны; файлы RSA отсутствуют в каталоге данных. Эти файлы пар ключей обеспечивают безопасный обмен паролями с использованием RSA по незашифрованным соединениям для учетных записей, аутентифицированных с помощью плагина sha256_password (устаревший) или caching_sha2_password; см. Раздел 8.4.1.2, «SHA-256 подключаемая аутентификация» и Раздел 8.4.1.1, «Кэширование SHA-2 подключаемой аутентификации».

    Для получения дополнительной информации об автоматическом создании файлов RSA, включая имена и характеристики файлов, см. Раздел 8.3.3.1, «Создание SSL и RSA сертификатов и ключей с использованием MySQL»

    Системная переменная auto_generate_certs связана, но управляет автоматическим созданием файлов сертификатов и ключей SSL, необходимых для безопасных соединений с использованием SSL.

  • caching_sha2_password_private_key_path

    Формат командной строки --caching-sha2-password-private-key-path=file_name
    Системная переменная caching_sha2_password_private_key_path
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию private_key.pem

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

    Важно

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

    Для получения информации о caching_sha2_password, см. Раздел 8.4.1.1, «Кэширование SHA-2 подключаемой аутентификации».

  • caching_sha2_password_public_key_path

    Формат командной строки --caching-sha2-password-public-key-path=file_name
    Системная переменная caching_sha2_password_public_key_path
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию public_key.pem

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

    Для получения информации о caching_sha2_password, включая информацию о том, как клиенты запрашивают открытый ключ RSA, см. Раздел 8.4.1.1, «Кэширование SHA-2 подключаемой аутентификации».

  • character_set_client

    Системная переменная character_set_client
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb4

    Кодировка для запросов, поступающих от клиента. Значение этой переменной для сессии устанавливается с использованием кодировки, запрошенной клиентом при подключении к серверу. (Многие клиенты поддерживают опцию --default-character-set для явного указания кодировки. См. также Раздел 12.4, «Кодировки и сортировки соединений».) Глобальное значение переменной используется для установки значения сессии в случаях, когда запрашиваемое клиентом значение неизвестно или недоступно, или сервер настроен на игнорирование запросов клиента. Это может произойти, когда клиент запрашивает кодировку, неизвестную серверу, например, когда клиент с поддержкой японского языка запрашивает sjis при подключении к серверу, не настроенному с поддержкой sjis.

    Некоторые кодировки не могут использоваться в качестве кодировки клиента. Попытка использовать их в качестве значения character_set_client приводит к ошибке. См. Недопустимые кодировки клиента.

  • character_set_connection

    Системная переменная character_set_connection
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb4

    Кодировка, используемая для литералов, указанных без указателя кодировки, и для преобразования числа в строку. Для получения информации о вводных данных см. Раздел 12.3.8, «Указатели кодировки».

  • character_set_database

    Системная переменная character_set_database
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb4
    Примечание Этот параметр является динамическим, но должен устанавливаться только сервером. Не следует устанавливать эту переменную вручную.

    Кодировка, используемая базой данных по умолчанию. Сервер устанавливает эту переменную всякий раз, когда изменяется база данных по умолчанию. Если базы данных по умолчанию нет, переменная имеет то же значение, что и character_set_server.

    Установка значения сессии этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. Раздел 7.1.9.1, «Права на системные переменные».

    Глобальные системные переменные character_set_database и collation_database устарели; ожидается, что они будут удалены в будущей версии MySQL.

    Присваивание значения системным переменным сессии character_set_database и collation_database устарело, и присваивания выдают предупреждение. Ожидается, что переменные сессии станут доступными только для чтения (и присваивания им будут вызывать ошибку) в будущей версии MySQL, в которой останется возможность доступа к переменным сессии для определения кодировки и сортировки базы данных для базы данных по умолчанию.

  • character_set_filesystem

    Формат командной строки --character-set-filesystem=name
    Системная переменная character_set_filesystem
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию binary

    Кодировка файловой системы. Эта переменная используется для интерпретации строковых литералов, которые ссылаются на имена файлов, например, в операторах LOAD DATA и SELECT ... INTO OUTFILE и функции LOAD_FILE(). Такие имена файлов преобразуются из character_set_client в character_set_filesystem перед попыткой открытия файла. Значение по умолчанию — binary, что означает, что преобразование не происходит. Для систем, на которых разрешены многобайтовые имена файлов, другое значение может быть более подходящим. Например, если система представляет имена файлов с помощью UTF-8, установите character_set_filesystem в 'utf8mb4'.

    Установка значения сессии этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. Раздел 7.1.9.1, «Права на системные переменные».

  • character_set_results

    Системная переменная character_set_results
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb4

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

  • character_set_server

    Формат командной строки --character-set-server=name
    Системная переменная character_set_server
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb4

    Кодировка сервера по умолчанию. См. Раздел 12.15, «Настройка кодировки». Если вы устанавливаете эту переменную, вы также должны установить collation_server для указания сортировки для кодировки.

  • character_set_system

    Системная переменная character_set_system
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb3

    Кодировка, используемая сервером для хранения идентификаторов. Значение всегда равно utf8mb3.

  • character_sets_dir

    Формат командной строки --character-sets-dir=dir_name
    Системная переменная character_sets_dir
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Имя каталога

    Каталог, в котором установлены наборы символов. См. Раздел 12.15, «Настройка наборов символов».

  • check_proxy_users

    Формат командной строки --check-proxy-users[={OFF|ON}]
    Системная переменная check_proxy_users
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Некоторые плагины аутентификации реализуют отображение псевдопользователей для себя (например, плагины аутентификации PAM и Windows). Другие плагины аутентификации по умолчанию не поддерживают псевдопользователей. Из них некоторые могут запросить, чтобы сам сервер MySQL отображал псевдопользователей в соответствии с предоставленными привилегиями для псевдопользователей: mysql_native_password (устарело), sha256_password (устарело).

    Если системная переменная check_proxy_users включена, сервер выполняет отображение псевдопользователей для любых плагинов аутентификации, которые делают такой запрос. Чтобы воспользоваться поддержкой серверного отображения псевдопользователей для плагина sha256_password, необходимо включить sha256_password_proxy_users.

    Сведения об отображении пользователей см. в Разделе 8.2.19, «Псевдопользователи».

  • collation_connection

    Системная переменная collation_connection
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Сортировка набора символов соединения. collation_connection важна для сравнения строковых литералов. Для сравнения строк со значениями столбцов collation_connection не имеет значения, потому что столбцы имеют свою сортировку, которая имеет более высокую сортировочную приоритетность (см. Раздел 12.8.4, «Сортировка согласованности в выражениях»).

    Использование имени настроенной сортировки для этой переменной приводит к появлению предупреждения.

  • collation_database

    Системная переменная collation_database
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию utf8mb4_0900_ai_ci
    Примечание Этот параметр динамический, но должен устанавливаться только сервером. Вы не должны устанавливать эту переменную вручную.

    Сортировка, используемая для базы данных по умолчанию. Сервер устанавливает эту переменную всякий раз, когда изменяется база данных по умолчанию. Если базы данных по умолчанию нет, значение переменной совпадает со значением collation_server.

    Глобальные системные переменные character_set_database и collation_database устарели; ожидается их удаление в будущей версии MySQL.

    Назначение значения сессионным системным переменным character_set_database и collation_database устарело, и назначения приводят к появлению предупреждения. Ожидается, что сессионные переменные станут только для чтения (а назначения приведут к ошибке) в будущей версии MySQL, в которой по-прежнему возможно получить доступ к сессионным переменным для определения набора символов базы данных и сортировки для базы данных по умолчанию.

    Использование имени настроенной сортировки для collation_database приводит к появлению предупреждения.

  • collation_server

    Формат командной строки --collation-server=name
    Системная переменная collation_server
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию utf8mb4_0900_ai_ci

    Сортировка по умолчанию сервера. См. Раздел 12.15, «Настройка наборов символов».

    Установка значения, соответствующего имени настроенной сортировки, приводит к появлению предупреждения.

  • completion_type

    Формат командной строки --completion-type=#
    Системная переменная completion_type
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию NO_CHAIN
    Допустимые значения

    NO_CHAIN

    CHAIN

    RELEASE

    0

    1

    2

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

    Значение Описание
    NO_CHAIN (или 0) COMMIT и ROLLBACK не затрагиваются. Это значение по умолчанию.
    CHAIN (или 1) COMMIT и ROLLBACK эквивалентны COMMIT AND CHAIN и ROLLBACK AND CHAIN соответственно. (Новая транзакция начинается сразу же с таким же уровнем изоляции, как и только что завершенная транзакция.)
    RELEASE (или 2) COMMIT и ROLLBACK эквивалентны COMMIT RELEASE и ROLLBACK RELEASE соответственно. (Сервер отключается после завершения транзакции.)

    completion_type влияет на транзакции, которые начинаются с START TRANSACTION или BEGIN и заканчиваются COMMIT или ROLLBACK. Он не применяется к неявным фиксациям, возникающим в результате выполнения операторов, перечисленных в разделе 15.3.3, «Операторы, вызывающие неявную фиксацию». Он также не применяется к XA COMMIT, XA ROLLBACK, или когда autocommit=1.

  • component_scheduler.enabled

    Формат командной строки --component-scheduler.enabled[=value]
    Системная переменная component_scheduler.enabled
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    При установке в OFF при запуске фоновый поток не запускается. Задачи по-прежнему можно планировать, но они не выполняются, пока component_scheduler не будет включено. При установке в ON при запуске компонент полностью работоспособен.

    Также можно задавать значение динамически, чтобы получить следующие эффекты:

    • ON запускает фоновый поток, который начинает обслуживать очередь немедленно.

    • OFF сигнализирует о завершении фонового потока, который ожидает его окончания. Фоновый поток проверяет флаг завершения перед доступом к очереди, чтобы проверить наличие задач для выполнения.

  • concurrent_insert

    Формат командной строки --concurrent-insert[=value]
    Системная переменная concurrent_insert
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию AUTO
    Допустимые значения

    NEVER

    AUTO

    ALWAYS

    0

    1

    2

    Если AUTO (значение по умолчанию), MySQL разрешает операторам INSERT и SELECT выполняться одновременно для таблиц MyISAM, не имеющих свободных блоков в середине файла данных.

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

    Значение Описание
    NEVER (или 0) Отключает одновременные вставки
    AUTO (или 1) (По умолчанию) Включает одновременную вставку для таблиц MyISAM, не имеющих пробелов
    ALWAYS (или 2) Включает одновременные вставки для всех таблиц MyISAM, даже тех, которые имеют пробелы. Для таблицы с пробелом новые строки вставляются в конец таблицы, если она используется другой нитью. В противном случае MySQL получает обычный блокирующий замок для записи и вставляет строку в пробел.

    Если вы запускаете mysqld с --skip-new, concurrent_insert устанавливается в NEVER.

    См. также раздел 10.11.3, «Одновременные вставки».

  • connect_timeout

    Формат командной строки --connect-timeout=#
    Системная переменная connect_timeout
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 10
    Минимальное значение 2
    Максимальное значение 31536000
    Единица измерения секунды

    Количество секунд, которое сервер mysqld ожидает пакет подключения перед ответом с Bad handshake. Значение по умолчанию — 10 секунд.

    Увеличение значения connect_timeout может помочь, если клиенты часто сталкиваются с ошибками типа Lost connection to MySQL server at 'XXX', system error: errno.

  • connection_memory_chunk_size

    Формат командной строки --connection-memory-chunk-size=#
    Системная переменная connection_memory_chunk_size
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 8192
    Минимальное значение 0
    Максимальное значение 536870912
    Единица измерения байты

    Устанавливает размер фрагмента для обновлений счетчика глобального использования памяти Global_connection_memory. Переменная состояния обновляется только тогда, когда общее потребление памяти всеми пользовательскими соединениями изменяется более чем на эту величину. Отключите обновления, установив connection_memory_chunk_size = 0.

    Расчет памяти не включает память, используемую системными пользователями, такими как пользователь root MySQL. Память, используемая буферным пулом InnoDB, также не включается.

    Для установки этой переменной необходимо иметь привилегию SYSTEM_VARIABLES_ADMIN или SUPER.

  • connection_memory_limit

    Формат командной строки --connection-memory-limit=#
    Системная переменная connection_memory_limit
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 18446744073709551615
    Минимальное значение 2097152
    Максимальное значение 18446744073709551615
    Единица измерения байты

    Устанавливает максимальный объем памяти, который может использоваться одним пользовательским соединением. Если любое пользовательское соединение использует больше этой величины, все запросы из этого соединения отклоняются, включая любые выполняющиеся в данный момент запросы.

    Предел, установленный этой переменной, не применяется к системным пользователям или к учетной записи root MySQL. Память, используемая буферным пулом InnoDB, также не включается.

    Для установки этой переменной необходимо иметь привилегию SYSTEM_VARIABLES_ADMIN или SUPER.

  • connection_memory_status_limit

    Формат командной строки --connection-memory-status-limit=#
    Системная переменная connection_memory_status_limit
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 18446744073709551615
    Минимальное значение 16777216
    Максимальное значение 18446744073709551615
    Единица измерения байты

    Это максимальный объем памяти, который может быть потреблен любым одним пользовательским соединением до того, как будет увеличен счетчик Count_hit_query_past_connection_memory_status_limit.

  • core_file

    Системная переменная core_file
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Логическое
    Значение по умолчанию OFF

    Необходимо ли записывать файл дампа памяти, если сервер неожиданно завершает работу. Эта переменная устанавливается с помощью параметра --core-file.

  • create_admin_listener_thread

    Формат командной строки --create-admin-listener-thread[={OFF|ON}]
    Системная переменная create_admin_listener_thread
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Логическое
    Значение по умолчанию OFF

    Необходимо ли использовать выделенный поток прослушивания для клиентских соединений на административном сетевом интерфейсе (см. Раздел 7.1.12.1, «Интерфейсы соединений»). Значение по умолчанию — OFF; то есть поток управления для обычных соединений на основном интерфейсе также обрабатывает соединения для административного интерфейса.

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

    Установка create_admin_listener_thread не оказывает влияния, если admin_address не указан, поскольку в этом случае сервер не поддерживает административный сетевой интерфейс.

  • cte_max_recursion_depth

    Формат командной строки --cte-max-recursion-depth=#
    Системная переменная cte_max_recursion_depth
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 1000
    Минимальное значение 0
    Максимальное значение 4294967295

    Максимальная глубина рекурсии для выражения общего табличного выражения (CTE). Сервер прекращает выполнение любого CTE, который рекурсивно вызывает себя более чем на указанное количество уровней. Для получения дополнительной информации см. Ограничение рекурсии выражений общих таблиц.

  • datadir

    Формат командной строки --datadir=dir_name
    Системная переменная datadir
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя каталога

    Путь к каталогу данных сервера MySQL. Относительные пути разрешаются относительно текущего каталога. Если вы ожидаете, что сервер будет запускаться автоматически (то есть в контекстах, для которых вы не можете заранее знать текущий каталог), лучше всего указать значение datadir как абсолютный путь.

  • debug

    Формат командной строки --debug[=debug_options]
    Системная переменная debug
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию (Unix) d:t:i:o,/tmp/mysqld.trace
    Значение по умолчанию (Windows) d:t:i:O,\mysqld.trace

    Эта переменная указывает текущие настройки отладки. Она доступна только для серверов, построенных с поддержкой отладки. Начальное значение берётся из значения экземпляров опции --debug, заданной при запуске сервера. Глобальные и сеансовые значения могут быть установлены во время выполнения.

    Установка сеансового значения этой системной переменной — ограниченная операция. Пользователь сеанса должен иметь достаточные привилегии для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии на системные переменные».

    Присвоение значения, начинающегося с + или -, приводит к добавлению или вычитанию значения из текущего значения:

    mysql> SET debug = 'T';
    mysql> SELECT @@debug;
    +---------+
    | @@debug |
    +---------+
    | T       |
    +---------+
    
    mysql> SET debug = '+P';
    mysql> SELECT @@debug;
    +---------+
    | @@debug |
    +---------+
    | P:T     |
    +---------+
    
    mysql> SET debug = '-P';
    mysql> SELECT @@debug;
    +---------+
    | @@debug |
    +---------+
    | T       |
    +---------+
    

    Для получения дополнительной информации, см. Раздел 7.9.4, «Пакет DBUG».

  • debug_sync

    Системная переменная debug_sync
    Область Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка

    Эта переменная является пользовательским интерфейсом для механизма Debug Sync. Использование Debug Sync требует, чтобы MySQL был сконфигурирован с опцией -DWITH_DEBUG=ON CMake (см. Раздел 2.8.7, «Параметры конфигурации исходного кода MySQL»); в противном случае, эта системная переменная недоступна.

    Глобальное значение переменной только для чтения и указывает, включен ли механизм. По умолчанию, Debug Sync отключен, и значение debug_sync равно OFF. Если сервер запускается с --debug-sync-timeout=N, где N — значение таймаута, большее 0, Debug Sync включён, и значение debug_sync равно ON - current signal, за которым следует имя сигнала. Также N становится значением таймаута по умолчанию для отдельных точек синхронизации.

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

    Установка сеансового значения этой системной переменной — ограниченная операция. Пользователь сеанса должен иметь достаточные привилегии для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии на системные переменные».

    Для описания механизма Debug Sync и способов использования точек синхронизации, см. Документацию MySQL Server Doxygen.

  • default_collation_for_utf8mb4

    Системная переменная default_collation_for_utf8mb4
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию utf8mb4_0900_ai_ci
    Допустимые значения

    utf8mb4_0900_ai_ci

    utf8mb4_general_ci

    Важно

    Системная переменная default_collation_for_utf8mb4 используется только для внутренних целей MySQL Replication.

    Эта переменная устанавливается сервером как кодировка по умолчанию для набора символов utf8mb4. Значение переменной дублируется с источника на репликатор, чтобы репликатор мог правильно обрабатывать данные, полученные с источника с другой кодировкой по умолчанию для набора символов utf8mb4. Эта переменная в первую очередь предназначена для поддержки репликации с сервера репликации MySQL 5.7 или более ранней версии на сервер репликации MySQL более поздней версии, или групповой репликации с узлом MySQL 5.7 в качестве основного и одним или несколькими вторичными узлами MySQL 8.0 или более поздних версий. Кодировка по умолчанию для набора символов utf8mb4 в MySQL 5.7 — utf8mb4_general_ci, но utf8mb4_0900_ai_ci в более поздних версиях. Переменная отсутствует в выпусках, более ранних, чем MySQL 8.0; поэтому, если репликатор не получает значения переменной, он предполагает, что источник из более ранней версии и устанавливает значение на предыдущую кодировку по умолчанию utf8mb4_general_ci.

    Кодировка по умолчанию utf8mb4 используется в следующих операциях:

    • SHOW COLLATION и SHOW CHARACTER SET.

    • CREATE TABLE и ALTER TABLE с клаузой CHARACTER SET utf8mb4 без клаузы COLLATION, либо для набора символов таблицы, либо для набора символов столбца.

    • CREATE DATABASE и ALTER DATABASE с клаузой CHARACTER SET utf8mb4 без клаузы COLLATION.

    • Любая операция, содержащая строковый литерал вида _utf8mb4'some text' без клаузы COLLATE.

    См. также Раздел 12.9, «Поддержка Unicode».

  • default_password_lifetime

    Формат командной строки --default-password-lifetime=#
    Системная переменная default_password_lifetime
    Область Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 65535
    Единица измерения дни

    Эта переменная определяет глобальную политику автоматического истечения срока действия паролей. Значение по умолчанию default_password_lifetime равно 0, что отключает автоматическое истечение срока действия паролей. Если значение default_password_lifetime — положительное целое число N, оно указывает допустимый срок действия паролей; пароли должны меняться каждые N дней.

    Глобальная политика истечения срока действия паролей может быть переопределена по желанию для отдельных учётных записей с помощью опции истечения срока действия паролей в операциях CREATE USER и ALTER USER. См. Раздел 8.2.15, «Управление паролями».

  • default_storage_engine

    Формат командной строки --default-storage-engine=name
    Системная переменная default_storage_engine
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Перечисление
    Значение по умолчанию InnoDB

    Базовый движок хранения для таблиц. См. Главу 18, Альтернативные движки хранения. Эта переменная устанавливает движок хранения только для постоянных таблиц. Для установки движка хранения для TEMPORARY таблиц, установите системную переменную default_tmp_storage_engine.

    Чтобы узнать, какие движки хранения доступны и включены, используйте оператор SHOW ENGINES или запросите таблицу INFORMATION_SCHEMA ENGINES.

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

  • default_table_encryption

    Формат командной строки --default-table-encryption[={OFF|ON}]
    Системная переменная default_table_encryption
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Булево
    Значение по умолчанию OFF

    Определяет значение по умолчанию для шифрования, применяемого к схемам и общим пространствам имен таблиц при их создании без указания ENCRYPTION клаузы.

    Переменная default_table_encryption применяется только к схемам и общим пространствам имен таблиц, созданным пользователем. Она не управляет шифрованием mysql системного пространства имен таблиц.

    Изменение значения default_table_encryption в ходе работы требует наличия привилегий SYSTEM_VARIABLES_ADMIN и TABLE_ENCRYPTION_ADMIN, или устаревшего SUPER привилегии.

    default_table_encryption поддерживает синтаксис SET PERSIST и SET PERSIST_ONLY. См. Раздел 7.1.9.3, «Постоянные системные переменные».

    Для получения дополнительной информации см. Определение значения шифрования по умолчанию для схем и общих пространств имен таблиц.

  • default_tmp_storage_engine

    Формат командной строки --default-tmp-storage-engine=name
    Системная переменная default_tmp_storage_engine
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Перечисление
    Значение по умолчанию InnoDB

    Базовый движок хранения для TEMPORARY таблиц (созданных с помощью CREATE TEMPORARY TABLE). Для установки движка хранения для постоянных таблиц, установите системную переменную default_storage_engine. Также см. обсуждение этой переменной относительно возможных значений.

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

  • default_week_format

    Формат командной строки --default-week-format=#
    Системная переменная default_week_format
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 7

    Значение по умолчанию для использования в функции WEEK(). См. Раздел 14.7, «Функции даты и времени».

  • delay_key_write

    Формат командной строки --delay-key-write[={OFF|ON|ALL}]
    Системная переменная delay_key_write
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Перечисление
    Значение по умолчанию ON
    Допустимые значения

    OFF

    ON

    ALL

    Эта переменная определяет, как использовать отложенные записи ключей. Она применяется только к MyISAM таблицам. Отложенные записи ключей приводят к тому, что буферы ключей не сбрасываются между записями. См. также Раздел 18.2.1, «Параметры запуска MyISAM».

    Эта переменная может принимать одно из следующих значений, чтобы повлиять на обработку DELAY_KEY_WRITE параметра таблицы, который может использоваться в CREATE TABLE операторах.

    Вариант Описание
    OFF DELAY_KEY_WRITE игнорируется.
    ON MySQL учитывает любой DELAY_KEY_WRITE параметр, указанный в CREATE TABLE операторах. Это значение по умолчанию.
    ALL Все новые открытые таблицы обрабатываются так, как если бы они были созданы с включённым DELAY_KEY_WRITE параметром.
    Примечание

    Если вы установите эту переменную в значение ALL, не следует использовать таблицы MyISAM из другой программы (например, другого MySQL-сервера или myisamchk) когда таблицы используются. Это приведёт к повреждению индексов.

    Если для таблицы включён DELAY_KEY_WRITE, буфер ключей не сбрасывается для таблицы при каждом обновлении индекса, а только при закрытии таблицы. Это значительно ускоряет записи в ключи, но если вы используете эту функцию, вы должны добавить автоматическую проверку всех MyISAM таблиц, запустив сервер с установленной системной переменной myisam_recover_options (например, myisam_recover_options='BACKUP,FORCE'). См. Раздел 7.1.8, «Системные переменные сервера» и Раздел 18.2.1, «Параметры запуска MyISAM».

    Если вы запускаете mysqld с --skip-new, delay_key_write устанавливается в значение OFF.

    Предупреждение

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

END_OF_DOCUMENT_MARKER
  • delayed_insert_limit

    Формат командной строки --delayed-insert-limit=#
    Устарела Да
    Системная переменная delayed_insert_limit
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 100
    Минимальное значение 1
    Максимальное значение (64-разрядные платформы) 18446744073709551615
    Максимальное значение (32-разрядные платформы) 4294967295

    Эта системная переменная устарела (поскольку DELAYED вставки не поддерживаются), и следует ожидать ее удаления в будущей версии.

  • delayed_insert_timeout

    Формат командной строки --delayed-insert-timeout=#
    Устарела Да
    Системная переменная delayed_insert_timeout
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 300
    Минимальное значение 1
    Максимальное значение 31536000
    Единица измерения секунды

    Эта системная переменная устарела (поскольку DELAYED вставки не поддерживаются), и следует ожидать ее удаления в будущей версии.

  • delayed_queue_size

    Формат командной строки --delayed-queue-size=#
    Устарела Да
    Системная переменная delayed_queue_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 1000
    Минимальное значение 1
    Максимальное значение (64-разрядные платформы) 18446744073709551615
    Максимальное значение (32-разрядные платформы) 4294967295

    Эта системная переменная устарела (поскольку DELAYED вставки не поддерживаются), и следует ожидать ее удаления в будущей версии.

  • disabled_storage_engines

    Формат командной строки --disabled-storage-engines=engine[,engine]...
    Системная переменная disabled_storage_engines
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию empty string

    Эта переменная указывает, какие хранилища данных нельзя использовать для создания таблиц или табличных пространств. Например, чтобы предотвратить создание новых таблиц MyISAM или FEDERATED, запустите сервер со следующими строками в файле параметров сервера:

    [mysqld]
    disabled_storage_engines="MyISAM,FEDERATED"
    

    По умолчанию, disabled_storage_engines пуста (никакие хранилища не отключены), но ее можно установить в виде списка, разделенного запятыми, одного или нескольких хранилищ (регистр не учитывается). Любое хранилище, указанное в значении, не может использоваться для создания таблиц или табличных пространств с помощью CREATE TABLE или CREATE TABLESPACE, и не может использоваться с ALTER TABLE ... ENGINE или ALTER TABLESPACE ... ENGINE для изменения хранилища данных существующих таблиц или табличных пространств. Попытки сделать это приведут к ошибке.

    disabled_storage_engines не ограничивает другие операторы DDL для существующих таблиц, такие как CREATE INDEX, TRUNCATE TABLE, ANALYZE TABLE, DROP TABLE или DROP TABLESPACE. Это позволяет плавно перейти, чтобы существующие таблицы или табличные пространства, использующие отключенное хранилище, можно было перенести на разрешенное хранилище с помощью таких средств, как ALTER TABLE ... ENGINE permitted_engine.

    Разрешено установить системную переменную default_storage_engine или default_tmp_storage_engine в хранилище данных, которое отключено. Это может привести к нестабильной работе приложений или к их сбоям, хотя это может быть полезной техникой в среде разработки для выявления приложений, использующих отключенные хранилища, чтобы их можно было изменить.

    disabled_storage_engines отключена и не оказывает никакого влияния, если сервер запущен с любым из этих параметров: --initialize, --initialize-insecure, --skip-grant-tables.

  • disconnect_on_expired_password

    Формат командной строки --disconnect-on-expired-password[={OFF|ON}]
    Системная переменная disconnect_on_expired_password
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию ON

    Эта переменная управляет тем, как сервер обрабатывает клиентов с истекшими паролями:

    • Если клиент указывает, что он может обрабатывать истекшие пароли, значение disconnect_on_expired_password не имеет значения. Сервер разрешает клиенту подключиться, но переводит его в режим песочницы.

    • Если клиент не указывает, что он может обрабатывать истекшие пароли, сервер обрабатывает клиента в соответствии со значением disconnect_on_expired_password:

      • Если disconnect_on_expired_password: включена, сервер отключает клиента.

      • Если disconnect_on_expired_password: отключена, сервер разрешает клиенту подключиться, но переводит его в режим песочницы.

    Для получения дополнительной информации о взаимодействии настроек клиента и сервера, связанных с обработкой истекших паролей, см. Раздел 8.2.16, «Обработка истекших паролей сервером».

  • div_precision_increment

    Формат командной строки --div-precision-increment=#
    Переменная системы div_precision_increment
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 4
    Минимальное значение 0
    Максимальное значение 30

    Эта переменная указывает число цифр, на которое увеличивать масштаб результата операций деления, выполняемых с оператором /. Значение по умолчанию равно 4. Минимальное и максимальное значения соответственно равны 0 и 30. Следующий пример иллюстрирует эффект увеличения значения по умолчанию.

    mysql> SELECT 1/7;
    +--------+
    | 1/7    |
    +--------+
    | 0.1429 |
    +--------+
    mysql> SET div_precision_increment = 12;
    mysql> SELECT 1/7;
    +----------------+
    | 1/7            |
    +----------------+
    | 0.142857142857 |
    +----------------+
    
  • dragnet.log_error_filter_rules

    Формат командной строки --dragnet.log-error-filter-rules=value
    Переменная системы dragnet.log_error_filter_rules
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию IF prio>=INFORMATION THEN drop. IF EXISTS source_line THEN unset source_line.

    Правила фильтра, которые управляют работой компонента фильтра журнала ошибок log_filter_dragnet. Если log_filter_dragnet не установлен, dragnet.log_error_filter_rules недоступен. Если log_filter_dragnet установлен, но не включен, изменения в dragnet.log_error_filter_rules не имеют эффекта.

    Эффект значения по умолчанию аналогичен фильтру log_sink_internal с настройкой log_error_verbosity=2.

    Статус-переменная dragnet.Status может быть использована для определения результата последнего присваивания переменной dragnet.log_error_filter_rules.

  • enterprise_encryption.maximum_rsa_key_size

    Формат командной строки --enterprise-encryption.maximum-rsa-key-size=#
    Переменная системы enterprise_encryption.maximum_rsa_key_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 4096
    Минимальное значение 2048
    Максимальное значение 16384

    Эта переменная ограничивает максимальный размер ключей RSA, генерируемых MySQL Enterprise Encryption. Переменная доступна только при установке компонента MySQL Enterprise Encryption component_enterprise_encryption.

    Наименьшее значение — 2048 бит, что является минимальной длиной ключа RSA, приемлемой по современным рекомендациям. Значение по умолчанию — 4096 бит. Наибольшее значение — 16384 бит. Генерация более длинных ключей может потребовать значительных ресурсов ЦП, поэтому вы можете использовать эту настройку для ограничения длины ключей, обеспечивая достаточную безопасность для ваших потребностей, балансируя это с использованием ресурсов. Дополнительную информацию см. в разделе 8.6.2, «Настройка MySQL Enterprise Encryption».

  • enterprise_encryption.rsa_support_legacy_padding

    Формат командной строки --enterprise-encryption.rsa_support_legacy_padding[={OFF|ON}]
    Переменная системы enterprise_encryption.rsa_support_legacy_padding
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная управляет тем, можно ли расшифровать или проверить зашифрованные данные и подписи, созданные MySQL Enterprise Encryption с использованием старых функций библиотеки openssl_udf, компонентом MySQL Enterprise Encryption (component_enterprise_encryption). Переменная доступна только при установке компонента MySQL Enterprise Encryption.

    Чтобы компоненты поддерживали расшифровку и проверку содержимого, созданного старыми функциями библиотеки openssl_udf, необходимо установить системную переменную padding в ON. При установке ON, если функции компонента не могут расшифровать или проверить содержимое, предполагая, что используется схема RSAES-OAEP или RSASSA-PSS (как используется компонентом), они предпринимают еще одну попытку, предполагая схему RSAES-PKCS1-v1_5 или RSASSA-PKCS1-v1_5 (как используется библиотекой openssl_udf). При установке OFF, если функции компонента не могут расшифровать или проверить содержимое с использованием своих обычных схем, они возвращают нулевой результат. Дополнительную информацию см. в разделе 8.6.2, «Настройка MySQL Enterprise Encryption».

  • end_markers_in_json

    Формат командной строки --end-markers-in-json[={OFF|ON}]
    Переменная системы end_markers_in_json
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Булево
    Значение по умолчанию OFF

    Добавлять ли концевые маркеры в вывод оптимизатора в формате JSON. См. MySQL Internals: Переменная системы end_markers_in_json.

  • eq_range_index_dive_limit

    Формат командной строки --eq-range-index-dive-limit=#
    Переменная системы eq_range_index_dive_limit
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 200
    Минимальное значение 0
    Максимальное значение 4294967295

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

    col_name IN(val1, ..., valN)
    col_name = val1 OR ... OR col_name = valN
    

    В обоих случаях выражение содержит N диапазонов равенства. Оптимизатор может производить оценки строк, используя погружение в индекс или статистику индекса. Если eq_range_index_dive_limit больше 0, оптимизатор использует существующую статистику индекса вместо погружения в индекс, если существует eq_range_index_dive_limit или более диапазонов равенства. Таким образом, чтобы разрешить использование погружения в индекс для до N диапазонов равенства, установите eq_range_index_dive_limit в N + 1. Чтобы отключить использование статистики индекса и всегда использовать погружение в индекс независимо от N, установите eq_range_index_dive_limit в 0.

    Дополнительную информацию см. в разделе «Оптимизация диапазонов равенства множественных сравнений».

    Чтобы обновить статистику индекса таблицы для получения лучших оценок, используйте ANALYZE TABLE.

  • error_count

    Количество ошибок, возникших в результате последнего оператора, сгенерировавшего сообщения. Эта переменная только для чтения. См. Раздел 15.7.7.19, «Оператор SHOW ERRORS».

  • event_scheduler

    Формат командной строки --event-scheduler[=value]
    Переменная системы event_scheduler
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо к подсказкам Нет
    Тип Перечисление
    Значение по умолчанию ON
    Допустимые значения

    ON

    OFF

    DISABLED

    Эта переменная включает или выключает, и запускает или останавливает Планировщик событий. Возможные значения статуса — ON, DISABLED, и DISABLED. Включение Планировщика событий OFF отличается от выключения Планировщика событий, которое требует установить статус в DISABLED. Эта переменная и её влияние на работу Планировщика событий рассматриваются более подробно в Разделе 27.5.2, «Настройка Планировщика событий»

  • explain_format

    Формат командной строки --explain-format=format
    Переменная системы explain_format
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применимо к подсказкам Нет
    Тип Перечисление
    Значение по умолчанию TRADITIONAL
    Допустимые значения

    TRADITIONAL (DEFAULT)

    JSON

    TREE

    Эта переменная определяет формат вывода по умолчанию, используемый EXPLAIN в отсутствие опции FORMAT при отображении плана выполнения запроса. Возможные значения и их влияние перечислены здесь:

    • TRADITIONAL: Использование традиционного табличного вывода MySQL, как если бы FORMAT=TRADITIONAL было указано в качестве части оператора EXPLAIN. Это значение по умолчанию для переменной. DEFAULT также поддерживается как синоним для TRADITIONAL и имеет точно такой же эффект.

      Примечание

      DEFAULT нельзя использовать в качестве части опции FORMAT оператора EXPLAIN.

    • JSON: Использование формата вывода JSON, как если бы FORMAT=JSON было указано.

    • TREE: Использование древовидного формата вывода, как если бы FORMAT=TREE было указано.

    Настройка этой переменной также влияет на EXPLAIN ANALYZE. В этой цели DEFAULT и TRADITIONAL интерпретируются как TREE. Если значение explain_format равно JSON, и выпущен оператор EXPLAIN ANALYZE без опции FORMAT, оператор возвращает ошибку.

    Использование спецификатора формата с EXPLAIN или EXPLAIN ANALYZE переопределяет любые настройки для explain_format.

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

    Установка значения переменной explain_format в сеансе не требует специальных привилегий; установка на глобальном уровне требует SYSTEM_VARIABLES_ADMIN (или устаревшего SUPER привилегии). См. Раздел 7.1.9.1, «Привилегии на переменные системы».

    Для получения дополнительной информации и примеров см. Получение информации о плане выполнения.

  • explain_json_format_version

    Формат командной строки --explain-json-format-version=#
    Переменная системы explain_json_format_version
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применимо к подсказкам Нет
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 2

    Определяет версию формата вывода JSON, используемого операторами EXPLAIN FORMAT=JSON. Установка этой переменной в значение 1 заставляет сервер использовать версию 1, которая является линейным форматом, используемым для вывода из таких операторов в более ранних версиях MySQL; это значение по умолчанию в MySQL 9.2. Установка explain_json_format_version в 2 заставляет использовать формат версии 2; этот формат вывода JSON основан на путях доступа и предназначен для лучшей совместимости с будущими версиями оптимизатора MySQL. В MySQL 9.2 и более поздних версиях также включает версию формата JSON в своем выводе.

    Пример использования см. в Получение информации о плане выполнения.

  • explicit_defaults_for_timestamp

    Формат командной строки --explicit-defaults-for-timestamp[={OFF|ON}]
    Устаревший Да
    Системная переменная explicit_defaults_for_timestamp
    Область действия Глобальная, Сессия
    Динамический Да
    SET_VAR Применимо Нет
    Тип Булево
    Значение по умолчанию ON

    Эта системная переменная определяет, включает ли сервер определённые нестандартные параметры по умолчанию и обработку значений NULL в столбцах TIMESTAMP. По умолчанию explicit_defaults_for_timestamp включён, что отключает нестандартные параметры. Отключение explicit_defaults_for_timestamp приводит к предупреждению.

    Если explicit_defaults_for_timestamp отключён, сервер включает нестандартные параметры и обрабатывает столбцы TIMESTAMP следующим образом:

    • Столбцы TIMESTAMP, не явно объявленные с атрибутом NULL, автоматически объявляются с атрибутом NOT NULL. Присвоение такому столбцу значения NULL разрешено и устанавливает столбец на текущую метку времени. Исключение: Попытка вставки NULL в сгенерированный столбец, объявленный как TIMESTAMP NOT NULL, отбрасывается с ошибкой.

    • Первый столбец TIMESTAMP в таблице, если он не объявлен явно с атрибутом NULL или с явными атрибутами DEFAULT или ON UPDATE, автоматически объявляется с атрибутами DEFAULT CURRENT_TIMESTAMP и ON UPDATE CURRENT_TIMESTAMP.

    • Столбцы TIMESTAMP, следующие за первым, если они не объявлены явно с атрибутом NULL или с явным атрибутом DEFAULT, автоматически объявляются как DEFAULT '0000-00-00 00:00:00' (метка времени “ноль”). Для вставляемых строк, не указывающих явное значение для такого столбца, столбцу присваивается '0000-00-00 00:00:00' и предупреждение не возникает.

      В зависимости от того, включен ли строгий режим SQL или режим SQL NO_ZERO_DATE, значение по умолчанию '0000-00-00 00:00:00' может быть недействительным. Имейте в виду, что режим SQL TRADITIONAL включает строгий режим и NO_ZERO_DATE. См. Раздел 7.1.11, «Режимы SQL сервера».

    Описанные выше нестандартные параметры устарели; ожидается, что они будут удалены в будущих выпусках MySQL.

    Если explicit_defaults_for_timestamp включён, сервер отключает нестандартные параметры и обрабатывает столбцы TIMESTAMP следующим образом:

    • Невозможно присвоить столбцу TIMESTAMP значение NULL, чтобы установить его на текущую метку времени. Для присвоения текущей метки времени установите столбец на CURRENT_TIMESTAMP или синоним, такой как NOW().

    • Столбцы TIMESTAMP, не явно объявленные с атрибутом NOT NULL, автоматически объявляются с атрибутом NULL и допускают значения NULL. Присвоение такому столбцу значения NULL устанавливает его на NULL, а не на текущую метку времени.

    • Столбцы TIMESTAMP, объявленные с атрибутом NOT NULL, не допускают значений NULL. Для вставок, которые задают NULL для такого столбца, результатом является либо ошибка для вставки одной строки, если включён строгий режим SQL, либо '0000-00-00 00:00:00' вставляется для многострочных вставок со строгим режимом SQL, отключенным. Ни в коем случае присвоение столбцу значения NULL не устанавливает его на текущую метку времени.

    • Столбцы TIMESTAMP, явно объявленные с атрибутом NOT NULL и без явного атрибута DEFAULT, обрабатываются как не имеющие значения по умолчанию. Для вставляемых строк, не указывающих явного значения для такого столбца, результат зависит от режима SQL. Если включён строгий режим SQL, возникает ошибка. Если строгий режим SQL не включён, столбец объявляется с неявным значением по умолчанию '0000-00-00 00:00:00' и появляется предупреждение. Это аналогично тому, как MySQL обрабатывает другие временные типы, такие как DATETIME.

    • Ни один столбец TIMESTAMP не объявляется автоматически с атрибутами DEFAULT CURRENT_TIMESTAMP или ON UPDATE CURRENT_TIMESTAMP. Эти атрибуты должны быть явно указаны.

    • Первый столбец TIMESTAMP в таблице не обрабатывается иначе, чем столбцы TIMESTAMP, следующие за первым.

    Если explicit_defaults_for_timestamp отключён при запуске сервера, в журнале ошибок появляется это предупреждение:

    [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
    Please use --explicit_defaults_for_timestamp server option (see
    documentation for more details).
    

    Как указано в предупреждении, чтобы отключить устаревшие нестандартные параметры, включите системную переменную explicit_defaults_for_timestamp при запуске сервера.

    Примечание

    explicit_defaults_for_timestamp также устарел, потому что его единственная цель — позволить управлять устаревшими параметрами TIMESTAMP, которые будут удалены в будущих выпусках MySQL. При удалении этих параметров ожидается, что explicit_defaults_for_timestamp также будет удалён.

    Дополнительную информацию см. в Разделе 13.2.5, «Автоматическое инициализирование и обновление для TIMESTAMP и DATETIME».

  • external_user

    Системная переменная external_user
    Область действия Сессия
    Динамический Нет
    SET_VAR Применимо Нет
    Тип Строка

    Имя внешнего пользователя, используемое во время процесса аутентификации, заданное плагином, используемым для аутентификации клиента. При использовании родной (встроенной) аутентификации MySQL или если плагин не задаёт значение, эта переменная равна NULL. См. Раздел 8.2.19, «Пользователи-прокси».

  • flush

    Формат командной строки --flush[={OFF|ON}]
    Системная переменная flush
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Если ON, сервер очищает (синхронизирует) все изменения на диске после каждого оператора SQL. Обычно MySQL выполняет запись всех изменений на диск только после каждого оператора SQL и позволяет операционной системе обрабатывать синхронизацию с диском. См. Раздел B.3.3.3, «Что делать, если MySQL постоянно аварийно завершает работу». Эта переменная устанавливается в ON, если вы запускаете mysqld с помощью параметра --flush.

    Примечание

    Если flush включен, значение flush_time не имеет значения, и изменения flush_time не влияют на поведение очистки.

  • flush_time

    Формат командной строки --flush-time=#
    Системная переменная flush_time
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения секунды

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

    Примечание

    Если flush включен, значение flush_time не имеет значения, и изменения flush_time не влияют на поведение очистки.

  • foreign_key_checks

    Системная переменная foreign_key_checks
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Булево
    Значение по умолчанию ON

    Если установлено значение 1 (по умолчанию), ограничения внешних ключей проверяются. Если установлено значение 0, ограничения внешних ключей игнорируются, за несколькими исключениями. При повторном создании удаленной таблицы возвращается ошибка, если определение таблицы не соответствует ограничениям внешних ключей, ссылающимся на таблицу. Аналогично, операция ALTER TABLE возвращает ошибку, если определение внешнего ключа сформировано неправильно. Для получения дополнительной информации см. Раздел 15.1.21.5, «Ограничения FOREIGN KEY».

    Установка этой переменной оказывает такое же влияние на таблицы NDB, как и на таблицы InnoDB. Обычно вы оставляете этот параметр включенным во время нормальной работы, чтобы обеспечить принудительное выполнение. Отключение проверки внешних ключей может быть полезно для перезагрузки таблиц InnoDB в порядке, отличном от требуемого их родительскими/дочерними отношениями. См. Раздел 15.1.21.5, «Ограничения FOREIGN KEY».

    Установка foreign_key_checks в 0 также влияет на операторы определения данных: DROP SCHEMA удаляет схему, даже если она содержит таблицы, имеющие внешние ключи, на которые ссылаются таблицы за пределами схемы, и DROP TABLE удаляет таблицы, имеющие внешние ключи, на которые ссылаются другие таблицы.

    Примечание

    Установка foreign_key_checks в 1 не запускает сканирование существующих данных таблицы. Поэтому строки, добавленные в таблицу, пока foreign_key_checks = 0 не проверяются на согласованность.

    Удаление индекса, необходимого для ограничения внешнего ключа, не допускается, даже с foreign_key_checks=0. Ограничение внешнего ключа должно быть удалено перед удалением индекса.

  • ft_boolean_syntax

    Формат командной строки --ft-boolean-syntax=name
    Системная переменная ft_boolean_syntax
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию + -><()~*:""&|

    Список операторов, поддерживаемых булевыми полнотекстовыми поисками, выполняемыми с помощью IN BOOLEAN MODE. См. Раздел 14.9.2, «Булевы полнотекстовые поиски».

    Значение переменной по умолчанию — '+ -><()~*:""&|'. Правила изменения значения следующие:

    • Функция оператора определяется положением в строке.

    • Замещающее значение должно иметь 14 символов.

    • Каждый символ должен быть неалфавитно-цифровым символом ASCII.

    • Первый или второй символ должен быть пробелом.

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

    • Позиции 10, 13 и 14 (которые по умолчанию установлены в :, & и |) зарезервированы для будущих расширений.

  • ft_max_word_len

    Формат командной строки --ft-max-word-len=#
    Системная переменная ft_max_word_len
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 84
    Минимальное значение 10
    Максимальное значение 84

    Максимальная длина слова, которое будет включено в индекс MyISAM FULLTEXT.

    Примечание

    Индексы FULLTEXT для таблиц MyISAM должны быть перестроены после изменения этой переменной. Используйте REPAIR TABLE tbl_name QUICK.

  • ft_min_word_len

    Формат командной строки --ft-min-word-len=#
    Системная переменная ft_min_word_len
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 4
    Минимальное значение 1
    Максимальное значение 82

    Минимальная длина слова, которое должно быть включено в индекс MyISAM FULLTEXT.

    Примечание

    Индексы FULLTEXT на таблицах MyISAM должны быть перестроены после изменения этой переменной. Используйте REPAIR TABLE tbl_name QUICK.

  • ft_query_expansion_limit

    Формат командной строки --ft-query-expansion-limit=#
    Системная переменная ft_query_expansion_limit
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 20
    Минимальное значение 0
    Максимальное значение 1000

    Количество лучших совпадений, используемых для поиска по полному тексту, выполненного с использованием WITH QUERY EXPANSION.

  • ft_stopword_file

    Формат командной строки --ft-stopword-file=file_name
    Системная переменная ft_stopword_file
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла

    Файл, из которого следует читать список стоп-слов для поиска по полному тексту в таблицах MyISAM. Сервер ищет файл в каталоге данных, если не указано абсолютное имя пути для указания другого каталога. Используются все слова из файла; комментарии не учитываются. По умолчанию используется встроенный список стоп-слов (как определено в файле storage/myisam/ft_static.c). Установка этой переменной в пустую строку ('') отключает фильтрацию стоп-слов. См. также Раздел 14.9.4, «Стоп-слова полного текста».

    Примечание

    Индексы FULLTEXT на таблицах MyISAM должны быть перестроены после изменения этой переменной или содержимого файла стоп-слов. Используйте REPAIR TABLE tbl_name QUICK.

  • general_log

    Формат командной строки --general-log[={OFF|ON}]
    Системная переменная general_log
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Включен ли общий журнал запросов. Значение может быть 0 (или OFF) для отключения журнала или 1 (или ON) для включения журнала. Назначение для вывода журнала управляется системной переменной log_output; если это значение равно NONE, записи журнала не записываются, даже если журнал включен.

  • general_log_file

    Формат командной строки --general-log-file=file_name
    Системная переменная general_log_file
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию host_name.log

    Имя файла общего журнала запросов. Значение по умолчанию — host_name.log, но начальное значение может быть изменено с помощью параметра --general_log_file.

  • generated_random_password_length

    Формат командной строки --generated-random-password-length=#
    Системная переменная generated_random_password_length
    Область видимости Глобальная, Сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 20
    Минимальное значение 5
    Максимальное значение 255

    Максимальное количество символов, разрешенных в случайных паролях, сгенерированных для CREATE USER, ALTER USER и SET PASSWORD операторов. Для получения дополнительной информации см. Генерация случайных паролей.

  • global_connection_memory_limit

    Формат командной строки --global-connection-memory-limit=#
    Системная переменная global_connection_memory_limit
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 18446744073709551615
    Минимальное значение 16777216
    Максимальное значение 18446744073709551615
    Единица измерения байты

    Установите общее количество памяти, которое может использоваться всеми пользовательскими соединениями; то есть Global_connection_memory не должно превышать это значение. Каждый раз, когда это происходит, все запросы (включая любые запущенные) от обычных пользователей отклоняются с .

    Память, используемая системными пользователями, такими как пользователь root MySQL, включается в этот итог, но не учитывается для ограничения отключения; такие пользователи никогда не отключаются из-за использования памяти.

    Память, используемая буферным пулом InnoDB, исключается из общего итога.

    Для установки этой переменной необходимо иметь привилегию SYSTEM_VARIABLES_ADMIN или SUPER.

  • global_connection_memory_status_limit

    Формат командной строки --connection-memory-status-limit=#
    Системная переменная global_connection_memory_status_limit
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 18446744073709551615
    Минимальное значение 16777216
    Максимальное значение 18446744073709551615
    Единица измерения байты

    Это максимальное количество памяти, которое может быть использовано всеми пользовательскими соединениями, прежде чем будет увеличено значение Count_hit_query_past_global_connection_memory_status_limit.

  • global_connection_memory_tracking

    Формат командной строки --global-connection-memory-tracking={TRUE|FALSE}
    Переменная системы global_connection_memory_tracking
    Область действия Глобальная, сеансовая
    Динамическая Да
    Применяется подсказка SET_VAR Нет
    Тип Булево
    Значение по умолчанию FALSE

    Определяет, вычисляет ли сервер Global_connection_memory. Эта переменная должна быть явно включена; в противном случае вычисление памяти не выполняется, и Global_connection_memory не устанавливается.

    Для установки этой переменной требуется привилегия SYSTEM_VARIABLES_ADMIN или SUPER.

  • group_concat_max_len

    Формат командной строки --group-concat-max-len=#
    Переменная системы group_concat_max_len
    Область действия Глобальная, сеансовая
    Динамическая Да
    Применяется подсказка SET_VAR Да
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 4
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295

    Максимальная длина результата в байтах для функции GROUP_CONCAT(). Значение по умолчанию равно 1024.

  • have_compress

    YES, если сжатие zlib доступно серверу, NO — в противном случае. Если нет, функции COMPRESS() и UNCOMPRESS() использовать нельзя.

  • have_dynamic_loading

    YES, если mysqld поддерживает динамическую загрузку плагинов, NO — в противном случае. Если значение равно NO, вы не можете использовать такие параметры, как --plugin-load для загрузки плагинов при запуске сервера, или оператор INSTALL PLUGIN для загрузки плагинов во время выполнения.

  • have_geometry

    YES, если сервер поддерживает пространственные типы данных, NO — в противном случае.

  • have_profiling

    YES, если функция профилирования операторов доступна, NO — в противном случае. При наличии, переменная системы profiling управляет включением или отключением этой возможности. См. Раздел 15.7.7.33, «Оператор SHOW PROFILES».

    Эта переменная устарела; ожидается, что она будет удалена в будущих версиях MySQL.

  • have_query_cache

    have_query_cache устарела, всегда имеет значение NO, и ожидается, что она будет удалена в будущих версиях MySQL.

  • have_rtree_keys

    YES, если индексы RTREE доступны, NO — в противном случае. (Используются для пространственных индексов в таблицах MyISAM.)

  • have_statement_timeout

    Переменная системы have_statement_timeout
    Область действия Глобальная
    Динамическая Нет
    Применяется подсказка SET_VAR Нет
    Тип Булево

    Доступна ли функция таймаута выполнения операторов (см. Подсказки оптимизатора для времени выполнения операторов). Значение может быть NO, если фоновый поток, используемый этой функцией, не удалось инициализировать.

  • have_symlink

    YES, если поддержка символических ссылок включена, NO — в противном случае. Это необходимо на Unix для поддержки опций таблиц DATA DIRECTORY и INDEX DIRECTORY. Если сервер запущен с опцией --skip-symbolic-links, значение равно DISABLED.

    Эта переменная не имеет смысла в Windows.

    Примечание

    Поддержка символических ссылок, наряду с опцией --symbolic-links, которая ее контролирует, устарела; ожидается, что эти опции будут удалены в будущей версии MySQL. Кроме того, эта опция по умолчанию отключена. Соответствующая переменная системы have_symlink также устарела, и ожидается, что она будет удалена в будущих версиях MySQL.

  • histogram_generation_max_mem_size

    Формат командной строки --histogram-generation-max-mem-size=#
    Переменная системы histogram_generation_max_mem_size
    Область действия Глобальная, сеансовая
    Динамическая Да
    Применяется подсказка SET_VAR Нет
    Тип Целое число
    Значение по умолчанию 20000000
    Минимальное значение 1000000
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байты

    Максимальный объем памяти, доступный для генерации статистических данных гистограммы. См. Раздел 10.9.6, «Статистика оптимизатора» и Раздел 15.7.3.1, «Оператор ANALYZE TABLE».

    Установка сеансового значения этой переменной — ограниченная операция. Пользователь сеанса должен обладать достаточными привилегиями для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии переменных системы».

  • host_cache_size

    Формат командной строки --host-cache-size=#
    Системная переменная host_cache_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию -1 (указывает автоматическое изменение размера; не присваивайте это значение)
    Минимальное значение 0
    Максимальное значение 65536

    Сервер MySQL поддерживает кеш хостов в оперативной памяти, содержащий информацию об имени хоста и IP-адресе клиента и используемый для избежания запросов к системе доменных имён (DNS); см. Раздел 7.1.12.3, «Запросы к DNS и кэшу хостов».

    Переменная host_cache_size управляет размером кэша хостов, а также размером таблицы Performance Schema host_cache, которая предоставляет содержимое кэша. Установка host_cache_size оказывает следующее влияние:

    • Установка размера в 0 отключает кэш хостов. При отключённом кэше сервер выполняет запрос к DNS каждый раз при подключении клиента.

    • Изменение размера во время выполнения приводит к неявной операции сброса кэша хостов, очищает кэш хостов, обнуляет таблицу host_cache и разблокирует заблокированные хосты.

    Значение по умолчанию автоматически устанавливается в 128, плюс 1 для значения max_connections до 500, плюс 1 за каждый приращение на 20 больше 500 в значении max_connections, ограниченное значением 2000.

  • hostname

    Системная переменная hostname
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Сервер устанавливает значение этой переменной в имя хоста сервера при запуске. Максимальная длина составляет 255 символов.

  • identity

    Эта переменная является синонимом переменной last_insert_id. Она существует для совместимости с другими базами данных. Вы можете прочитать её значение с помощью SELECT @@identity, и установить её с помощью SET identity.

  • init_connect

    Формат командной строки --init-connect=name
    Системная переменная init_connect
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка

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

    Для пользователей, имеющих привилегию CONNECTION_ADMIN (или устаревшую привилегию SUPER), содержимое init_connect не выполняется. Это сделано для того, чтобы ошибочное значение init_connect не препятствовало подключению всех клиентов. Например, значение может содержать оператор с синтаксической ошибкой, что приведет к сбоям подключений клиентов. Невыполнение init_connect для пользователей, имеющих привилегию CONNECTION_ADMIN или SUPER, позволяет им открыть подключение и исправить значение init_connect.

    Выполнение init_connect пропускается для любого пользователя клиента с истекшим паролем. Это делается потому, что такой пользователь не может выполнять произвольные операторы, и поэтому выполнение init_connect завершается сбоем, оставляя клиента неспособным к подключению. Пропуск выполнения init_connect позволяет пользователю подключиться и изменить пароль.

    Сервер отбрасывает любые наборы результатов, полученные операторами в значении init_connect.

  • information_schema_stats_expiry

    Формат командной строки --information-schema-stats-expiry=#
    Системная переменная information_schema_stats_expiry
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 86400
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения секунды

    Некоторые INFORMATION_SCHEMA таблицы содержат столбцы, которые предоставляют статистику по таблицам:

    STATISTICS.CARDINALITY
    TABLES.AUTO_INCREMENT
    TABLES.AVG_ROW_LENGTH
    TABLES.CHECKSUM
    TABLES.CHECK_TIME
    TABLES.CREATE_TIME
    TABLES.DATA_FREE
    TABLES.DATA_LENGTH
    TABLES.INDEX_LENGTH
    TABLES.MAX_DATA_LENGTH
    TABLES.TABLE_ROWS
    TABLES.UPDATE_TIME
    

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

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

    Сеансовая переменная information_schema_stats_expiry определяет период времени до истечения срока действия кэшированной статистики. По умолчанию это 86400 секунд (24 часа), но этот период может быть продлён до одного года.

    Чтобы обновить кэшированные значения в любое время для заданной таблицы, используйте ANALYZE TABLE.

    Чтобы всегда извлекать последнюю статистику непосредственно из хранилища и обойти кэшированные значения, установите information_schema_stats_expiry в значение 0.

    Запрос столбцов статистики не сохраняет и не обновляет статистику в словарях mysql.index_stats и mysql.table_stats в следующих случаях:

    • Когда кэшированная статистика ещё не истекла.

    • Когда information_schema_stats_expiry установлено в значение 0.

    • Когда сервер находится в режиме read_only, super_read_only, transaction_read_only или innodb_read_only.

    • Когда запрос также извлекает данные Performance Schema.

    Кэш статистики может быть обновлён в ходе многострочной транзакции до того, как будет известно, завершит ли транзакция выполнение. В результате кэш может содержать информацию, которая не соответствует известному состоянию завершения транзакции. Это может произойти с autocommit=0 или после START TRANSACTION.

    information_schema_stats_expiry — сеансовая переменная, и каждый сеанс клиента может определить своё собственное значение истечения срока действия. Статистика, извлечённая из хранилища и кэшированная одним сеансом, доступна другим сеансам.

    Для получения дополнительной информации см. Раздел 10.2.3, «Оптимизация запросов к INFORMATION_SCHEMA».

  • init_file

    Формат командной строки --init-file=file_name
    Системная переменная init_file
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Имя файла

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

    • delimiter ;, для установки разделителя запросов на символ ;.

    • delimiter $$, для установки разделителя запросов на последовательность символов $$.

    • Несколько запросов в одной строке, разделенные текущим разделителем.

    • Запросы, занимающие несколько строк.

    • Комментарии от символа # до конца строки.

    • Комментарии от последовательности символов --  до конца строки.

    • Комментарии в стиле C от последовательности символов /* до следующей последовательности символов */, включая несколько строк.

    • Многострочные строковые литералы, заключенные в одинарные кавычки (') или двойные кавычки (").

    Если сервер запускается с опцией --initialize или --initialize-insecure, он работает в режиме загрузки и некоторые функции недоступны, что ограничивает разрешенные в файле запросы. Это включает запросы, связанные с управлением учетными записями (такие как CREATE USER или GRANT), репликацией и глобальными идентификаторами транзакций. См. Раздел 19.1.3, «Репликация с глобальными идентификаторами транзакций».

    Потоки, созданные во время запуска сервера, используются для задач, таких как создание словаря данных, выполнение процедур обновления и создание системных таблиц. Для обеспечения стабильной и предсказуемой среды эти потоки выполняются со значениями по умолчанию сервера для некоторых системных переменных, таких как sql_mode, character_set_server, collation_server, completion_type, explicit_defaults_for_timestamp и default_table_encryption.

    Эти потоки также используются для выполнения запросов в любом файле, указанном с помощью init_file при запуске сервера, поэтому такие запросы выполняются со значениями по умолчанию сервера для этих системных переменных.

  • innodb_xxx

    Системные переменные InnoDB перечислены в Разделе 17.14, «Параметры запуска InnoDB и системные переменные». Эти переменные управляют многими аспектами хранения, использованием памяти и шаблонами ввода-вывода для таблиц InnoDB, и они особенно важны сейчас, когда InnoDB является движком хранения по умолчанию.

  • insert_id

    Значение, которое будет использоваться следующим запросом INSERT или ALTER TABLE при вставке значения AUTO_INCREMENT. Это в основном используется с бинарным журналом.

  • interactive_timeout

    Формат командной строки --interactive-timeout=#
    Системная переменная interactive_timeout
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 28800
    Минимальное значение 1
    Максимальное значение 31536000
    Единицы измерения секунды

    Количество секунд, которое сервер ожидает активности по интерактивному соединению перед его закрытием. Интерактивный клиент определяется как клиент, использующий опцию CLIENT_INTERACTIVE. См. также wait_timeout.

  • internal_tmp_mem_storage_engine

    Формат командной строки --internal-tmp-mem-storage-engine=#
    Системная переменная internal_tmp_mem_storage_engine
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Да
    Тип Перечисление
    Значение по умолчанию TempTable
    Допустимые значения

    MEMORY

    TempTable

    Двигатель хранения для временных внутренних таблиц в памяти (см. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL»). Разрешенные значения — TempTable (по умолчанию) и MEMORY.

    Использует двигатель хранения, определенный переменной internal_tmp_mem_storage_engine, для временных внутренних таблиц в памяти.

    Настройка сеансового значения для internal_tmp_mem_storage_engine требует привилегии SESSION_VARIABLES_ADMIN или SYSTEM_VARIABLES_ADMIN.

  • Размер буфера соединения

    Формат командной строки --join-buffer-size=#
    Переменная системы join_buffer_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 262144
    Минимальное значение 128
    Максимальное значение (Windows) 4294967168
    Максимальное значение (Другие, 64-битные платформы) 18446744073709551488
    Максимальное значение (Другие, 32-битные платформы) 4294967168
    Единица измерения байты
    Размер блока 128

    Минимальный размер буфера, используемого для простых сканирований индексов, сканирований индексов диапазона и соединений, не использующих индексы и, следовательно, выполняющих полное сканирование таблицы. Эта переменная также контролирует количество памяти, используемой для соединения хеш-типов. Обычно лучший способ получить быстрые соединения — добавить индексы. Увеличьте значение join_buffer_size, чтобы получить более быстрое полное соединение, когда добавление индексов невозможно. Для каждого полного соединения между двумя таблицами выделяется один буфер соединения. Для сложного соединения между несколькими таблицами, для которых не используются индексы, может потребоваться несколько буферов соединения.

    Значение по умолчанию составляет 256 КБ. Максимально допустимое значение для join_buffer_size составляет 4 ГБ−1. Более крупные значения разрешены для 64-битных платформ (за исключением 64-битных систем Windows, для которых большие значения усекаются до 4 ГБ−1 с предупреждением). Размер блока равен 128, а значение, которое не является точным кратным размеру блока, округляется MySQL Server вниз до ближайшего меньшего кратного размера блока перед сохранением значения для переменной системы. Парсер допускает значения до максимального беззнакового целого значения для платформы (4294967295 или 232−1 для 32-битной системы, 18446744073709551615 или 264−1 для 64-битной системы), но фактическое максимальное значение меньше, чем размер блока.

    Если не используется алгоритм Block Nested-Loop или Batched Key Access, увеличение размера буфера больше, чем требуется для хранения каждой совпадающей строки, не принесёт пользы, и все соединения выделяют, по крайней мере, минимальный размер, поэтому будьте осторожны при настройке этой переменной на большое значение в глобальном масштабе. Лучше сохранить глобальное значение небольшим и изменить значение сеанса на большее только в сеансах, выполняющих крупные соединения, или изменить значение на основе запроса, используя подсказку оптимизатора SET_VAR (см. Раздел 10.9.3, «Подсказки оптимизатора»). Время выделения памяти может привести к существенному снижению производительности, если глобальный размер больше, чем требуется большинству запросов, использующих его.

    При использовании Block Nested-Loop больший буфер соединения может быть полезен до тех пор, пока все необходимые столбцы из всех строк в первой таблице не будут сохранены в буфере соединения. Это зависит от запроса; оптимальный размер может быть меньше, чем хранение всех строк из первой таблицы.

    При использовании Batched Key Access значение join_buffer_size определяет, насколько большой пакет ключей находится в каждом запросе к хранилищу данных. Чем больше буфер, тем больше последовательного доступа к правой таблице операции соединения, что может значительно повысить производительность.

    Дополнительную информацию о буферизации соединения см. в Разделе 10.2.1.7, «Алгоритмы соединения Nested-Loop». Информацию о Batched Key Access см. в Разделе 10.2.1.12, «Соединения Block Nested-Loop и Batched Key Access». Информацию о соединениях хеш-типов см. в Разделе 10.2.1.4, «Оптимизация соединения Hash Join».

  • keep_files_on_create

    Формат командной строки --keep-files-on-create[={OFF|ON}]
    Переменная системы keep_files_on_create
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Если таблица MyISAM создается без опции DATA DIRECTORY, файл .MYD создается в каталоге базы данных. По умолчанию, если MyISAM находит существующий файл .MYD в этом случае, он перезаписывает его. То же самое относится к файлам .MYI для таблиц, созданных без опции INDEX DIRECTORY. Чтобы подавить это поведение, установите переменную keep_files_on_create в значение ON (1), в этом случае MyISAM не перезаписывает существующие файлы и вместо этого возвращает ошибку. Значение по умолчанию — OFF (0).

    Если таблица MyISAM создается с опцией DATA DIRECTORY или INDEX DIRECTORY и обнаружен существующий файл .MYD или .MYI, MyISAM всегда возвращает ошибку. Он не перезаписывает файл в указанном каталоге.

  • key_buffer_size

    Формат командной строки --key-buffer-size=#
    Системная переменная key_buffer_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо ли ограничение Нет
    Тип Целое число
    Значение по умолчанию 8388608
    Минимальное значение 0
    Максимальное значение (64-битные платформы) OS_PER_PROCESS_LIMIT
    Максимальное значение (32-битные платформы) 4294967295
    Единицы измерения байты

    Блоки индексов для таблиц MyISAM буферизуются и разделяются всеми потоками. key_buffer_size — это размер буфера, используемого для блоков индексов. Буфер ключей также известен как кэш ключей.

    Минимальное допустимое значение — 0, но вы не можете динамически установить key_buffer_size в 0. Установка значения 0 приводит к отбрасыванию кэша ключей, что запрещено во время выполнения. Установка key_buffer_size в 0 разрешается только при запуске, в этом случае кэш ключей не инициализируется. Изменение значения key_buffer_size во время выполнения со значения 0 на допустимое ненулевое значение инициализирует кэш ключей.

    key_buffer_size можно увеличивать или уменьшать только на приращения или кратные 4096 байтам. Увеличение или уменьшение значения на несоответствующую величину приводит к предупреждению и обрезает значение до соответствующего значения.

    Максимальное допустимое значение для key_buffer_size составляет 4 ГБ−1 на 32-битных платформах. Более высокие значения допустимы для 64-битных платформ. Эффективный максимальный размер может быть меньше, в зависимости от доступной физической ОЗУ и лимитов памяти на процесс, налагаемых операционной системой или аппаратной платформой. Значение этой переменной указывает на запрашиваемый объем памяти. Внутренне сервер выделяет как можно больше памяти до этого значения, но фактическое выделение может быть меньше.

    Вы можете увеличить значение, чтобы получить лучшую обработку индексов для всех чтений и множественных записей; на системе, основной функцией которой является запуск MySQL с использованием хранилища MyISAM, 25% от всей памяти машины является приемлемым значением для этой переменной. Однако следует учитывать, что если вы сделаете значение слишком большим (например, более чем 50% от всей памяти машины), ваша система может начать страничную подкачку и станет очень медленной. Это происходит потому, что MySQL полагается на операционную систему для выполнения кэширования файловой системы для чтения данных, поэтому вы должны оставить место для кэша файловой системы. Также следует учитывать требования к памяти любых других двигателей хранилища, которые вы можете использовать в дополнение к MyISAM.

    Для еще большей скорости при записи большого количества строк одновременно используйте LOCK TABLES. См. Раздел 10.2.5.1, «Оптимизация операторов INSERT».

    Вы можете проверить производительность буфера ключей, выполнив оператор SHOW STATUS и рассмотрев переменные состояния Key_read_requests, Key_reads, Key_write_requests и Key_writes. (См. Раздел 15.7.7, «Операторы SHOW».) Отношение Key_reads/Key_read_requests обычно должно быть меньше 0,01. Отношение Key_writes/Key_write_requests обычно близко к 1, если вы в основном используете обновления и удаления, но может быть намного меньше, если вы склонны выполнять обновления, затрагивающие много строк одновременно, или если вы используете опцию таблицы DELAY_KEY_WRITE.

    Долю буфера ключей, находящегося в использовании, можно определить, используя key_buffer_size в сочетании со статусной переменной Key_blocks_unused и размером блока буфера, доступным из системной переменной key_cache_block_size:

    1 - ((Key_blocks_unused * key_cache_block_size) / key_buffer_size)
    

    Это приблизительное значение, потому что часть пространства в буфере ключей выделяется внутренне для административных структур. Факторы, влияющие на объем накладных расходов для этих структур, включают размер блока и размер указателя. По мере увеличения размера блока процент буфера ключей, теряемый накладными расходами, имеет тенденцию уменьшаться. Более крупные блоки приводят к меньшему количеству операций чтения (потому что больше ключей получается за одно чтение), но, наоборот, к увеличению чтений ключей, которые не проверяются (если не все ключи в блоке не имеют отношения к запросу).

    Возможна реализация нескольких MyISAM кэшей ключей. Предел размера 4 ГБ относится к каждому кэшу индивидуально, а не как к группе. См. Раздел 10.10.2, «Кэш ключей MyISAM».

  • key_cache_age_threshold

    Формат командной строки --key-cache-age-threshold=#
    Системная переменная key_cache_age_threshold
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо ли ограничение Нет
    Тип Целое число
    Значение по умолчанию 300
    Минимальное значение 100
    Максимальное значение (64-битные платформы) 18446744073709551516
    Максимальное значение (32-битные платформы) 4294967196
    Размер блока 100

    Это значение управляет понижением буферов из горячего подсписка кэша ключей в теплый подсписк. Более низкие значения приводят к более быстрому понижению. Минимальное значение — 100. Значение по умолчанию — 300. См. Раздел 10.10.2, «Кэш ключей MyISAM».

  • key_cache_block_size

    Формат командной строки --key-cache-block-size=#
    Системная переменная key_cache_block_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо ли ограничение Нет
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 512
    Максимальное значение 16384
    Единицы измерения байты
    Размер блока 512

    Размер блоков в кэше ключей в байтах. Значение по умолчанию — 1024. См. Раздел 10.10.2, «Кэш ключей MyISAM».

  • key_cache_division_limit

    Формат командной строки --key-cache-division-limit=#
    Системная переменная key_cache_division_limit
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо ли ограничение Нет
    Тип Целое число
    Значение по умолчанию 100
    Минимальное значение 1
    Максимальное значение 100

    Точка разделения между горячим и теплым подсписками списка буфера кэша ключей. Значение представляет собой процент списка буфера, используемого для теплого подсписка. Допустимые значения находятся в диапазоне от 1 до 100. Значение по умолчанию — 100. См. Раздел 10.10.2, «Кэш ключей MyISAM».

  • large_files_support

    Системная переменная large_files_support
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Булево

    Была ли mysqld скомпилирована с опциями для поддержки больших файлов.

  • large_pages

    Формат командной строки --large-pages[={OFF|ON}]
    Системная переменная large_pages
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Специфично для платформы Linux
    Тип Булево
    Значение по умолчанию OFF

    Включена ли поддержка больших страниц (через опцию --large-pages). См. Раздел 10.12.3.3, «Включение поддержки больших страниц».

  • large_page_size

    Системная переменная large_page_size
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 65535
    Единица измерения байты

    Если включена поддержка больших страниц, это показывает размер страниц памяти. Большие страницы памяти поддерживаются только в Linux; на других платформах значение этой переменной всегда равно 0. См. Раздел 10.12.3.3, «Включение поддержки больших страниц».

  • last_insert_id

    Значение, которое будет возвращено из LAST_INSERT_ID(). Это хранится в бинарном журнале, когда вы используете LAST_INSERT_ID() в операторе, который обновляет таблицу. Установка этой переменной не обновляет значение, возвращаемое функцией C API.

  • lc_messages

    Формат командной строки --lc-messages=name
    Системная переменная lc_messages
    Область видимости Глобальная, Сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию en_US

    Локаль, используемая для сообщений об ошибках. Значение по умолчанию — en_US. Сервер преобразует аргумент в имя языка и объединяет его со значением lc_messages_dir для определения местоположения файла сообщений об ошибках. См. Раздел 12.12, «Установка языка сообщений об ошибках».

  • lc_messages_dir

    Формат командной строки --lc-messages-dir=dir_name
    Системная переменная lc_messages_dir
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя каталога

    Каталог, в котором расположены сообщения об ошибках. Сервер использует это значение вместе со значением lc_messages для определения местоположения файла сообщений об ошибках. См. Раздел 12.12, «Установка языка сообщений об ошибках».

  • lc_time_names

    Формат командной строки --lc-time-names=value
    Системная переменная lc_time_names
    Область видимости Глобальная, Сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка

    Эта переменная указывает локаль, которая управляет языком, используемым для отображения названий и сокращений дней и месяцев. Эта переменная влияет на вывод функций DATE_FORMAT(), DAYNAME() и MONTHNAME(). Имена локалей — это значения в стиле POSIX, такие как 'ja_JP' или 'pt_BR'. Значение по умолчанию — 'en_US' независимо от настроек локали вашей системы. Для получения дополнительной информации см. Раздел 12.16, «Поддержка локали сервера MySQL».

  • license

    Системная переменная license
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию GPL

    Тип лицензии сервера.

  • local_infile

    Формат командной строки --local-infile[={OFF|ON}]
    Системная переменная local_infile
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная управляет возможностью загрузки локальных файлов на стороне сервера для операторов LOAD DATA. В зависимости от настройки local_infile, сервер отказывает или разрешает загрузку локальных данных клиентами, у которых LOCAL включена на стороне клиента.

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

  • lock_wait_timeout

    Формат командной строки --lock-wait-timeout=#
    Системная переменная lock_wait_timeout
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 31536000
    Минимальное значение 1
    Максимальное значение 31536000
    Единица измерения секунды

    Эта переменная задаёт время ожидания в секундах для попыток получения блокировок метаданных. Допустимые значения находятся в диапазоне от 1 до 31536000 (1 год). Значение по умолчанию — 31536000.

    Это время ожидания применяется ко всем операторам, использующим блокировки метаданных. К ним относятся операции DML и DDL над таблицами, представлениями, хранимыми процедурами и хранимыми функциями, а также операторы LOCK TABLES, FLUSH TABLES WITH READ LOCK и HANDLER.

    Это время ожидания не применяется к неявным доступам к системным таблицам в базе данных mysql, таким как таблицы предоставления прав, изменяемые операторами GRANT или REVOKE, или операторам ведения журнала таблиц. Время ожидания применяется к системным таблицам, к которым осуществляется прямой доступ, например, с помощью операторов SELECT или UPDATE.

    Значение времени ожидания применяется отдельно для каждой попытки блокировки метаданных. Заданный оператор может потребовать более одной блокировки, поэтому возможно, что оператор будет заблокирован дольше, чем значение lock_wait_timeout, прежде чем будет выведена ошибка времени ожидания. При возникновении тайм-аута блокировки, выводится сообщение об ошибке.

    lock_wait_timeout также определяет количество времени, в течение которого оператор LOCK INSTANCE FOR BACKUP ожидает блокировку, прежде чем отказаться.

  • locked_in_memory

    Системная переменная locked_in_memory
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Была ли mysqld заблокирована в памяти с помощью --memlock.

  • log_error

    Формат командной строки --log-error[=file_name]
    Системная переменная log_error
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла

    Целевой файл журнала ошибок по умолчанию. Если целевым объектом является консоль, значение равно stderr. В противном случае целевым объектом является файл, и значение log_error является именем файла. См. Раздел 7.4.2, «Журнал ошибок».

  • log_error_services

    Формат командной строки --log-error-services=value
    Системная переменная log_error_services
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию log_filter_internal; log_sink_internal

    Компоненты, которые необходимо включить для ведения журнала ошибок. Переменная может содержать список из 0, 1 или нескольких элементов. В последнем случае элементы могут разделяться точками с запятой или запятыми, необязательно с последующим пробелом. Заданная настройка не может использовать одновременно разделители точкой с запятой и запятой. Порядок компонентов имеет значение, поскольку сервер выполняет компоненты в указанном порядке.

    Любой загружаемый (не встроенный) компонент, указанный в log_error_services, неявно загружается, если он ещё не загружен. Для получения дополнительной информации см. Раздел 7.4.2.1, «Конфигурация журнала ошибок».

  • log_error_suppression_list

    Формат командной строки --log-error-suppression-list=value
    Системная переменная log_error_suppression_list
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию empty string

    Системная переменная log_error_suppression_list применяется к событиям, предназначенным для журнала ошибок, и указывает, какие события следует подавлять при их возникновении с приоритетом WARNING или INFORMATION. Например, если определённый тип предупреждения считается нежелательным “шумом” в журнале ошибок, поскольку он часто встречается, но не представляет интереса, его можно подавить. Эта переменная влияет на фильтрацию, выполняемую компонентом фильтра журнала ошибок log_filter_internal, который включен по умолчанию (см. Раздел 7.5.3, «Компоненты журнала ошибок»). Если log_filter_internal отключен, log_error_suppression_list не оказывает никакого действия.

    Значение log_error_suppression_list может быть пустой строкой для отсутствия подавления или списком из одного или нескольких значений, разделённых запятыми, указывающих коды ошибок, которые необходимо подавить. Коды ошибок могут быть указаны в символьной или числовой форме. Числовой код может быть указан с префиксом MY- или без него. Нули в начале числовой части не имеют значения. Примеры допустимых форматов кодов:

    ER_SERVER_SHUTDOWN_COMPLETE
    MY-000031
    000031
    MY-31
    31
    

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

    Действие log_error_suppression_list сочетается с действием log_error_verbosity. Для получения дополнительной информации см. Раздел 7.4.2.5, «Фильтрация журнала ошибок на основе приоритета (log_filter_internal)».

  • log_error_verbosity

    Формат командной строки --log-error-verbosity=#
    Системная переменная log_error_verbosity
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 2
    Минимальное значение 1
    Максимальное значение 3

    Системная переменная log_error_verbosity задаёт уровень детализации обработки событий, предназначенных для файла ошибок. Эта переменная влияет на фильтрацию, выполняемую компонентом фильтра журнала ошибок log_filter_internal, который включён по умолчанию (см. Раздел 7.5.3, «Компоненты журнала ошибок»). Если log_filter_internal отключен, log_error_verbosity не оказывает никакого влияния.

    События, предназначенные для журнала ошибок, имеют приоритет ERROR, WARNING или INFORMATION. log_error_verbosity управляет уровнем детализации на основе того, какие приоритеты разрешены для сообщений, записываемых в журнал, как показано в следующей таблице.

    Значение log_error_verbosity Разрешённые приоритеты сообщений
    1 ERROR
    2 ERROR, WARNING
    3 ERROR, WARNING, INFORMATION

    Существует также приоритет SYSTEM. Системные сообщения о некритичных ситуациях выводятся в журнал ошибок независимо от значения log_error_verbosity. Эти сообщения включают сообщения о запуске и завершении работы, а также некоторые значительные изменения настроек.

    Влияние log_error_verbosity сочетается с влиянием log_error_suppression_list. Для получения дополнительной информации см. Раздел 7.4.2.5, «Фильтрация журнала ошибок на основе приоритета (log_filter_internal)».

  • log_output

    Формат командной строки --log-output=name
    Системная переменная log_output
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Множество
    Значение по умолчанию FILE
    Допустимые значения

    TABLE

    FILE

    NONE

    Назначение или назначения для вывода общего журнала запросов и журнала медленных запросов. Значение представляет собой список из одного или нескольких слов, разделённых запятыми, выбранных из TABLE, FILE и NONE. TABLE выбирает запись в таблицы general_log и slow_log в схеме системы mysql. FILE выбирает запись в файлы журналов. NONE отключает запись в журналы. Если NONE присутствует в значении, оно имеет приоритет над любыми другими словами, которые присутствуют. TABLE и FILE могут быть указаны одновременно, чтобы выбрать оба места назначения вывода журнала.

    Эта переменная выбирает места назначения вывода журнала, но не включает вывод журнала. Для этого включите системные переменные general_log и slow_query_log. Для ведения журнала FILE системные переменные general_log_file и slow_query_log_file определяют местоположения файлов журналов. Для получения дополнительной информации см. Раздел 7.4.1, «Выбор мест назначения вывода общего журнала запросов и журнала медленных запросов».

  • log_queries_not_using_indexes

    Формат командной строки --log-queries-not-using-indexes[={OFF|ON}]
    Системная переменная log_queries_not_using_indexes
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Если включить эту переменную при включённом журнале медленных запросов, будут регистрироваться запросы, которые, как ожидается, извлекут все строки. См. Раздел 7.4.5, «Журнал медленных запросов». Этот параметр не обязательно означает, что индекс не используется. Например, запрос, использующий полное сканирование индекса, использует индекс, но будет зарегистрирован, поскольку индекс не будет ограничивать количество строк.

  • log_raw

    Формат командной строки --log-raw[={OFF|ON}]
    Системная переменная log_raw
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Системная переменная log_raw изначально устанавливается в значение параметра --log-raw. См. описание этого параметра для получения дополнительной информации. Системная переменная также может быть установлена во время выполнения для изменения поведения маскировки паролей.

  • log_slow_admin_statements

    Формат командной строки --log-slow-admin-statements[={OFF|ON}]
    Системная переменная log_slow_admin_statements
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Включить медленные административные операторы в операторы, записываемые в журнал медленных запросов. Административные операторы включают ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE и REPAIR TABLE.

  • log_slow_extra

    Формат командной строки --log-slow-extra[={OFF|ON}]
    Системная переменная log_slow_extra
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Если включён журнал медленных запросов и место назначения вывода включает FILE, сервер записывает дополнительные поля в строки файла журнала, которые предоставляют информацию о медленных операторах. См. Раздел 7.4.5, «Журнал медленных запросов». Вывод TABLE не изменяется.

  • log_timestamps

    Формат командной строки --log-timestamps=#
    Переменная системы log_timestamps
    Область Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Перечисление
    Значение по умолчанию UTC
    Допустимые значения

    UTC

    SYSTEM

    Эта переменная управляет часовым поясом метки времени в сообщениях, записываемых в журнал ошибок, а также в сообщениях журнала запросов и журнала медленных запросов, записанных в файлы. Она не влияет на часовой пояс общих сообщений журнала запросов и журнала медленных запросов, записанных в таблицы (mysql.general_log, mysql.slow_log). Строки, извлеченные из этих таблиц, можно преобразовать из локального часового пояса системы в любой желаемый часовой пояс с помощью CONVERT_TZ() или путем установки системной переменной сеанса time_zone.

    Разрешенные значения log_timestamps — это UTC (значение по умолчанию) и SYSTEM (локальный часовой пояс системы).

    Метки времени записываются в формате ISO 8601/RFC 3339: YYYY-MM-DDThh:mm:ss.uuuuuu плюс хвостовое значение Z, обозначающее время по Гринвичу (UTC), или ±hh:mm (смещение относительно UTC).

  • log_throttle_queries_not_using_indexes

    Формат командной строки --log-throttle-queries-not-using-indexes=#
    Переменная системы log_throttle_queries_not_using_indexes
    Область Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295

    Если log_queries_not_using_indexes включен, переменная log_throttle_queries_not_using_indexes ограничивает количество таких запросов в минуту, которые могут быть записаны в журнал медленных запросов. Значение 0 (значение по умолчанию) означает «без ограничения». Дополнительную информацию см. в разделе 7.4.5, «Журнал медленных запросов».

  • long_query_time

    Формат командной строки --long-query-time=#
    Переменная системы long_query_time
    Область Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Числовой
    Значение по умолчанию 10
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения секунды

    Если запрос занимает больше этого количества секунд, сервер увеличивает значение переменной состояния Slow_queries. Если журнал медленных запросов включен, запрос записывается в файл журнала медленных запросов. Это значение измеряется в реальном времени, а не во времени выполнения CPU, поэтому запрос, находящийся ниже порога на слабо загруженной системе, может оказаться выше порога на сильно загруженной. Минимальное и значение по умолчанию для long_query_time составляют 0 и 10 соответственно. Максимальное значение равно 31536000, что соответствует 365 дням в секундах. Значение можно указывать с точностью до микросекунд. См. раздел 7.4.5, «Журнал медленных запросов».

    Меньшие значения этой переменной приводят к тому, что больше заявлений рассматриваются как длительные, что приводит к тому, что больше места требуется для журнала медленных запросов. Для очень малых значений (менее одной секунды) журнал может быстро увеличиваться в объеме. Увеличение количества заявлений, рассматриваемых как длительные, также может привести к ложным срабатываниям для предупреждения «Избыточное число длительных процессов» в MySQL Enterprise Monitor, особенно если включена репликация Group Replication. По этим причинам очень маленькие значения следует использовать только в тестовых средах или в производственных средах только в течение короткого периода времени.

    mysqldump выполняет полный сканирование таблиц, что означает, что его запросы часто превышают значение long_query_time, которое полезно для обычных запросов. Если вы хотите исключить большинство или все запросы, сгенерированные mysqldump из журнала медленных запросов, вы можете использовать --mysqld-long-query-time, чтобы изменить значение переменной сеанса на более высокое.

  • low_priority_updates

    Формат командной строки --low-priority-updates[={OFF|ON}]
    Переменная системы low_priority_updates
    Область Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Если установлено значение 1, все операторы INSERT, UPDATE, DELETE и LOCK TABLE WRITE ожидают, пока не завершатся все ожидающие SELECT или LOCK TABLE READ для затронутой таблицы. Тот же эффект можно получить, используя {INSERT | REPLACE | DELETE | UPDATE} LOW_PRIORITY ..., чтобы понизить приоритет только одного запроса. Эта переменная влияет только на хранилища данных, использующие только блокировку на уровне таблицы (например, MyISAM, MEMORY и MERGE). См. раздел 10.11.2, «Вопросы блокировки таблиц».

    Установка значения сеанса этой системной переменной является ограниченной операцией. Пользователь сеанса должен иметь права, достаточные для установки ограниченных переменных сеанса. См. раздел 7.1.9.1, «Права на системные переменные».

  • lower_case_file_system

    Переменная системы lower_case_file_system
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево

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

  • lower_case_table_names

    Формат командной строки --lower-case-table-names[=#]
    Системная переменная lower_case_table_names
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию (macOS) 2
    Значение по умолчанию (Unix) 0
    Значение по умолчанию (Windows) 1
    Минимальное значение 0
    Максимальное значение 2

    Если значение установлено в 0, имена таблиц сохраняются как указано, и сравнения регистрозависимы. Если значение установлено в 1, имена таблиц хранятся в нижнем регистре на диске, и сравнения регистронезависимы. Если значение установлено в 2, имена таблиц сохраняются как указано, но сравниваются в нижнем регистре. Этот параметр также применяется к именам баз данных и псевдонимам таблиц. Дополнительные сведения см. в разделе 11.2.3 «Регистрозависимость идентификаторов».

    Значение этой переменной зависит от платформы (см. lower_case_file_system). В Linux и других системах Unix по умолчанию установлено 0. В Windows значение по умолчанию равно 1. В macOS значение по умолчанию равно 2. В Linux (и других системах Unix) установка значения в 2 не поддерживается; сервер принудительно устанавливает значение в 0.

    Не следует устанавливать lower_case_table_names в 0, если MySQL работает на системе, где каталоги данных находятся на файловой системе с регистронезависимым режимом (например, в Windows или macOS). Это недопустимая комбинация, которая может привести к зависанию при выполнении операции INSERT INTO ... SELECT ... FROM tbl_name с неправильным регистром символов tbl_name. При использовании MyISAM доступ к именам таблиц с разными регистрами символов может привести к повреждению индексов.

    Если вы попытаетесь запустить сервер с --lower_case_table_names=0 на файловой системе с регистронезависимым режимом, выводится сообщение об ошибке, и сервер завершает работу.

    Установка этой переменной влияет на поведение опций фильтрации репликации в отношении регистрозависимости. Дополнительные сведения см. в разделе 19.2.5 «Как серверы оценивают правила фильтрации репликации».

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

    Поэтому необходимо настроить lower_case_table_names на желаемое значение до инициализации сервера. В большинстве случаев это требует настройки lower_case_table_names в файле параметров MySQL перед первым запуском сервера MySQL. Однако при установке с APT на Debian и Ubuntu сервер инициализируется за вас, и нет возможности настроить параметр в файле параметров заранее. Следовательно, необходимо использовать утилиту debconf-set-selection перед установкой MySQL с помощью APT для включения lower_case_table_names. Для этого выполните следующую команду перед установкой MySQL с помощью APT:

    $> sudo debconf-set-selections <<< "mysql-server mysql-server/lowercase-table-names select Enabled"
    
  • mandatory_roles

    Формат командной строки --mandatory-roles=value
    Системная переменная mandatory_roles
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию empty string

    Роли, которые сервер должен рассматривать как обязательные. По сути, эти роли автоматически предоставляются каждому пользователю, хотя установка mandatory_roles фактически не изменяет учетные записи пользователей, и предоставленные роли не видны в таблице системы mysql.role_edges.

    Значение переменной представляет собой список имён ролей, разделенных запятыми. Пример:

    SET PERSIST mandatory_roles = '`role1`@`%`,`role2`,role3,role4@localhost';
    

    Для установки значения mandatory_roles в момент выполнения требуется привилегия ROLE_ADMIN в дополнение к привилегии SYSTEM_VARIABLES_ADMIN (или устаревшей привилегии SUPER), обычно требуемой для установки глобального значения системной переменной во время выполнения.

    Имена ролей состоят из части имени пользователя и части имени хоста в формате user_name@host_name. Часть имени хоста, если она опущена, по умолчанию равна %. Дополнительную информацию см. в разделе 8.2.5 «Указание имён ролей».

    Значение mandatory_roles является строкой, поэтому имена пользователей и имена хостов, если они заключены в кавычки, должны быть записаны способом, разрешенным для кавычек внутри строковых выражений.

    Роли, указанные в значении mandatory_roles, нельзя отозвать с помощью REVOKE или удалить с помощью DROP ROLE или DROP USER.

    Чтобы предотвратить преобразование сессий в системные по умолчанию, роль, обладающая привилегией SYSTEM_USER, не может быть указана в значении системной переменной mandatory_roles:

    • Если при запуске сервера mandatory_roles присвоена роль, обладающая привилегией SYSTEM_USER, сервер запишет сообщение в журнал ошибок и завершит работу.

    • Если во время выполнения сервера mandatory_roles присвоена роль, обладающая привилегией SYSTEM_USER, возникнет ошибка, и значение mandatory_roles останется неизменным.

    Обязательные роли, как и явно предоставленные роли, не вступают в силу до активации (см. Активация ролей). Во время входа в систему активация ролей происходит для всех предоставленных ролей, если системная переменная activate_all_roles_on_login включена; в противном случае или для ролей, заданных как роли по умолчанию. Во время выполнения активация ролей происходит с помощью SET ROLE.

    Роли, которые не существуют во время назначения им роли mandatory_roles, но создаются позже, могут потребовать специального обращения, чтобы быть рассмотренными как обязательные. Подробнее см. в разделе «Определение обязательных ролей».

    SHOW GRANTS отображает обязательные роли в соответствии с правилами, описанными в разделе 15.7.7.23 «Оператор SHOW GRANTS».

  • max_allowed_packet

    Командная строка --max-allowed-packet=#
    Системная переменная max_allowed_packet
    Область действия Глобальная, сессионная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 67108864
    Минимальное значение 1024
    Максимальное значение 1073741824
    Единицы измерения байты
    Размер блока 1024

    Максимальный размер одного пакета или любой сгенерированной/промежуточной строки, или любого параметра, отправленного функцией C API. Значение по умолчанию — 64 МБ.

    Буфер сообщения пакета инициализируется до net_buffer_length байтов, но может увеличиваться до max_allowed_packet байтов при необходимости. Это значение по умолчанию небольшое, чтобы поймать большие (возможно, неправильные) пакеты.

    Вам необходимо увеличить это значение, если вы используете большие BLOB столбцы или длинные строки. Оно должно быть таким же большим, как самый большой BLOB, который вы хотите использовать. Предельное значение протокола для max_allowed_packet составляет 1 ГБ. Значение должно быть кратным 1024; значения, не кратные 1024, округляются вниз до ближайшего кратного.

    При изменении размера буфера сообщения путём изменения значения переменной max_allowed_packet, вам также следует изменить размер буфера на стороне клиента, если это позволяет ваше клиентское приложение. Значение по умолчанию для max_allowed_packet, встроенное в библиотеку клиента, составляет 1 ГБ, но отдельные клиентские программы могут переопределять это значение. Например, mysql и mysqldump имеют значения по умолчанию 16 МБ и 24 МБ соответственно. Они также позволяют изменить значение на стороне клиента, задав max_allowed_packet в командной строке или в файле настроек.

    Сессионное значение этой переменной является только для чтения. Клиент может получить до тех байтов, сколько составляет сессионное значение. Однако сервер не отправляет клиенту больше байтов, чем текущее глобальное значение max_allowed_packet. (Глобальное значение может быть меньше сессионного, если оно изменено после подключения клиента).

  • max_connect_errors

    Командная строка --max-connect-errors=#
    Системная переменная max_connect_errors
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 100
    Минимальное значение 1
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295

    После max_connect_errors последовательных запросов на подключение с одного хоста, прерванных без успешного подключения, сервер блокирует этот хост от дальнейших подключений. Если подключение с хоста установлено успешно в течение менее чем max_connect_errors попыток после предыдущего прерванного подключения, счётчик ошибок для хоста сбрасывается до нуля. Для разблокировки заблокированных хостов очистите кэш хостов; см. Очистка кэша хостов.

  • max_connections

    Командная строка --max-connections=#
    Системная переменная max_connections
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 151
    Минимальное значение 1
    Максимальное значение 100000

    Максимальное разрешенное количество одновременных подключений клиентов. Максимальное эффективное значение — меньшее из эффективного значения open_files_limit - 810 и фактически установленного значения для max_connections.

    Для получения дополнительной информации, см. Раздел 7.1.12.1, «Интерфейсы подключения».

  • max_delayed_threads

    Командная строка --max-delayed-threads=#
    Устарело Да
    Системная переменная max_delayed_threads
    Область действия Глобальная, сессионная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 20
    Минимальное значение 0
    Максимальное значение 16384

    Эта системная переменная устарела (потому что DELAYED вставки не поддерживаются) и может быть удалена в будущих версиях MySQL.

    Установка сессионного значения этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных сессионных переменных. См. Раздел 7.1.9.1, «Права на системные переменные».

  • max_digest_length

    Формат командной строки --max-digest-length=#
    Системная переменная max_digest_length
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 0
    Максимальное значение 1048576
    Единица измерения байты

    Максимальное количество байтов памяти, резервируемых на сессию для вычисления нормализованных дайджестов операторов. После использования этого объёма пространства во время вычисления дайджеста происходит усечение: дальнейшие токены из обработанного оператора не собираются и не учитываются в его значении дайджеста. Операторы, которые различаются только после указанного количества байтов обработанных токенов, создают одинаковый нормализованный дайджест оператора и считаются идентичными, если сравниваются или агрегируются для статистики дайджестов.

    Длина, используемая для вычисления нормализованного дайджеста оператора, представляет собой сумму длины нормализованного дайджеста и длины дайджеста оператора. Поскольку длина дайджеста оператора всегда составляет 64, это эквивалентно LENGTH (STATEMENT_DIGEST_TEXT(statement) ) + 64. Это означает, что при значении max_digest_length равном 1024 (значение по умолчанию), максимальная длина нормализованного SQL-оператора перед усечением составляет фактически 960 байтов.

    Предупреждение

    Установка max_digest_length в ноль отключает создание дайджестов, что также отключает функциональность сервера, требующую дайджестов, такую как брандмауэр MySQL Enterprise Firewall.

    Уменьшение значения max_digest_length уменьшает использование памяти, но приводит к тому, что значения дайджеста большего количества операторов становятся неразличимыми, если они отличаются только в конце. Увеличение значения позволяет различать более длинные операторы, но увеличивает использование памяти, особенно для рабочих нагрузок, включающих большое количество одновременных сессий (сервер выделяет max_digest_length байт на сессию).

    Парсер использует эту системную переменную в качестве ограничения на максимальную длину нормализованных дайджестов операторов, которые он вычисляет. Если Performance Schema отслеживает дайджесты операторов, он создаёт копию значения дайджеста, используя системную переменную performance_schema_max_digest_length в качестве ограничения на максимальную длину хранимых дайджестов. Следовательно, если performance_schema_max_digest_length меньше max_digest_length, значения дайджестов, хранящиеся в Performance Schema, усекаются относительно исходных значений дайджестов.

    Дополнительную информацию о дайджестах операторов см. в Разделе 29.10, «Дайджесты операторов Performance Schema и выборка».

  • max_error_count

    Формат командной строки --max-error-count=#
    Системная переменная max_error_count
    Область действия Глобальная, сессионная
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 0
    Максимальное значение 65535

    Максимальное количество сообщений об ошибках, предупреждениях и информационных сообщениях, которые должны храниться для отображения операторами SHOW ERRORS и SHOW WARNINGS. Это совпадает с количеством областей условий в области диагностики и, следовательно, с количеством условий, которые могут быть проверены оператором GET DIAGNOSTICS.

    Установка сессионного значения этой системной переменной — это ограниченная операция. Пользователь сессии должен иметь права, достаточные для установки ограниченных сессионных переменных. См. Раздел 7.1.9.1, «Права на системные переменные».

  • max_execution_time

    Формат командной строки --max-execution-time=#
    Системная переменная max_execution_time
    Область действия Глобальная, сессионная
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения миллисекунды

    Таймаут выполнения операторов SELECT в миллисекундах. Если значение равно 0, таймауты отключены.

    max_execution_time применяется следующим образом:

    • Глобальное значение max_execution_time является значением по умолчанию для сессионного значения для новых подключений. Сессионное значение применяется к выполнением SELECT в рамках сессии, которые не включают подсказку оптимизатора MAX_EXECUTION_TIME(N) или для которых N равно 0.

    • max_execution_time применяется к операторам SELECT только для чтения. Операторы, которые не только для чтения, это те, которые вызывают хранимую функцию, которая изменяет данные как побочный эффект.

    • max_execution_time игнорируется для операторов SELECT в хранимых процедурах.

  • max_heap_table_size

    Формат командной строки --max-heap-table-size=#
    Системная переменная max_heap_table_size
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 16777216
    Минимальное значение 16384
    Максимальное значение (64-битные платформы) 18446744073709550592
    Максимальное значение (32-битные платформы) 4294966272
    Единица измерения байты
    Размер блока 1024

    Эта переменная устанавливает максимальный размер, до которого разрешено увеличивать созданные пользователем таблицы MEMORY. Значение переменной используется для вычисления значений MEMORY таблицы MAX_ROWS.

    Установка этой переменной не влияет на существующие таблицы MEMORY, если только таблица не будет пересоздана с помощью оператора, такого как CREATE TABLE, или изменена с помощью ALTER TABLE или TRUNCATE TABLE. Перезапуск сервера также устанавливает максимальный размер существующих таблиц MEMORY в глобальное значение max_heap_table_size.

    Эта переменная также используется в сочетании с tmp_table_size для ограничения размера внутренних таблиц в памяти. См. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL» и Count_hit_tmp_table_size.

    max_heap_table_size не реплицируется. См. Раздел 19.5.1.22, «Репликация и таблицы MEMORY», и Раздел 19.5.1.40, «Репликация и переменные» для получения дополнительной информации.

  • max_insert_delayed_threads

    Устарело Да
    Системная переменная max_insert_delayed_threads
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 20
    Максимальное значение 16384

    Эта переменная является синонимом для max_delayed_threads. Как и max_delayed_threads, она устарела (поскольку вставки DELAYED не поддерживаются) и может быть удалена в будущих выпусках MySQL.

    Установка значения сеанса этой системной переменной является ограниченной операцией. Пользователь сеанса должен иметь права, достаточные для установки ограниченных переменных сеанса. См. Раздел 7.1.9.1, «Права на системные переменные».

  • max_join_size

    Формат командной строки --max-join-size=#
    Системная переменная max_join_size
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 18446744073709551615
    Минимальное значение 1
    Максимальное значение 18446744073709551615

    Это представляет собой ограничение на максимальное количество обращений к строкам в базовых таблицах, выполняемых соединением. Если оценка сервера показывает, что из базовых таблиц необходимо прочитать больше строк, чем max_join_size, оператор отклоняется с ошибкой.

    Установка этой переменной в значение, отличное от DEFAULT, сбрасывает значение sql_big_selects в 0. Если вы снова установите значение sql_big_selects, переменная max_join_size игнорируется.

  • max_length_for_sort_data

    Формат командной строки --max-length-for-sort-data=#
    Устарело Да
    Системная переменная max_length_for_sort_data
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 4096
    Минимальное значение 4
    Максимальное значение 8388608
    Единица измерения байты

    Эта переменная устарела и не оказывает никакого влияния в MySQL 9.2.

  • max_points_in_geometry

    Формат командной строки --max-points-in-geometry=#
    Системная переменная max_points_in_geometry
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 65536
    Минимальное значение 3
    Максимальное значение 1048576

    Максимальное значение аргумента points_per_circle для функции ST_Buffer_Strategy().

  • max_prepared_stmt_count

    Формат командной строки --max-prepared-stmt-count=#
    Системная переменная max_prepared_stmt_count
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 16382
    Минимальное значение 0
    Максимальное значение 4194304

    Эта переменная ограничивает общее количество подготовленных операторов на сервере. Она может использоваться в средах, где существует потенциальная угроза атак типа «отказ в обслуживании», основанных на исчерпании памяти сервера путем подготовки огромного количества операторов. Если значение установлено ниже текущего количества подготовленных операторов, существующие операторы не затрагиваются и могут использоваться, но новые операторы не могут быть подготовлены, пока текущее количество не упадет ниже предела. Установка значения 0 отключает подготовленные операторы.

  • max_seeks_for_key

    Формат командной строки --max-seeks-for-key=#
    Системная переменная max_seeks_for_key
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию (Windows) 4294967295
    Значение по умолчанию (Другие, 64-битные платформы) 18446744073709551615
    Значение по умолчанию (Другие, 32-битные платформы) 4294967295
    Минимальное значение 1
    Максимальное значение (Windows) 4294967295
    Максимальное значение (Другие, 64-битные платформы) 18446744073709551615
    Максимальное значение (Другие, 32-битные платформы) 4294967295

    Ограничьте предполагаемое максимальное количество обращений при поиске строк по ключу. Оптимизатор MySQL предполагает, что при поиске совпадающих строк в таблице путем сканирования индекса не требуется более указанного количества обращений по ключу, независимо от фактической мощности индекса (см. Раздел 15.7.7.24, «Выполнение запроса SHOW INDEX»). Установив это значение в низкое (скажем, 100), вы можете заставить MySQL отдавать предпочтение индексам вместо сканирования таблицы.

  • max_sort_length

    Формат командной строки --max-sort-length=#
    Системная переменная max_sort_length
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 4
    Максимальное значение 8388608
    Единица измерения байты

    Количество байтов, используемых при сортировке строковых значений, которые используют PAD SPACE кодировки. Сервер использует только первые max_sort_length байта такого значения и игнорирует остальные. Вследствие этого такие значения, которые отличаются только после первых max_sort_length байтов, сравниваются как равные для GROUP BY, ORDER BY и DISTINCT операций. (Это поведение отличается от предыдущих версий MySQL, где это значение применялось ко всем значениям, используемым в сравнениях.)

    Увеличение значения max_sort_length может потребовать увеличения значения sort_buffer_size также. Подробнее см. Раздел 10.2.1.16, «Оптимизация ORDER BY»

  • max_sp_recursion_depth

    Формат командной строки --max-sp-recursion-depth[=#]
    Системная переменная max_sp_recursion_depth
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 255

    Количество раз, которое любая данная хранимая процедура может быть вызвана рекурсивно. Значение по умолчанию для этого параметра равно 0, что полностью отключает рекурсию в хранимых процедурах. Максимальное значение равно 255.

    Рекурсия хранимых процедур увеличивает потребность в пространстве стека потока. Если вы увеличиваете значение max_sp_recursion_depth, может потребоваться увеличить размер стека потока, увеличив значение thread_stack при запуске сервера.

  • max_user_connections

    Формат командной строки --max-user-connections=#
    Системная переменная max_user_connections
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295

    Максимальное количество одновременных подключений, разрешенных для любого пользователя MySQL. Значение 0 (по умолчанию) означает «без ограничений».

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

    • Если для учетной записи пользователя есть ненулевое ограничение ресурса, сеансовое значение max_user_connections устанавливается на это ограничение.

    • В противном случае сеансовое значение max_user_connections устанавливается на глобальное значение.

    Ограничения ресурсов учетной записи задаются с помощью CREATE USER или ALTER USER оператора. См. Раздел 8.2.21, «Установка ограничений ресурсов учетной записи».

  • max_write_lock_count

    Формат командной строки --max-write-lock-count=#
    Системная переменная max_write_lock_count
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию (Windows) 4294967295
    Значение по умолчанию (Другие, 64-битные платформы) 18446744073709551615
    Значение по умолчанию (Другие, 32-битные платформы) 4294967295
    Минимальное значение 1
    Максимальное значение (Windows) 4294967295
    Максимальное значение (Другие, 64-битные платформы) 18446744073709551615
    Максимальное значение (Другие, 32-битные платформы) 4294967295

    После этого количества блокировок записи разрешается обработка некоторых ожидающих запросов на чтение между ними. Запросы на блокировку записи имеют более высокий приоритет, чем запросы на блокировку чтения. Однако, если max_write_lock_count установлено в какое-то низкое значение (скажем, 10), запросы на чтение могут отдаваться предпочтение перед ожидающими запросами на запись, если запросы на чтение уже были пропущены в пользу 10 запросов на запись. Обычно такое поведение не происходит, поскольку у max_write_lock_count по умолчанию очень большое значение.

  • mecab_rc_file

    Формат командной строки --mecab-rc-file=file_name
    Системная переменная mecab_rc_file
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла

    Параметр mecab_rc_file используется при настройке анализатора полнотекстового поиска MeCab.

    Параметр mecab_rc_file определяет путь к конфигурационному файлу mecabrc, который является конфигурационным файлом для MeCab. Параметр является только для чтения и может быть установлен только при запуске. Конфигурационный файл mecabrc необходим для инициализации MeCab.

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

    Для получения информации о параметрах, которые могут быть указаны в конфигурационном файле MeCab mecabrc, обратитесь к документации MeCab на сайте Google Developers.

  • min_examined_row_limit

    Формат командной строки --min-examined-row-limit=#
    Системная переменная min_examined_row_limit
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295

    Запросы, которые просматривают меньше этого количества строк, не регистрируются в журнале медленных запросов.

    Установка сессионного значения этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных сессионных переменных. См. Раздел 7.1.9.1, «Привилегии системных переменных».

  • myisam_data_pointer_size

    Формат командной строки --myisam-data-pointer-size=#
    Системная переменная myisam_data_pointer_size
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 6
    Минимальное значение 2
    Максимальное значение 7
    Единица измерения байты

    Размер указателя по умолчанию в байтах, который будет использоваться CREATE TABLE для таблиц MyISAM, если не указан параметр MAX_ROWS. Эта переменная не может быть меньше 2 или больше 7. Значение по умолчанию равно 6. См. Раздел B.3.2.10, «Таблица заполнена».

  • myisam_max_sort_file_size

    Формат командной строки --myisam-max-sort-file-size=#
    Системная переменная myisam_max_sort_file_size
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию (Windows) 2146435072
    Значение по умолчанию (Другие, 64-битные платформы) 9223372036853727232
    Значение по умолчанию (Другие, 32-битные платформы) 2147483648
    Минимальное значение 0
    Максимальное значение (Windows) 2146435072
    Максимальное значение (Другие, 64-битные платформы) 9223372036853727232
    Максимальное значение (Другие, 32-битные платформы) 2147483648
    Единица измерения байты

    Максимальный размер временного файла, который MySQL может использовать при воссоздании индекса MyISAM (во время REPAIR TABLE, ALTER TABLE или LOAD DATA). Если размер файла будет больше этого значения, индекс создается с использованием кэш-памяти ключей, что медленнее. Значение указано в байтах.

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

  • myisam_mmap_size

    Формат командной строки --myisam-mmap-size=#
    Системная переменная myisam_mmap_size
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию (64-битные платформы) 18446744073709551615
    Значение по умолчанию (32-битные платформы) 4294967295
    Минимальное значение 7
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байты

    Максимальный объем памяти для использования при отображении в памяти сжатых файлов MyISAM. Если используется много сжатых таблиц MyISAM, значение может быть уменьшено, чтобы снизить вероятность проблем с подкачкой памяти.

  • myisam_recover_options

    Формат командной строки --myisam-recover-options[=list]
    Системная переменная myisam_recover_options
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию OFF
    Допустимые значения

    OFF

    DEFAULT

    BACKUP

    FORCE

    QUICK

    Установите режим восстановления хранилища MyISAM. Значение переменной — любая комбинация значений OFF, DEFAULT, BACKUP, FORCE или QUICK. Если вы указываете несколько значений, разделяйте их запятыми. Указание переменной без значения при запуске сервера равносильно указанию DEFAULT, а указание явного значения "" отключает восстановление (то же, что и значение OFF). Если восстановление включено, каждый раз, когда mysqld открывает таблицу MyISAM, проверяется, помечена ли таблица как аварийно завершившая работу или не была закрыта должным образом. (Последний вариант работает только в случае отключения внешней блокировки.) В этом случае mysqld выполняет проверку таблицы. Если таблица повреждена, mysqld пытается её восстановить.

    Следующие параметры влияют на работу восстановления.

    Параметр Описание
    OFF Восстановление отключено.
    DEFAULT Восстановление без резервной копии, принуждения или быстрой проверки.
    BACKUP Если файл данных был изменён во время восстановления, сохранить резервную копию файла tbl_name.MYD как файл tbl_name-datetime.BAK.
    FORCE Выполнить восстановление, даже если при этом будет потеряно более одной строки из файла .MYD.
    QUICK Не проверять строки в таблице, если нет блоков удаления.

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

    См. Раздел 18.2.1, «Параметры запуска MyISAM».

  • myisam_sort_buffer_size

    Формат командной строки --myisam-sort-buffer-size=#
    Системная переменная myisam_sort_buffer_size
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 8388608
    Минимальное значение 4096
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единицы измерения байты

    Размер буфера, выделяемого при сортировке MyISAM индексов во время REPAIR TABLE или при создании индексов с помощью CREATE INDEX или ALTER TABLE.

  • myisam_stats_method

    Формат командной строки --myisam-stats-method=name
    Системная переменная myisam_stats_method
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию nulls_unequal
    Допустимые значения

    nulls_unequal

    nulls_equal

    nulls_ignored

    Как сервер обрабатывает значения NULL при сборе статистики о распределении значений индексов для таблиц MyISAM. Эта переменная имеет три возможных значения: nulls_equal, nulls_unequal и nulls_ignored. Для nulls_equal все значения индекса NULL считаются равными и образуют одну группу значений, размер которой равен количеству значений NULL. Для nulls_unequal значения NULL считаются неравными, и каждое NULL образует отдельную группу значений размером 1. Для nulls_ignored значения NULL игнорируются.

    Способ генерации статистики таблиц влияет на то, как оптимизатор выбирает индексы для выполнения запросов, как описано в Разделе 10.3.8, «Сбор статистики индексов InnoDB и MyISAM».

  • myisam_use_mmap

    Формат командной строки --myisam-use-mmap[={OFF|ON}]
    Системная переменная myisam_use_mmap
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Использовать сопоставление с памятью для чтения и записи таблиц MyISAM.

  • named_pipe

    Формат командной строки --named-pipe[={OFF|ON}]
    Системная переменная named_pipe
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Зависит от платформы Windows
    Тип Булево
    Значение по умолчанию OFF

    (Только Windows.) Указывает, поддерживает ли сервер подключения через именованные каналы.

  • named_pipe_full_access_group

    Формат командной строки --named-pipe-full-access-group=value
    Системная переменная named_pipe_full_access_group
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Специфичная для платформы Windows
    Тип Строка
    Значение по умолчанию empty string
    Допустимые значения

    empty string

    valid Windows local group name

    *everyone*

    (Только Windows.) Контроль доступа, предоставляемый клиентам именованного канала, созданного сервером MySQL, устанавливается на минимально необходимый для успешного взаимодействия, когда системная переменная named_pipe включена для поддержки соединений через именованные каналы. Некоторые программы-клиенты MySQL могут открывать соединения через именованные каналы без дополнительной конфигурации; однако, другим программам-клиентам может потребоваться полный доступ для открытия соединения через именованный канал.

    Эта переменная устанавливает имя локальной группы Windows, члены которой получают от сервера MySQL достаточный доступ для использования клиентов именованных каналов. Значение по умолчанию — пустая строка, что означает, что ни одному пользователю Windows не предоставляется полный доступ к именованному каналу.

    Новое имя локальной группы Windows (например, mysql_access_client_users) можно создать в Windows, а затем использовать для замены значения по умолчанию, когда доступ абсолютно необходим. В этом случае ограничьте членство в группе как можно меньшим числом пользователей, удаляя пользователей из группы при обновлении их программного обеспечения клиента. Пользователю, не являющемуся членом группы, который пытается открыть соединение с MySQL с помощью затронутого клиента именованного канала, будет отказано в доступе, пока администратор Windows не добавит пользователя в группу. Недавно добавленным пользователям необходимо выйти из системы и снова войти, чтобы присоединиться к группе (требуется Windows).

    Установка значения в '*everyone*' обеспечивает независимый от языка способ ссылки на группу «Все» в Windows. Группа «Все» по умолчанию не является безопасной.

  • net_buffer_length

    Формат командной строки --net-buffer-length=#
    Системная переменная net_buffer_length
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 16384
    Минимальное значение 1024
    Максимальное значение 1048576
    Единица измерения байты
    Размер блока 1024

    Каждый поток клиента связан с буфером соединения и буфером результатов. Оба начинаются с размера, заданного net_buffer_length, но динамически увеличиваются до max_allowed_packet байт по мере необходимости. Буфер результатов уменьшается до net_buffer_length после каждого оператора SQL.

    Обычно эту переменную изменять не следует, но если у вас очень мало памяти, вы можете установить её в ожидаемую длину операторов, отправляемых клиентами. Если операторы превышают эту длину, буфер соединения автоматически увеличивается. Максимальное значение, до которого можно установить net_buffer_length, составляет 1 МБ.

    Значение сессии этой переменной является только для чтения.

  • net_read_timeout

    Формат командной строки --net-read-timeout=#
    Системная переменная net_read_timeout
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 30
    Минимальное значение 1
    Максимальное значение 31536000
    Единица измерения секунды

    Количество секунд ожидания дополнительных данных от соединения перед прерыванием чтения. Когда сервер читает данные от клиента, net_read_timeout — это значение тайм-аута, определяющее, когда следует прервать чтение. Когда сервер записывает данные клиенту, net_write_timeout — это значение тайм-аута, определяющее, когда следует прервать запись. См. также replica_net_timeout.

  • net_retry_count

    Формат командной строки --net-retry-count=#
    Системная переменная net_retry_count
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 10
    Минимальное значение 1
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295

    Если чтение или запись в коммуникационном порту прерваны, повторите попытку столько раз, прежде чем сдаться. Это значение должно быть достаточно большим на FreeBSD, поскольку внутренние прерывания отправляются всем потокам.

  • net_write_timeout

    Формат командной строки --net-write-timeout=#
    Системная переменная net_write_timeout
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 60
    Минимальное значение 1
    Максимальное значение 31536000
    Единица измерения секунды

    Количество секунд ожидания записи блока в соединение перед прерыванием записи. См. также net_read_timeout.

  • ngram_token_size

    Формат командной строки --ngram-token-size=#
    Системная переменная ngram_token_size
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 2
    Минимальное значение 1
    Максимальное значение 10

    Определяет размер токена n-грамм для анализатора полнотекстового поиска n-грамм. Параметр ngram_token_size является доступным только для чтения и может быть изменён только при запуске. Значение по умолчанию равно 2 (биграмма). Максимальное значение — 10.

    Для получения дополнительной информации о настройке этой переменной см. Раздел 14.9.8, «ngram Full-Text Parser».

  • offline_mode

    Формат командной строки --offline-mode[={OFF|ON}]
    Системная переменная offline_mode
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    В режиме офлайн MySQL-инстанс отключает клиентов, если у них нет соответствующих привилегий, и не позволяет им устанавливать новые подключения. Клиенты, которым доступ закрыт, получают ошибку. Точное сообщение об ошибке определяется следующим образом:

    1. Сервер пытается получить значение атрибута с именем reason, прикрепленного к offline_mode; это эквивалентно результату запроса, подобного этому:

      SELECT ATTR_VALUE INTO @sreason
      FROM performance_schema.global_variable_attributes
      WHERE VARIABLE_NAME='offline_mode' AND ATTR_NAME='reason';
      
    2. Если @sreason не NULL, сервер пытается получить время последнего изменения системной переменной offline_mode; это эквивалентно следующему запросу:

      SELECT SET_TIME INTO @stime
      FROM performance.schema_variables_info
      WHERE VARIABLE_NAME='offline_mode';
      
      • Если @stime не NULL, сервер генерирует ошибку и выводит следующее сообщение:

        The server is currently in offline mode since @stime, reason: @sreason
        
      • Если @stime равно NULL, сервер генерирует ошибку и выводит сообщение Сервер в настоящее время в режиме офлайн.

    3. Если @sreason пустое, сервер получает время последнего изменения offline_mode и имя пользователя, который его изменил; это эквивалентно запросу, показанному здесь:

      SELECT SET_TIME, SET_USER INTO @stime, @suser
      FROM performance.schema_variables_info
      WHERE VARIABLE_NAME='offline_mode';
      
      • Если ни @stime, ни @suser не NULL, сервер генерирует ошибку ER_SERVER_OFFLINE_MODE_USER и выводит показанное здесь сообщение об ошибке:

        The server is currently in offline mode since @stime, set by user @suser
        
      • Если @suser или @stime, или оба, равны NULL, сервер генерирует ошибку и выводит текст сообщения об ошибке, показанный ранее.

    Дополнительную информацию о таблицах Performance Schema, используемых здесь, см. в разделе 29.12.14.1, «Таблица Performance Schema global_variable_attributes» и разделе 29.12.14.3, «Таблица Performance Schema variables_info».

    Чтобы перевести сервер в режим офлайн, измените значение системной переменной offline_mode с OFF на ON. Чтобы вернуться к нормальной работе, измените offline_mode с ON на OFF. Для управления режимом офлайн учетная запись администратора должна иметь привилегию SYSTEM_VARIABLES_ADMIN и привилегию CONNECTION_ADMIN (или устаревшую привилегию SUPER, которая включает обе эти привилегии). CONNECTION_ADMIN требуется, чтобы предотвратить случайный блокирование.

    Режим офлайн характеризуется следующими особенностями:

    • Подключенные клиенты, у которых нет привилегии CONNECTION_ADMIN (или устаревшей привилегии SUPER), отключаются при следующем запросе с соответствующей ошибкой. Отключение включает завершение выполнения запросов и освобождение блокировок. Такие клиенты также не могут создавать новые подключения и получают соответствующую ошибку.

    • Подключенные клиенты, у которых есть привилегия CONNECTION_ADMIN или SUPER, не отключаются и могут создавать новые подключения для управления сервером.

    • Если пользователь, который переводит сервер в офлайн режим, не имеет привилегии SYSTEM_USER, подключенные клиенты, у которых есть привилегия SYSTEM_USER, также не отключаются. Однако эти пользователи не могут создавать новые подключения к серверу, пока он находится в режиме офлайн, если у них нет также привилегии CONNECTION_ADMIN или SUPER. Только их существующее подключение не может быть прервано, так как для прерывания сеанса или запроса, выполняемого с привилегией SYSTEM_USER, требуется привилегия SYSTEM_USER.

    • Потоки репликации могут продолжать применять данные к серверу.

  • old_alter_table

    Формат командной строки --old-alter-table[={OFF|ON}]
    Системная переменная old_alter_table
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    При включении этой переменной сервер не использует оптимизированный метод обработки операции ALTER TABLE. Он возвращается к использованию временной таблицы, копированию данных и переименованию временной таблицы в исходную, как это делалось в MySQL 5.0 и ранее. Дополнительную информацию об операции ALTER TABLE см. в разделе 15.1.9, «Выполнение ALTER TABLE».

    ALTER TABLE ... DROP PARTITION с old_alter_table=ON перестраивает разбиение таблицы и пытается перенести данные из удаленного разбиения в другое разбиение с совместимым определением PARTITION ... VALUES. Данные, которые невозможно перенести в другое разбиение, удаляются. В предыдущих версиях ALTER TABLE ... DROP PARTITION с old_alter_table=ON удалялись данные, хранящиеся в разбиении, и само разбиение удалялось.

  • open_files_limit

    Формат командной строки --open-files-limit=#
    Системная переменная open_files_limit
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 5000, with possible adjustment
    Минимальное значение 0
    Максимальное значение platform dependent

    Количество дескрипторов файлов, доступных для mysqld от операционной системы:

    • При запуске, mysqld резервирует дескрипторы с setrlimit(), используя значение, запрошенное при установке этой переменной напрямую или с помощью опции --open-files-limit для mysqld_safe. Если mysqld выдает ошибку Too many open files, попробуйте увеличить значение open_files_limit. Внутренне, максимальное значение для этой переменной является максимальным значением без знака, но фактический максимум зависит от платформы.

    • Во время выполнения, значение open_files_limit указывает количество дескрипторов файлов, фактически разрешенных для mysqld операционной системой, которое может отличаться от значения, запрошенного при запуске. Если количество дескрипторов файлов, запрошенных во время запуска, не может быть выделено, mysqld записывает предупреждение в лог ошибок.

    Эффективное значение open_files_limit основано на значении, указанном при запуске системы (если таковое имеется), и значениях max_connections и table_open_cache, используя эти формулы:

    • 10 + max_connections + (table_open_cache * 2). Использование значений по умолчанию для этих переменных дает 8161.

      Только в Windows к этому числу добавляется 2048 (значение максимального количества дескрипторов файлов библиотеки времени выполнения C). В сумме это составляет 10209, опять же, используя значения по умолчанию для указанных системных переменных.

    • max_connections * 5

    • Ограничение операционной системы.

    Сервер пытается получить количество дескрипторов файлов, используя максимум из этих значений, ограниченный максимальным беззнаковым целым значением. Если такое количество дескрипторов получить невозможно, сервер пытается получить столько, сколько позволяет система.

    Эффективное значение равно 0 в системах, где MySQL не может изменить количество открытых файлов.

    В Unix значение не может быть установлено больше, чем значение, отображаемое командой ulimit -n. В Linux системах, использующих systemd, значение не может быть установлено больше, чем LimitNOFILE (это DefaultLimitNOFILE, если LimitNOFILE не установлен); в противном случае, в Linux значение open_files_limit не может превышать ulimit -n.

  • optimizer_prune_level

    Формат командной строки --optimizer-prune-level=#
    Системная переменная optimizer_prune_level
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 0
    Максимальное значение 1

    Управляет эвристикой, применяемой во время оптимизации запросов для удаления менее перспективных частичных планов из пространства поиска оптимизатора. Значение 0 отключает эвристику, так что оптимизатор выполняет полный поиск. Значение 1 заставляет оптимизатор удалять планы на основе количества строк, извлекаемых промежуточными планами.

  • optimizer_search_depth

    Формат командной строки --optimizer-search-depth=#
    Системная переменная optimizer_search_depth
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 62
    Минимальное значение 0
    Максимальное значение 62

    Максимальная глубина поиска, выполняемого оптимизатором запросов. Значения, большие, чем количество отношений в запросе, приводят к лучшим планам запросов, но требуют больше времени для генерации плана выполнения запроса. Значения, меньшие, чем количество отношений в запросе, возвращают план выполнения быстрее, но полученный план может быть далек от оптимального. Если установлено значение 0, система автоматически выбирает разумное значение.

  • optimizer_switch

    Формат командной строки --optimizer-switch=value
    Системная переменная optimizer_switch
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Множество
    Допустимые значения

    batched_key_access={on|off}

    block_nested_loop={on|off}

    condition_fanout_filter={on|off}

    derived_condition_pushdown={on|off}

    derived_merge={on|off}

    duplicateweedout={on|off}

    engine_condition_pushdown={on|off}

    firstmatch={on|off}

    hash_join={on|off}

    index_condition_pushdown={on|off}

    index_merge={on|off}

    index_merge_intersection={on|off}

    index_merge_sort_union={on|off}

    index_merge_union={on|off}

    loosescan={on|off}

    materialization={on|off}

    mrr={on|off}

    mrr_cost_based={on|off}

    prefer_ordering_index={on|off}

    semijoin={on|off}

    skip_scan={on|off}

    subquery_materialization_cost_based={on|off}

    subquery_to_derived={on|off}

    use_index_extensions={on|off}

    use_invisible_indexes={on|off}

    Системная переменная optimizer_switch позволяет управлять поведением оптимизатора. Значение этой переменной представляет собой набор флагов, каждый из которых имеет значение on или off, чтобы указать, включено или выключено соответствующее поведение оптимизатора. Эта переменная имеет глобальные и сессионные значения и может быть изменена во время выполнения. Глобальное значение по умолчанию может быть установлено при запуске сервера.

    Чтобы увидеть текущий набор флагов оптимизатора, выберите значение переменной:

    mysql> SELECT @@optimizer_switch\G
    *************************** 1. row ***************************
    @@optimizer_switch: index_merge=on,index_merge_union=on,
                        index_merge_sort_union=on,index_merge_intersection=on,
                        engine_condition_pushdown=on,index_condition_pushdown=on,
                        mrr=on,mrr_cost_based=on,block_nested_loop=on,
                        batched_key_access=off,materialization=on,semijoin=on,
                        loosescan=on,firstmatch=on,duplicateweedout=on,
                        subquery_materialization_cost_based=on,
                        use_index_extensions=on,condition_fanout_filter=on,
                        derived_merge=on,use_invisible_indexes=off,skip_scan=on,
                        hash_join=on,subquery_to_derived=off,
                        prefer_ordering_index=on,hypergraph_optimizer=off,
                        derived_condition_pushdown=on,hash_set_operations=on
    1 row in set (0.00 sec)
    

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

  • optimizer_trace

    Формат командной строки --optimizer-trace=value
    Системная переменная optimizer_trace
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка

    Эта переменная управляет трассировкой оптимизатора. Для получения подробной информации см. Раздел 10.15, «Трассировка оптимизатора».

  • optimizer_trace_features

    Формат командной строки --optimizer-trace-features=value
    Переменная системы optimizer_trace_features
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Эта переменная включает или отключает выбранные функции отслеживания оптимизатора. Подробнее см. Раздел 10.15, «Отслеживание оптимизатора».

  • optimizer_trace_limit

    Формат командной строки --optimizer-trace-limit=#
    Переменная системы optimizer_trace_limit
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 0
    Максимальное значение 2147483647

    Максимальное количество отслеживаний оптимизатора для отображения. Подробнее см. Раздел 10.15, «Отслеживание оптимизатора».

  • optimizer_trace_max_mem_size

    Формат командной строки --optimizer-trace-max-mem-size=#
    Переменная системы optimizer_trace_max_mem_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 1048576
    Минимальное значение 0
    Максимальное значение 4294967295
    Единицы измерения байты

    Максимальный кумулятивный размер сохранённых отслеживаний оптимизатора. Подробнее см. Раздел 10.15, «Отслеживание оптимизатора».

  • optimizer_trace_offset

    Формат командной строки --optimizer-trace-offset=#
    Переменная системы optimizer_trace_offset
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию -1
    Минимальное значение -2147483647
    Максимальное значение 2147483647

    Смещение отслеживаний оптимизатора для отображения. Подробнее см. Раздел 10.15, «Отслеживание оптимизатора».

  • performance_schema_xxx

    Переменные системы Performance Schema перечислены в Разделе 29.15, «Переменные системы Performance Schema». Эти переменные могут использоваться для настройки работы Performance Schema.

  • parser_max_mem_size

    Формат командной строки --parser-max-mem-size=#
    Переменная системы parser_max_mem_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию (64-разрядные платформы) 18446744073709551615
    Значение по умолчанию (32-разрядные платформы) 4294967295
    Минимальное значение 10000000
    Максимальное значение (64-разрядные платформы) 18446744073709551615
    Максимальное значение (32-разрядные платформы) 4294967295
    Единицы измерения байты

    Максимальный объём памяти, доступный парсеру. Значение по умолчанию не устанавливает ограничений на доступную память. Значение может быть уменьшено для защиты от ситуаций исчерпания памяти, вызванных парсингом длинных или сложных SQL-запросов.

  • partial_revokes

    Формат командной строки --partial-revokes[={OFF|ON}]
    Переменная системы partial_revokes
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию

    OFF (если частичные отмены не существуют)

    ON (если частичные отмены существуют)

    Включение этой переменной позволяет частично отозвать привилегии. В частности, для пользователей с привилегиями на глобальном уровне, partial_revokes позволяет отозвать привилегии для определённых схем, оставив привилегии в силе для других схем. Например, пользователь, у которого есть глобальная привилегия UPDATE, может быть ограничен в использовании этой привилегии в схеме mysql системы. (Или, другими словами, пользователю разрешено использовать привилегию UPDATE во всех схемах, кроме схемы mysql.) В этом смысле глобальная привилегия пользователя UPDATE частично отозвана.

    После включения partial_revokes нельзя отключить, если у какой-либо учётной записи есть ограничения на привилегии. Если такая учётная запись существует, отключение partial_revokes завершается неудачно:

    • При попытке отключить partial_revokes при запуске сервера, сервер записывает сообщение об ошибке и включает partial_revokes.

    • При попытке отключить partial_revokes во время работы, возникает ошибка, и значение partial_revokes остаётся неизменным.

    Чтобы отключить partial_revokes в этом случае, сначала измените каждую учётную запись, у которой есть частично отозванные привилегии, либо повторно предоставив привилегии, либо удалив учётную запись.

    Примечание

    При назначении привилегий включение partial_revokes заставляет MySQL интерпретировать появления неэкранированных _ и % символов-подстановок SQL в именах схем как символы-литералы, так же, как если бы они были экранированы как \_ и \%. Поскольку это меняет то, как MySQL интерпретирует привилегии, рекомендуется избегать неэкранированных символов-подстановок в назначениях привилегий для установок, где partial_revokes может быть включено.

    Кроме того, использование _ и % в качестве символов-подстановок в разрешениях устарело, и вы должны ожидать удаления поддержки для них в будущих версиях MySQL.

    Для получения дополнительной информации, включая инструкции по удалению частичных отзывов, см. Раздел 8.2.12, «Ограничение привилегий с помощью частичных отзывов».

  • password_history

    Формат командной строки --password-history=#
    Переменная системы password_history
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295

    Эта переменная определяет глобальную политику контроля повторного использования предыдущих паролей на основе минимального необходимого числа смен паролей. Для ранее использованного пароля учетной записи эта переменная указывает количество последующих смен пароля учетной записи, которое должно произойти, прежде чем пароль можно будет повторно использовать. Если значение равно 0 (значение по умолчанию), ограничений на повторное использование паролей на основе количества смен нет.

    Изменения в этой переменной применяются немедленно ко всем учетным записям, определённым с опцией PASSWORD HISTORY DEFAULT.

    Глобальную политику повторного использования паролей, основанную на количестве смен, можно переопределить для отдельных учетных записей с помощью опции PASSWORD HISTORY операторов CREATE USER и ALTER USER. См. Раздел 8.2.15, «Управление паролями».

  • password_require_current

    Формат командной строки --password-require-current[={OFF|ON}]
    Переменная системы password_require_current
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

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

    Изменения в этой переменной применяются немедленно ко всем учетным записям, определённым с опцией PASSWORD REQUIRE CURRENT DEFAULT.

    Глобальную политику обязательного подтверждения можно переопределить для отдельных учетных записей с помощью опции PASSWORD REQUIRE операторов CREATE USER и ALTER USER. См. Раздел 8.2.15, «Управление паролями».

  • password_reuse_interval

    Формат командной строки --password-reuse-interval=#
    Переменная системы password_reuse_interval
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения дней

    Эта переменная определяет глобальную политику контроля повторного использования предыдущих паролей на основе прошедшего времени. Для ранее использованного пароля учетной записи эта переменная указывает количество дней, которое должно пройти, прежде чем пароль можно будет повторно использовать. Если значение равно 0 (значение по умолчанию), ограничений на повторное использование паролей на основе времени нет.

    Изменения в этой переменной применяются немедленно ко всем учетным записям, определённым с опцией PASSWORD REUSE INTERVAL DEFAULT.

    Глобальную политику повторного использования паролей, основанную на прошедшем времени, можно переопределить для отдельных учетных записей с помощью опции PASSWORD REUSE INTERVAL операторов CREATE USER и ALTER USER. См. Раздел 8.2.15, «Управление паролями».

  • persisted_globals_load

    Формат командной строки --persisted-globals-load[={OFF|ON}]
    Переменная системы persisted_globals_load
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Загружать ли сохраненные настройки конфигурации из файла mysqld-auto.cnf в каталоге данных. Сервер обычно обрабатывает этот файл при запуске после всех других файлов параметров (см. Раздел 6.2.2.2, «Использование файлов параметров»). Отключение persisted_globals_load приводит к пропуску этапа обработки mysqld-auto.cnf в процессе запуска сервера.

    Чтобы изменить содержимое mysqld-auto.cnf, используйте операторы SET PERSIST, SET PERSIST_ONLY и RESET PERSIST. См. Раздел 7.1.9.3, «Сохраненные системные переменные».

  • persist_only_admin_x509_subject

    Формат командной строки --persist-only-admin-x509-subject=string
    Переменная системы persist_only_admin_x509_subject
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию empty string

    SET PERSIST и SET PERSIST_ONLY позволяют сохранять системные переменные в файл параметров mysqld-auto.cnf в каталоге данных (см. Раздел 15.7.6.1, «Синтаксис SET для присваивания переменных»). Сохранение системных переменных позволяет сохранять изменения конфигурации во время выполнения, что влияет на последующие перезапуски сервера. Это удобно для удалённого администрирования, не требующего прямого доступа к файлам параметров хоста MySQL-сервера. Однако некоторые системные переменные не поддерживают сохранение или могут быть сохранены только при определённых условиях.

    Системная переменная persist_only_admin_x509_subject указывает значение SSL сертификата X.509 Subject, которое должны иметь пользователи, чтобы иметь возможность сохранять системные переменные, ограниченные сохранением. Значение по умолчанию - пустая строка, что отключает проверку Subject, поэтому переменные систем, ограниченные сохранением, не могут быть сохранены никем.

    Если persist_only_admin_x509_subject не пустая, пользователи, подключающиеся к серверу с использованием зашифрованного соединения и предоставлением SSL сертификата с указанным значением Subject, могут использовать SET PERSIST_ONLY для сохранения переменных систем, ограниченных сохранением. Дополнительную информацию о переменных систем, ограниченных сохранением, и инструкции по настройке MySQL для активации persist_only_admin_x509_subject, см. в Разделе 7.1.9.4, «Несохраняемые и ограниченные системные переменные».

END_OF_DOCUMENT_MARKER
  • persist_sensitive_variables_in_plaintext

    Формат командной строки --persist_sensitive_variables_in_plaintext[={OFF|ON}]
    Системная переменная persist_sensitive_variables_in_plaintext
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию ON

    persist_sensitive_variables_in_plaintext управляет тем, разрешено ли серверу хранить значения конфиденциальных системных переменных в незашифрованном формате, если поддержка компонента keyring недоступна в момент, когда SET PERSIST используется для установки значения системной переменной. Он также управляет тем, может ли сервер запускаться, если зашифрованные значения не могут быть расшифрованы. Обратите внимание, что плагины keyring не поддерживают безопасное хранение конфиденциальных системных переменных; компонент keyring (см. Раздел 8.4.4, «Ключница MySQL») должен быть включен в экземпляре сервера MySQL для поддержки безопасного хранения.

    Настройка по умолчанию, ON, шифрует значения, если доступна поддержка компонента keyring, и сохраняет их незашифрованными (с предупреждением), если она недоступна. В следующий раз, когда будет установлена любая сохраняемая системная переменная, если поддержка keyring доступна в этот момент, сервер шифрует значения любых незашифрованных конфиденциальных системных переменных. Настройка ON также позволяет серверу запускаться, если зашифрованные значения системных переменных не могут быть расшифрованы, в этом случае выдается предупреждение и используются значения по умолчанию для системных переменных. В этой ситуации их значения нельзя изменить, пока их нельзя расшифровать.

    Наиболее безопасная настройка, OFF, означает, что значения конфиденциальных системных переменных не могут быть сохранены, если поддержка компонента keyring недоступна. Настройка OFF также означает, что сервер не запускается, если зашифрованные значения системных переменных не могут быть расшифрованы.

    Для получения дополнительной информации см. Сохранение конфиденциальных системных переменных.

  • pid_file

    Формат командной строки --pid-file=file_name
    Системная переменная pid_file
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла

    Имя пути к файлу, в котором сервер записывает свой идентификатор процесса. Сервер создает файл в каталоге данных, если только не указано абсолютное имя пути для указания другого каталога. Если вы указываете эту переменную, вы должны указать значение. Если вы не указываете эту переменную, MySQL использует значение по умолчанию host_name.pid, где host_name — имя хост-машины.

    Файл идентификатора процесса используется другими программами, такими как mysqld_safe, для определения идентификатора процесса сервера. В Windows эта переменная также влияет на имя файла журнала ошибок по умолчанию. См. Раздел 7.4.2, «Журнал ошибок».

  • plugin_dir

    Формат командной строки --plugin-dir=dir_name
    Системная переменная plugin_dir
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя каталога
    Значение по умолчанию BASEDIR/lib/plugin

    Имя пути к каталогу плагинов.

    Если каталог плагинов доступен для записи сервером, пользователь может записать исполняемый код в файл в каталоге, используя SELECT ... INTO DUMPFILE. Это можно предотвратить, сделав plugin_dir доступным только для чтения для сервера или установив secure_file_priv в каталог, куда SELECT может безопасно записывать данные.

  • port

    Формат командной строки --port=port_num
    Системная переменная port
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 3306
    Минимальное значение 0
    Максимальное значение 65535

    Номер порта, на котором сервер прослушивает TCP/IP-подключения. Эта переменная может быть установлена с помощью параметра --port.

  • preload_buffer_size

    Формат командной строки --preload-buffer-size=#
    Системная переменная preload_buffer_size
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 32768
    Минимальное значение 1024
    Максимальное значение 1073741824
    Единица измерения байты

    Размер буфера, который выделяется при предварительной загрузке индексов.

    Установка значения сессии этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. Раздел 7.1.9.1, «Права на системные переменные».

  • print_identified_with_as_hex

    Формат командной строки --print-identified-with-as-hex[={OFF|ON}]
    Системная переменная print_identified_with_as_hex
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Значения хэшей паролей, отображаемые в предложении IDENTIFIED WITH вывода из SHOW CREATE USER, могут содержать непечатаемые символы, которые оказывают негативное влияние на отображение в терминале и в других средах. Включение print_identified_with_as_hex приводит к тому, что SHOW CREATE USER отображает такие значения хэшей в виде шестнадцатеричных строк, а не в виде обычных строковых литералов. Значения хэшей, которые не содержат непечатаемых символов, по-прежнему отображаются как обычные строковые литералы, даже если эта переменная включена.

  • profiling

    Если установлено в 0 или OFF (по умолчанию), профилирование инструкций отключено. Если установлено в 1 или ON, профилирование инструкций включено, и инструкции SHOW PROFILE и SHOW PROFILES обеспечивают доступ к информации о профилировании. См. Раздел 15.7.7.33, «Инструкция SHOW PROFILES».

    Эта переменная устарела; ожидается, что она будет удалена в будущей версии MySQL.

  • profiling_history_size

    Количество инструкций, для которых необходимо поддерживать информацию о профилировании, если profiling включено. Значение по умолчанию — 15. Максимальное значение — 100. Установка значения 0 фактически отключает профилирование. См. Раздел 15.7.7.33, «Инструкция SHOW PROFILES».

    Эта переменная устарела; ожидается, что она будет удалена в будущей версии MySQL.

  • protocol_compression_algorithms

    Формат командной строки --protocol-compression-algorithms=value
    Системная переменная protocol_compression_algorithms
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Множество
    Значение по умолчанию zlib,zstd,uncompressed
    Допустимые значения

    zlib

    zstd

    uncompressed

    Алгоритмы сжатия, разрешаемые сервером для входящих соединений. Сюда входят соединения клиентских программ и серверов, участвующих в репликации источник/реплика или групповой репликации. Сжатие не применяется к соединениям для таблиц FEDERATED.

    protocol_compression_algorithms не управляет сжатием соединений для X Protocol. См. Раздел 22.5.5, «Сжатие соединений с помощью X Plugin» для получения информации о том, как это работает.

    Значение переменной представляет собой список из одного или нескольких имен алгоритмов сжатия, разделенных запятыми, в любом порядке, выбранных из следующих элементов (регистр не учитывается):

    • zlib: Разрешить соединения, использующие алгоритм сжатия zlib.

    • zstd: Разрешить соединения, использующие алгоритм сжатия zstd.

    • uncompressed: Разрешить несжатые соединения. Если это имя алгоритма не включено в значение protocol_compression_algorithms, сервер не разрешает несжатые соединения. Он разрешает только сжатые соединения, использующие любые другие алгоритмы, указанные в значении, и нет возврата к несжатым соединениям.

    Значение по умолчанию zlib,zstd,uncompressed указывает, что сервер разрешает все алгоритмы сжатия.

    Для получения дополнительной информации см. Раздел 6.2.8, «Управление сжатием соединений».

  • protocol_version

    Системная переменная protocol_version
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 10
    Минимальное значение 0
    Максимальное значение 4294967295

    Версия протокола клиент/сервер, используемая сервером MySQL.

  • proxy_user

    Системная переменная proxy_user
    Область видимости Сессия
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Строка

    Если текущий клиент является прокси для другого пользователя, эта переменная представляет собой имя учетной записи пользователя-прокси. В противном случае эта переменная равна NULL. См. Раздел 8.2.19, «Пользователи-прокси».

  • pseudo_replica_mode

    Системная переменная pseudo_replica_mode
    Область видимости Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево

    pseudo_replica_mode предназначена для внутреннего использования сервером. Она помогает в правильной обработке транзакций, которые были инициированы на более старых или новых серверах, чем сервер, который в настоящее время их обрабатывает. mysqlbinlog устанавливает значение pseudo_replica_mode в true перед выполнением любых операторов SQL.

    Установка сессионного значения pseudo_replica_mode является ограниченной операцией. Пользователь сессии должен иметь либо привилегию REPLICATION_APPLIER (см. Раздел 19.3.3, «Проверка привилегий репликации»), либо привилегии, достаточные для установки ограниченных сессионных переменных (см. Раздел 7.1.9.1, «Привилегии системных переменных»). Однако обратите внимание, что переменная не предназначена для установки пользователями; она устанавливается автоматически инфраструктурой репликации.

    pseudo_replica_mode оказывает следующее влияние на обработку подготовленных транзакций XA, которые могут быть присоединены или отсоединены от сессии обработки (по умолчанию, сессии, которая выдает XA START):

    • Если true, и сессия обработки выполнила оператор BINLOG для внутреннего использования, транзакции XA автоматически отключаются от сессии, как только завершается первая часть транзакции до XA PREPARE, чтобы они могли быть подтверждены или отменены любой сессией, имеющей привилегию XA_RECOVER_ADMIN.

    • Если false, транзакции XA остаются прикрепленными к сессии обработки до тех пор, пока эта сессия активна, в течение которого времени ни одна другая сессия не может подтвердить транзакцию. Подготовленная транзакция отключается только в случае отключения сессии или перезапуска сервера.

    pseudo_replica_mode оказывает следующее влияние на отметку времени задержки репликации original_commit_timestamp и системную переменную original_server_version:

    • Если true, транзакции, которые не устанавливают явно original_commit_timestamp или original_server_version, предполагается, что они происходят на другом, неизвестном сервере, поэтому значение 0, означающее неизвестно, присваивается как отметке времени, так и системной переменной.

    • Если false, транзакции, которые не устанавливают явно original_commit_timestamp или original_server_version, предполагается, что они происходят на текущем сервере, поэтому текущая отметка времени и версия текущего сервера присваиваются отметке времени и системной переменной.

    pseudo_replica_mode оказывает следующее влияние на обработку оператора, который устанавливает один или несколько неподдерживаемых (удалённых или неизвестных) режимов SQL:

    • Если true, сервер игнорирует неподдерживаемый режим и выдает предупреждение.

    • Если false, сервер отклоняет оператор с .

  • pseudo_slave_mode

    Устарело Да
    Системная переменная pseudo_slave_mode
    Область видимости Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево

    Устаревший псевдоним для pseudo_replica_mode.

  • pseudo_thread_id

    Системная переменная pseudo_thread_id
    Область видимости Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 2147483647
    Минимальное значение 0
    Максимальное значение 2147483647

    Эта переменная предназначена для внутреннего использования сервером.

    Предупреждение

    Изменение значения сессии системной переменной pseudo_thread_id изменяет значение, возвращаемое функцией CONNECTION_ID().

    Установка значения сессии этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. Раздел 7.1.9.1, «Права на системные переменные».

  • query_alloc_block_size

    Формат командной строки --query-alloc-block-size=#
    Системная переменная query_alloc_block_size
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 8192
    Минимальное значение 1024
    Максимальное значение 4294966272
    Единица измерения байты
    Размер блока 1024

    Размер выделения в байтах блоков памяти, которые выделяются для объектов, создаваемых во время анализа и выполнения оператора. Если у вас возникли проблемы с фрагментацией памяти, может помочь увеличение этого параметра.

    Размер блока для байтового числа равен 1024. Значение, которое не является точным кратным размеру блока, округляется вниз до ближайшего меньшего кратного размера блока сервером MySQL перед сохранением значения для системной переменной. Парсер допускает значения вплоть до максимального значения беззнакового целого числа для платформы (4294967295 или 232−1 для 32-битной системы, 18446744073709551615 или 264−1 для 64-битной системы), но фактический максимум на размер блока меньше.

  • query_prealloc_size

    Формат командной строки --query-prealloc-size=#
    Устарело Да
    Системная переменная query_prealloc_size
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 8192
    Минимальное значение 8192
    Максимальное значение (64-битные платформы) 18446744073709550592
    Максимальное значение (32-битные платформы) 4294966272
    Единица измерения байты
    Размер блока 1024

    query_prealloc_size устарела, и ее установка не оказывает никакого эффекта; следует ожидать ее удаления в будущей версии MySQL.

  • rand_seed1

    Системная переменная rand_seed1
    Область видимости Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию N/A
    Минимальное значение 0
    Максимальное значение 4294967295

    Переменные rand_seed1 и rand_seed2 существуют только как переменные сессии и могут быть установлены, но не прочитаны. Переменные (но не их значения) отображаются в выводе SHOW VARIABLES.

    Цель этих переменных — поддержка репликации функции RAND(). Для операторов, которые вызывают RAND(), источник передает два значения реплике, где они используются для инициализации генератора случайных чисел. Реплика использует эти значения для установки переменных сессии rand_seed1 и rand_seed2 так, чтобы RAND() на реплике генерировала то же значение, что и на источнике.

  • rand_seed2

    См. описание для rand_seed1.

  • range_alloc_block_size

    Формат командной строки --range-alloc-block-size=#
    Системная переменная range_alloc_block_size
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 4096
    Минимальное значение 4096
    Максимальное значение (64-битные платформы) 18446744073709550592
    Максимальное значение 4294966272
    Единица измерения байты
    Размер блока 1024

    Размер в байтах блоков, которые выделяются при выполнении оптимизации диапазона.

    Размер блока для байтового числа равен 1024. Значение, которое не является точным кратным размеру блока, округляется вниз до ближайшего меньшего кратного размера блока сервером MySQL перед сохранением значения для системной переменной. Парсер допускает значения вплоть до максимального значения беззнакового целого числа для платформы (4294967295 или 232−1 для 32-битной системы, 18446744073709551615 или 264−1 для 64-битной системы), но фактический максимум на размер блока меньше.

  • range_optimizer_max_mem_size

    Формат командной строки --range-optimizer-max-mem-size=#
    Системная переменная range_optimizer_max_mem_size
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 8388608
    Минимальное значение 0
    Максимальное значение 18446744073709551615
    Единица измерения байты

    Предел потребления памяти для оптимизатора диапазона. Значение 0 означает “без ограничения.” Если план выполнения, рассматриваемый оптимизатором, использует метод доступа к диапазону, но оптимизатор оценивает, что объем памяти, необходимый для этого метода, превысит лимит, он отказывается от плана и рассматривает другие планы. Для получения дополнительной информации см. Ограничение использования памяти для оптимизации диапазона.

  • rbr_exec_mode

    Переменная системы rbr_exec_mode
    Область действия Сеанс
    Динамическая Да
    SET_VAR Применение подсказки Нет
    Тип Перечисление
    Значение по умолчанию STRICT
    Допустимые значения

    STRICT

    IDEMPOTENT

    Для внутреннего использования mysqlbinlog. Эта переменная переключает сервер между режимом IDEMPOTENT и режимом STRICT. Режим IDEMPOTENT подавляет ошибки дублирования ключей и отсутствия ключей в операциях BINLOG, сгенерированных mysqlbinlog. Этот режим полезен при воспроизведении двоичного журнала основанного на строках на сервере, который приводит к конфликтам с существующими данными. mysqlbinlog устанавливает этот режим при указании параметра --idempotent записью следующего в выходные данные:

    SET SESSION RBR_EXEC_MODE=IDEMPOTENT;
  • read_buffer_size

    Формат командной строки --read-buffer-size=#
    Переменная системы read_buffer_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применение подсказки Да
    Тип Целое
    Значение по умолчанию 131072
    Минимальное значение 8192
    Максимальное значение 2147479552
    Единица измерения байты
    Размер блока 4096

    Каждый поток, выполняющий последовательный поиск по таблице MyISAM, выделяет буфер этого размера (в байтах) для каждой сканируемой таблицы. Если вы выполняете много последовательных сканирований, возможно, вам захочется увеличить это значение, которое по умолчанию равно 131072. Значение этой переменной должно быть кратно 4КБ. Если оно установлено не кратно 4КБ, его значение округляется вниз до ближайшего кратного 4КБ.

    Этот параметр также используется в следующих контекстах для всех других типов хранилищ данных за исключением InnoDB:

    • Для кэширования индексов в временном файле (не временной таблице) при сортировке строк для ORDER BY.

    • Для массовой вставки в разделы.

    • Для кэширования результатов вложенных запросов.

    read_buffer_size также используется в одном другом специфическом для хранилища способе: для определения размера блока памяти для таблиц MEMORY.

    select_into_buffer_size используется для буфера кэша ввода/вывода для операторов SELECT INTO DUMPFILE и SELECT INTO OUTFILE. (read_buffer_size используется для размера буфера кэша ввода/вывода во всех остальных случаях.)

    Более подробная информация о использовании памяти во время различных операций представлена в Разделе 10.12.3.1, «Как MySQL использует память».

  • read_only

    Формат командной строки --read-only[={OFF|ON}]
    Системная переменная read_only
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Если системная переменная read_only включена, сервер разрешает обновления от клиента только от пользователей, имеющих привилегию CONNECTION_ADMIN (или устаревшую привилегию SUPER). Эта переменная по умолчанию выключена.

    Сервер также поддерживает системную переменную super_read_only (по умолчанию выключена), которая имеет следующие эффекты:

    • Если super_read_only включена, сервер запрещает обновления от клиентов, даже от пользователей, имеющих привилегию CONNECTION_ADMIN или SUPER.

    • Установка super_read_only в ON неявно устанавливает read_only в ON.

    • Установка read_only в OFF неявно устанавливает super_read_only в OFF.

    Когда read_only включена и super_read_only включена, сервер по-прежнему разрешает эти операции:

    • Обновления, выполняемые потоками репликации, если сервер является репликой. В настройках репликации полезно включить read_only на серверах-репликах, чтобы гарантировать, что реплики принимают обновления только от исходного сервера, а не от клиентов.

    • Записи в системную таблицу mysql.gtid_executed, которая хранит GTID для выполненных транзакций, отсутствующих в текущем файле двоичного журнала.

    • Использование команд ANALYZE TABLE или OPTIMIZE TABLE. Целью режима только для чтения является предотвращение изменений структуры или содержимого таблицы. Анализ и оптимизация не являются такими изменениями. Это означает, например, что проверки согласованности на репликах только для чтения можно выполнить с помощью mysqlcheck --all-databases --analyze.

    • Использование команд FLUSH STATUS, которые всегда записываются в двоичный журнал.

    • Операции с таблицами TEMPORARY.

    • Вставки в таблицы журнала (mysql.general_log и mysql.slow_log); см. Раздел 7.4.1, «Выбор конечных точек вывода обобщенного журнала запросов и журнала медленных запросов».

    • Обновления таблиц Performance Schema, такие как операции UPDATE или TRUNCATE TABLE.

    Изменения read_only на сервере-источнике репликации не реплицируются на серверы-реплики. Значение может быть установлено на реплике независимо от значения на источнике.

    При попытке включить read_only (включая неявные попытки, связанные с включением super_read_only), применяются следующие условия:

    • Попытка завершается ошибкой, если у вас есть какие-либо явные блокировки (полученные с помощью LOCK TABLES) или необработанная транзакция.

    • Попытка блокируется, пока другие клиенты имеют какой-либо текущий запрос, активную LOCK TABLES WRITE или текущую фиксацию, до тех пор, пока не будут освобождены блокировки и не завершатся запросы и транзакции. Пока попытка включения read_only ожидается, запросы от других клиентов на блокировку таблиц или начало транзакций также блокируются до тех пор, пока read_only не будет установлено.

    • Попытка блокируется, если активны транзакции, удерживающие метаданные блокировки, до тех пор, пока эти транзакции не завершатся.

    • read_only может быть включено, пока удерживается глобальная блокировка чтения (полученная с помощью FLUSH TABLES WITH READ LOCK), так как это не связано с блокировками таблиц.

  • read_rnd_buffer_size

    Формат командной строки --read-rnd-buffer-size=#
    Системная переменная read_rnd_buffer_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 262144
    Минимальное значение 1
    Максимальное значение 2147483647
    Единица измерения байты

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

    При чтении строк из таблицы MyISAM в отсортированном порядке после сортировки по ключу, строки считываются через этот буфер, чтобы избежать обращений к диску. См. Раздел 10.2.1.16, «Оптимизация ORDER BY». Установка переменной в большое значение может значительно улучшить производительность ORDER BY. Однако это буфер, выделенный для каждого клиента, поэтому вы не должны устанавливать глобальную переменную в большое значение. Вместо этого измените переменную сеанса только в тех клиентах, которым необходимо выполнять большие запросы.

    Дополнительную информацию об использовании памяти во время различных операций см. в Разделе 10.12.3.1, «Как MySQL использует память». Дополнительную информацию об оптимизации многодиапазонного чтения см. в Разделе 10.2.1.11, «Оптимизация многодиапазонного чтения».

  • regexp_stack_limit

    Формат командной строки --regexp-stack-limit=#
    Системная переменная regexp_stack_limit
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 8000000
    Минимальное значение 0
    Максимальное значение 2147483647
    Единица измерения байты

    Максимальный объем доступной памяти в байтах для внутреннего стека, используемого для операций сопоставления регулярных выражений, выполняемых функцией REGEXP_LIKE() и аналогичными функциями (см. Раздел 14.8.2, «Регулярные выражения»).

  • regexp_time_limit

    Формат командной строки --regexp-time-limit=#
    Системная переменная regexp_time_limit
    Область действия Глобальная
    Динамическая Да
    Применяется подсказка SET_VAR Нет
    Тип Целое число
    Значение по умолчанию 32
    Минимальное значение 0
    Максимальное значение 2147483647

    Предельное время для операций сопоставления с регулярными выражениями, выполняемых функцией REGEXP_LIKE() и подобными функциями (см. Раздел 14.8.2, «Регулярные выражения»). Этот предел выражается как максимальное допустимое количество шагов, выполняемых движком поиска соответствия, и, следовательно, влияет на время выполнения только косвенно. Обычно это порядка миллисекунд.

  • require_row_format

    Системная переменная require_row_format
    Область действия Сеанс
    Динамическая Да
    Применяется подсказка SET_VAR Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная предназначена для внутреннего использования сервером в репликации и mysqlbinlog. Она ограничивает события DML, выполняемые в сеансе, только событиями, закодированными в формате двоичного журналирования на основе строк, и создание временных таблиц недоступно. Запросы, не соблюдающие ограничения, завершаются с ошибкой.

    Установка значения этой системной переменной в сеансе на ON не требует привилегий. Установка значения этой системной переменной в сеансе на OFF — это ограниченная операция, и пользователь сеанса должен обладать привилегиями, достаточными для установки ограниченных переменных сеанса. См. Раздел 7.1.9.1, «Привилегии на системные переменные».

  • require_secure_transport

    Формат командной строки --require-secure-transport[={OFF|ON}]
    Системная переменная require_secure_transport
    Область действия Глобальная
    Динамическая Да
    Применяется подсказка SET_VAR Нет
    Тип Булево
    Значение по умолчанию OFF

    Требуется ли для подключений клиентов к серверу использование какой-либо формы безопасного транспорта. Когда эта переменная включена, сервер допускает только подключения TCP/IP, зашифрованные с помощью TLS/SSL, или подключения, использующие файл сокета (в Unix) или общую память (в Windows). Сервер отклоняет попытки не защищённых соединений, которые завершаются с ошибкой.

    Эта возможность дополняет требования к SSL для каждой учётной записи, которые имеют приоритет. Например, если для учётной записи определены REQUIRE SSL, включение require_secure_transport не позволит использовать учётную запись для подключения с помощью файла сокета Unix.

    Возможно, что у сервера нет доступных безопасных транспортных средств. Например, сервер на Windows не поддерживает безопасные транспортные средства, если он запущен без указания файлов сертификата SSL или ключа и с отключенной системной переменной shared_memory. В этих условиях попытки включения require_secure_transport при запуске сервера приведут к записи сообщения в журнал ошибок и завершению работы сервера. Попытки включения переменной во время выполнения завершаются с ошибкой.

    См. также Настройка шифрованных соединений как обязательных.

  • restrict_fk_on_non_standard_key

    Формат командной строки --restrict-fk-on-non-standard-key
    Устаревшая Да
    Системная переменная restrict_fk_on_non_standard_key
    Область действия Глобальная, Сеанс
    Динамическая Да
    Применяется подсказка SET_VAR Нет
    Тип Булево
    Значение по умолчанию ON

    Эта переменная, когда ON (значение по умолчанию), предотвращает использование не уникальных ключей или частичных ключей в качестве внешних ключей. Чтобы разрешить использование таких ключей в качестве внешних ключей в текущем сеансе, используйте SET @@session.restrict_fk_on_non_standard_key=OFF; чтобы разрешить их глобальное использование, установите глобальную переменную или запустите сервер с --skip-restrict-fk-on-non-standard-key.

    Использование не уникальных или частичных ключей в качестве внешних ключей в операторе CREATE TABLE или ALTER TABLE устарело, и вы можете ожидать, что поддержка этого будет удалена в будущей версии MySQL. Когда restrict_fk_on_non_standard_key является ON, попытки сделать это отклоняются с ; когда это OFF, такое использование разрешается, но всё равно генерирует предупреждение.

    restrict_fk_on_non_standard_key устарела и может быть удалена в будущей версии MySQL. Установка её вызывает предупреждение об устаревании.

    Последствия для репликации MySQL. Когда внешний ключ создаётся на нестандартном ключе на главном сервере, потому что restrict_fk_on_non_standard_key является OFF, оператор выполняется на реплике независимо от любого значения этой переменной на реплике.

  • resultset_metadata

    Системная переменная resultset_metadata
    Область действия Сеанс
    Динамическая Да
    Применяется подсказка SET_VAR Нет
    Тип Перечисление
    Значение по умолчанию FULL
    Допустимые значения

    FULL

    NONE

    Для подключений, для которых передача метаданных необязательна, клиент устанавливает системную переменную resultset_metadata, чтобы управлять тем, возвращает ли сервер метаданные набора результатов. Разрешённые значения — FULL (возвратить все метаданные; это значение по умолчанию) и NONE (не возвращать метаданные).

    Для подключений, которые не являются необязательными с точки зрения метаданных, установка resultset_metadata на NONE приводит к ошибке.

    Подробности по управлению передачей метаданных набора результатов см. в .

  • secondary_engine_cost_threshold

    Системная переменная secondary_engine_cost_threshold
    Область действия Сеанс
    Динамическая Да
    Применяется подсказка SET_VAR Да
    Тип Числовой
    Значение по умолчанию 100000.000000
    Минимальное значение 0
    Максимальное значение DBL_MAX (maximum double value)

    Пороговое значение стоимости оптимизатора для перенаправления запроса на вторичный движок.

    Для использования с HeatWave. См. Руководство пользователя HeatWave.

  • schema_definition_cache

    Формат командной строки --schema-definition-cache=#
    Переменная системы schema_definition_cache
    Область действия Глобальная
    Динамическая Да
    Применяется подсказка SET_VAR Нет
    Тип Целое число
    Значение по умолчанию 256
    Минимальное значение 256
    Максимальное значение 524288

    Определяет ограничение для количества объектов определения схемы, как используемых, так и неиспользуемых, которые могут храниться в кэше объекта словаря.

    Неиспользуемые объекты определения схемы хранятся в кэше объекта словаря только тогда, когда количество используемых объектов меньше емкости, определенной schema_definition_cache.

    Значение 0 означает, что объекты определения схемы хранятся в кэше объекта словаря только в момент их использования.

    Для получения дополнительной информации см. Раздел 16.4, «Кэш объекта словаря».

  • secure_file_priv

    Формат командной строки --secure-file-priv=dir_name
    Переменная системы secure_file_priv
    Область действия Глобальная
    Динамическая Нет
    Применяется подсказка SET_VAR Нет
    Тип Строка
    Значение по умолчанию platform specific
    Допустимые значения

    empty string

    dirname

    NULL

    Эта переменная используется для ограничения влияния операций импорта и экспорта данных, таких как те, которые выполняются операторами LOAD DATA и SELECT ... INTO OUTFILE, а также функцией LOAD_FILE(). Эти операции разрешены только пользователям, имеющим привилегию FILE.

    Переменную secure_file_priv можно установить следующим образом:

    • Если пусто, переменная не имеет эффекта. Это небезопасное значение.

    • Если установлено имя каталога, сервер ограничивает операции импорта и экспорта работой только с файлами в этом каталоге. Каталог должен существовать; сервер не создаёт его.

    • Если установлено значение NULL, сервер отключает операции импорта и экспорта.

    Значение по умолчанию зависит от платформы и зависит от значения параметра INSTALL_LAYOUT опции CMake, как показано в следующей таблице. Чтобы явно указать значение по умолчанию для secure_file_priv, если вы собираете из исходного кода, используйте опцию INSTALL_SECURE_FILE_PRIVDIR опции CMake.

    Значение INSTALL_LAYOUT Значение по умолчанию secure_file_priv
    STANDALONE пустое
    DEB, RPM, SVR4 /var/lib/mysql-files
    В противном случае mysql-files в значении CMAKE_INSTALL_PREFIX

    Сервер проверяет значение secure_file_priv при запуске и записывает предупреждение в журнал ошибок, если значение небезопасно. Значение, отличное от NULL, считается небезопасным, если оно пустое, или это каталог данных или подкаталог к нему, или каталог, доступный всем пользователям. Если secure_file_priv установлено на несуществующий путь, сервер записывает сообщение об ошибке в журнал ошибок и завершает работу.

  • select_into_buffer_size

    Формат командной строки --select-into-buffer-size=#
    Переменная системы select_into_buffer_size
    Область действия Глобальная, сеанс
    Динамическая Да
    Применяется подсказка SET_VAR Да
    Тип Целое число
    Значение по умолчанию 131072
    Минимальное значение 8192
    Максимальное значение 2147479552
    Единица измерения байты
    Размер блока 4096

    При использовании SELECT INTO OUTFILE или SELECT INTO DUMPFILE для вывода данных в один или несколько файлов для создания резервных копий, миграции данных или других целей, запись часто может буферизироваться, а затем вызвать большой всплеск активности ввода-вывода записи на диск или другое хранилище, останавливая другие запросы, которые более чувствительны к задержкам. Вы можете использовать эту переменную для управления размером буфера, используемого для записи данных в хранилище, чтобы определить, когда следует выполнять синхронизацию буфера, и тем самым предотвратить остановки записи, описанные выше.

    select_into_buffer_size переопределяет любое значение, установленное для read_buffer_size. (select_into_buffer_size и read_buffer_size имеют одинаковые значения по умолчанию, максимальное и минимальное.) Также можно использовать select_into_disk_sync_delay, чтобы установить таймаут, который будет соблюдаться после каждой синхронизации.

    Установка сеансового значения этой переменной системы является ограниченной операцией. Пользователь сеанса должен иметь достаточные привилегии для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии на переменные системы».

  • select_into_disk_sync

    Формат командной строки --select-into-disk-sync={ON|OFF}
    Переменная системы select_into_disk_sync
    Область действия Глобальная, сеанс
    Динамическая Да
    Применяется подсказка SET_VAR Да
    Тип Булево
    Значение по умолчанию OFF
    Допустимые значения

    OFF

    ON

    При установке в значение ON, включает синхронизацию буфера записей в выходной файл в ходе выполнения длительного оператора SELECT INTO OUTFILE или SELECT INTO DUMPFILE, использующего select_into_buffer_size.

  • select_into_disk_sync_delay

    Формат командной строки --select-into-disk-sync-delay=#
    Переменная системы select_into_disk_sync_delay
    Область действия Глобальная, Сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения миллисекунды

    При включенном буферизованном синхронизации записей в выходной файл длительно работающим оператором SELECT INTO OUTFILE или оператором SELECT INTO DUMPFILE, эта переменная устанавливает необязательную задержку (в миллисекундах) после синхронизации. 0 (значение по умолчанию) означает отсутствие задержки.

    Установка сеансового значения этой системной переменной является ограниченной операцией. Пользователь сеанса должен обладать достаточными привилегиями для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии на системные переменные».

  • session_track_gtids

    Формат командной строки --session-track-gtids=value
    Переменная системы session_track_gtids
    Область действия Глобальная, Сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Перечисление
    Значение по умолчанию OFF
    Допустимые значения

    OFF

    OWN_GTID

    ALL_GTIDS

    Управляет тем, возвращает ли сервер GTID клиенту, позволяя клиенту отслеживать состояние сервера. В зависимости от значения переменной, в конце выполнения каждой транзакции, GTID сервера захватываются и возвращаются клиенту в рамках подтверждения. Возможные значения для session_track_gtids таковы:

    • OFF: Сервер не возвращает GTID клиенту. Это значение по умолчанию.

    • OWN_GTID: Сервер возвращает GTID для всех транзакций, успешно подтвержденных этим клиентом в текущем сеансе с момента последнего подтверждения. Как правило, это единственный GTID для последней подтвержденной транзакции, но если один запрос клиента привел к нескольким транзакциям, сервер возвращает набор GTID, содержащий все соответствующие GTID.

    • ALL_GTIDS: Сервер возвращает глобальное значение своей системной переменной gtid_executed, которое считывается в момент после успешного подтверждения транзакции. Помимо GTID только что подтвержденной транзакции, этот набор GTID включает все транзакции, подтвержденные на сервере любым клиентом, и может включать транзакции, подтвержденные после момента, когда транзакция, в настоящее время подтверждаемая, была подтверждена.

    session_track_gtids не может быть установлено в контексте транзакции.

    Дополнительную информацию об отслеживании состояния сеанса см. в Разделе 7.1.18, «Отслеживание сервером состояния сеанса клиента».

  • session_track_schema

    Формат командной строки --session-track-schema[={OFF|ON}]
    Переменная системы session_track_schema
    Область действия Глобальная, Сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Управляет тем, отслеживает ли сервер, когда в текущем сеансе установлена схема по умолчанию (база данных), и уведомляет ли клиент о доступности имени схемы.

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

    Дополнительную информацию об отслеживании состояния сеанса см. в Разделе 7.1.18, «Отслеживание сервером состояния сеанса клиента».

  • session_track_state_change

    Формат командной строки --session-track-state-change[={OFF|ON}]
    Переменная системы session_track_state_change
    Область действия Глобальная, Сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Управляет тем, отслеживает ли сервер изменения состояния текущего сеанса и уведомляет ли клиент, когда происходят изменения состояния. Изменения могут быть сообщены для следующих атрибутов состояния сеанса клиента:

    • Схема по умолчанию (база данных).

    • Значения, специфичные для сеанса, для системных переменных.

    • Переменные, определенные пользователем.

    • Временные таблицы.

    • Предзаготовленные запросы.

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

    Переменная session_track_state_change управляет только уведомлениями о том, когда происходят изменения, а не о самих изменениях. Например, уведомления об изменениях состояния происходят, когда устанавливается схема по умолчанию или присваиваются отслеживаемые сеансовые системные переменные, но уведомление не включает имя схемы или значения переменных. Чтобы получать уведомления об имени схемы или значениях сеансовых системных переменных, используйте соответственно переменную session_track_schema или session_track_system_variables.

    Примечание

    Присваивание значения переменной session_track_state_change само по себе не считается изменением состояния и не сообщается как таковое. Однако, если его имя указано в значении переменной session_track_system_variables, любые присваивания ему приводят к уведомлению о новом значении.

    Дополнительную информацию об отслеживании состояния сеанса см. в Разделе 7.1.18, «Отслеживание сервером состояния сеанса клиента».

  • session_track_system_variables

    Формат командной строки --session-track-system-variables=#
    Системная переменная session_track_system_variables
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию time_zone, autocommit, character_set_client, character_set_results, character_set_connection

    Управляет тем, отслеживает ли сервер назначения системных переменных сеанса и уведомляет ли клиент о имени и значении каждой назначенной переменной. Значение переменной представляет собой список переменных, разделенных запятыми, для которых отслеживаются назначения. По умолчанию уведомление включено для time_zone, autocommit, character_set_client, character_set_results и character_set_connection. (Последние три переменные — те, на которые влияет SET NAMES.)

    Чтобы включить отображение идентификатора оператора для каждого обработанного оператора, используйте переменную statement_id. Например:

    mysql>  SET @@SESSION.session_track_system_variables='statement_id'
    mysql>  SELECT 1;
    +---+
    | 1 |
    +---+
    | 1 |
    +---+
    1 row in set (0.0006 sec)
    Statement ID: 603835
            

    Специальное значение * (звездочка) заставляет сервер отслеживать назначения всех переменных сеанса. Если задано, это значение должно быть указано самостоятельно без указания имен конкретных системных переменных. Это значение также включает отображение идентификатора оператора для каждого успешно обработанного оператора.

    Чтобы отключить уведомления о назначениях переменных сеанса, установите session_track_system_variables в пустую строку.

    Если отслеживание системных переменных сеанса включено, уведомление происходит для всех назначений отслеживаемых переменных сеанса, даже если новые значения такие же, как и старые.

    Дополнительную информацию об отслеживании состояния сеанса см. в разделе 7.1.18, «Отслеживание состояния сеанса клиента сервером».

  • session_track_transaction_info

    Формат командной строки --session-track-transaction-info=value
    Системная переменная session_track_transaction_info
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Перечисление
    Значение по умолчанию OFF
    Допустимые значения

    OFF

    STATE

    CHARACTERISTICS

    Управляет тем, отслеживает ли сервер состояние и характеристики транзакций в текущем сеансе и уведомляет ли клиент, чтобы сделать эту информацию доступной. Разрешены следующие значения session_track_transaction_info:

    • OFF: Отключение отслеживания состояния транзакции. Это значение по умолчанию.

    • STATE: Включение отслеживания состояния транзакции без отслеживания характеристик. Отслеживание состояния позволяет клиенту определять, находится ли транзакция в процессе и может ли она быть перемещена в другой сеанс без отката.

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

      ISOLATION LEVEL
      READ ONLY
      READ WRITE
      WITH CONSISTENT SNAPSHOT
      

    Чтобы клиент мог безопасно переместить транзакцию в другой сеанс, он должен отслеживать не только состояние транзакции, но и её характеристики. Кроме того, клиент должен отслеживать системные переменные transaction_isolation и transaction_read_only, чтобы правильно определить значения по умолчанию для сеанса. (Чтобы отслеживать эти переменные, перечислите их в значении системной переменной session_track_system_variables.)

    Дополнительную информацию об отслеживании состояния сеанса см. в разделе 7.1.18, «Отслеживание состояния сеанса клиента сервером».

  • set_operations_buffer_size

    Формат командной строки --set-operations-buffer-size=#
    Системная переменная set_operations_buffer_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 256K
    Минимальное значение 16K
    Максимальное значение 1 GB

    Устанавливает размер буфера для операций INTERSECT и EXCEPT, использующих хэш-таблицы, когда переключатель оптимизатора hash_set_operations установлен в значение ON. В целом, увеличение размера этого буфера улучшает производительность этих операций, когда включена оптимизация хеширования.

  • sha256_password_auto_generate_rsa_keys

    Формат командной строки --sha256-password-auto-generate-rsa-keys[={OFF|ON}]
    Устаревший Да
    Системная переменная sha256_password_auto_generate_rsa_keys
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Сервер использует эту переменную, чтобы определить, следует ли автоматически генерировать файлы с парами открытых/закрытых ключей RSA в каталоге данных, если они ещё не существуют.

    При запуске сервер автоматически генерирует файлы с парами открытых/закрытых ключей RSA в каталоге данных, если все эти условия верны: переменная sha256_password_auto_generate_rsa_keys или caching_sha2_password_auto_generate_rsa_keys включена; никакие параметры RSA не указаны; файлы RSA отсутствуют в каталоге данных. Эти пары ключей позволяют безопасно обмениваться паролями с использованием RSA по незащищенным соединениям для учётных записей, авторизованных плагином sha256_password (устаревший) или caching_sha2_password; см. раздел 8.4.1.2, «Плагин аутентификации SHA-256» и раздел 8.4.1.1, «Плагин аутентификации кэширования SHA-2».

    Дополнительную информацию об автоматическом создании файлов RSA, включая имена файлов и характеристики, см. в разделе 8.3.3.1, «Создание сертификатов SSL и ключей RSA с использованием MySQL»

    Системная переменная auto_generate_certs связана, но управляет автоматическим созданием файлов сертификатов и ключей SSL, необходимых для безопасных подключений с использованием SSL.

  • sha256_password_private_key_path

    Формат командной строки --sha256-password-private-key-path=file_name
    Устаревшее свойство Да
    Переменная системы sha256_password_private_key_path
    Область действия Глобальная
    Динамическая Нет
    Применимо для подсказки SET_VAR Нет
    Тип Имя файла
    Значение по умолчанию private_key.pem

    Значение этой переменной — имя пути к файлу закрытого ключа RSA для плагина аутентификации sha256_password (устаревший). Если путь относительный, он интерпретируется относительно каталога данных сервера. Файл должен быть в формате PEM.

    Важно

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

    Сведения о sha256_password см. в разделе 8.4.1.2 «SHA-256 Плагин аутентификации».

  • sha256_password_proxy_users

    Формат командной строки --sha256-password-proxy-users[={OFF|ON}]
    Устаревшее свойство Да
    Переменная системы sha256_password_proxy_users
    Область действия Глобальная
    Динамическая Да
    Применимо для подсказки SET_VAR Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная управляет тем, поддерживает ли плагин аутентификации sha256_password (устаревший) прокси-пользователей. Она не действует, если не включена переменная системы check_proxy_users. Сведения о прокси-пользователях см. в разделе 8.2.19 «Прокси-пользователи».

  • sha256_password_public_key_path

    Формат командной строки --sha256-password-public-key-path=file_name
    Устаревшее свойство Да
    Переменная системы sha256_password_public_key_path
    Область действия Глобальная
    Динамическая Нет
    Применимо для подсказки SET_VAR Нет
    Тип Имя файла
    Значение по умолчанию public_key.pem

    Значение этой переменной — имя пути к файлу открытого ключа RSA для плагина аутентификации sha256_password (устаревший). Если путь относительный, он интерпретируется относительно каталога данных сервера. Файл должен быть в формате PEM. Поскольку этот файл хранит открытый ключ, его копии могут быть свободно распространены среди пользователей клиентов. (Клиенты, которые явно указывают открытый ключ при подключении к серверу с использованием RSA-шифрования пароля, должны использовать тот же открытый ключ, что и сервер.)

    Сведения об sha256_password (устаревший), включая информацию о том, как клиенты указывают открытый ключ RSA, см. в разделе 8.4.1.2 «SHA-256 Плагин аутентификации».

  • shared_memory

    Формат командной строки --shared-memory[={OFF|ON}]
    Переменная системы shared_memory
    Область действия Глобальная
    Динамическая Нет
    Применимо для подсказки SET_VAR Нет
    Специфично для платформы Windows
    Тип Булево
    Значение по умолчанию OFF

    (Только Windows.) Разрешает ли сервер подключения через общую память.

  • shared_memory_base_name

    Формат командной строки --shared-memory-base-name=name
    Переменная системы shared_memory_base_name
    Область действия Глобальная
    Динамическая Нет
    Применимо для подсказки SET_VAR Нет
    Специфично для платформы Windows
    Тип Строка
    Значение по умолчанию MYSQL

    (Только Windows.) Имя общей памяти для подключений через общую память. Полезно при работе с несколькими экземплярами MySQL на одном физическом компьютере. Имя по умолчанию — MYSQL. Имя чувствительно к регистру.

    Эта переменная применяется только в том случае, если сервер запущен с включённой переменной системы shared_memory для поддержки подключений через общую память.

  • show_create_table_skip_secondary_engine

    Формат командной строки --show-create-table-skip-secondary-engine[={OFF|ON}]
    Переменная системы show_create_table_skip_secondary_engine
    Область действия Сеанс
    Динамическая Да
    Применимо для подсказки SET_VAR Да
    Тип Булево
    Значение по умолчанию OFF

    Включение show_create_table_skip_secondary_engine приводит к исключению фрагмента SECONDARY ENGINE из вывода SHOW CREATE TABLE и из команд CREATE TABLE, выгружаемых утилитой mysqldump.

    mysqldump предоставляет опцию --show-create-skip-secondary-engine. При её указании переменная системы show_create_table_skip_secondary_engine включается на период выполнения выгрузки.

    Для использования с HeatWave. См. Руководство пользователя HeatWave.

  • show_create_table_verbosity

    Формат командной строки --show-create-table-verbosity[={OFF|ON}]
    Переменная системы show_create_table_verbosity
    Область действия Глобальная, Сеанс
    Динамическая Да
    Применимо для подсказки SET_VAR Нет
    Тип Булево
    Значение по умолчанию OFF

    Команда SHOW CREATE TABLE обычно не отображает опцию таблицы ROW_FORMAT, если формат строки — стандартный. Включение этой переменной заставляет SHOW CREATE TABLE отображать ROW_FORMAT независимо от того, является ли формат стандартным.

  • show_gipk_in_create_table_and_information_schema

    Формат командной строки --show-gipk-in-create-table-and-information-schema[={OFF|ON}]
    Переменная системы show_gipk_in_create_table_and_information_schema
    Область действия Глобальная, Сеанс
    Динамическая Да
    Применяется подсказка SET_VAR Нет
    Тип Булево
    Значение по умолчанию ON

    Показывает ли сгенерированные невидимые первичные ключи в выходных данных SHOW и в таблицах Информационной схемы. Если эта переменная установлена в значение OFF, такие ключи не отображаются.

    Эта переменная не реплицируется.

    Дополнительную информацию см. в разделе 15.1.21.11 «Сгенерированные невидимые первичные ключи».

  • skip_external_locking

    Формат командной строки --skip-external-locking[={OFF|ON}]
    Переменная системы skip_external_locking
    Область действия Глобальная
    Динамическая Нет
    Применяется подсказка SET_VAR Нет
    Тип Булево
    Значение по умолчанию ON

    Это значение устанавливается в OFF, если mysqld использует внешнюю блокировку (системную блокировку), и в ON, если внешняя блокировка отключена. Это влияет только на доступ к таблицам MyISAM.

    Эта переменная устанавливается параметром --external-locking или --skip-external-locking. Внешняя блокировка отключена по умолчанию.

    Внешняя блокировка влияет только на доступ к таблицам MyISAM. Более подробную информацию, включая условия, при которых она может и не может быть использована, см. в разделе 10.11.5 «Внешняя блокировка».

  • skip_name_resolve

    Формат командной строки --skip-name-resolve[={OFF|ON}]
    Переменная системы skip_name_resolve
    Область действия Глобальная
    Динамическая Нет
    Применяется подсказка SET_VAR Нет
    Тип Булево
    Значение по умолчанию OFF

    Разрешать ли разрешать имена хостов при проверке подключений клиентов. Если эта переменная установлена в значение OFF, mysqld разрешает имена хостов при проверке подключений клиентов. Если она установлена в значение ON, mysqld использует только IP-адреса; в этом случае все значения столбца Host в таблицах разрешений должны быть IP-адресами. См. раздел 7.1.12.3 «Поиск по DNS и кэш хостов».

    В зависимости от конфигурации сети вашей системы и значений Host для ваших учетных записей, клиентам может потребоваться использовать явный параметр --host, например, --host=127.0.0.1 или --host=::1.

    Попытка подключения к хосту 127.0.0.1 обычно разрешается к учетной записи localhost. Однако это не удается, если сервер запущен с включенной опцией skip_name_resolve. Если вы планируете это сделать, убедитесь, что существует учетная запись, которая может принять подключение. Например, чтобы иметь возможность подключиться как root с помощью --host=127.0.0.1 или --host=::1, создайте эти учетные записи:

    CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password';
    CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';
    
  • skip_networking

    Формат командной строки --skip-networking[={OFF|ON}]
    Переменная системы skip_networking
    Область действия Глобальная
    Динамическая Нет
    Применяется подсказка SET_VAR Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная управляет тем, разрешает ли сервер подключения TCP/IP. По умолчанию она отключена (разрешает TCP-подключения). Если она включена, сервер разрешает только локальные (не TCP/IP) подключения, и все взаимодействие с mysqld должно осуществляться с помощью именованных каналов или общей памяти (в Windows) или файлов сокетов Unix (в Unix). Этот параметр крайне рекомендуется для систем, где разрешены только локальные клиенты. См. раздел 7.1.12.3 «Поиск по DNS и кэш хостов».

    Поскольку запуск сервера с параметром --skip-grant-tables отключает проверки аутентификации, сервер также отключает удаленные подключения в этом случае, включив skip_networking.

  • skip_show_database

    Формат командной строки --skip-show-database
    Переменная системы skip_show_database
    Область действия Глобальная
    Динамическая Нет
    Применяется подсказка SET_VAR Нет
    Тип Булево
    Значение по умолчанию OFF

    Это предотвращает использование оператора SHOW DATABASES пользователями, у которых нет привилегии SHOW DATABASES. Это может повысить безопасность, если вы беспокоитесь о возможности отображения пользователями баз данных, принадлежащих другим пользователям. Его действие зависит от привилегии SHOW DATABASES: если значение переменной равно ON, оператор SHOW DATABASES разрешен только пользователям, имеющим привилегию SHOW DATABASES, и оператор отображает все имена баз данных. Если значение равно OFF, оператор SHOW DATABASES разрешен всем пользователям, но отображает имена только тех баз данных, для которых у пользователя есть привилегия SHOW DATABASES или другие привилегии.

    Предупреждение

    Поскольку любая статическая глобальная привилегия считается привилегией для всех баз данных, любая статическая глобальная привилегия позволяет пользователю увидеть все имена баз данных с помощью SHOW DATABASES или путем проверки таблицы SCHEMATA для INFORMATION_SCHEMA, за исключением баз данных, которые были ограничены на уровне базы данных частичными отозваниями.

  • slow_launch_time

    Формат командной строки --slow-launch-time=#
    Системная переменная slow_launch_time
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 2
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения секунды

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

  • slow_query_log

    Формат командной строки --slow-query-log[={OFF|ON}]
    Системная переменная slow_query_log
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Логическое
    Значение по умолчанию OFF

    Включен ли лог медленных запросов. Значение может быть 0 (или OFF) для отключения лога или 1 (или ON) для включения лога. Место назначения для вывода лога контролируется системной переменной log_output; если это значение равно NONE, записи в лог не записываются, даже если лог включен.

    “Медленный” определяется значением переменной long_query_time. См. Раздел 7.4.5, «Журнал медленных запросов».

  • slow_query_log_file

    Формат командной строки --slow-query-log-file=file_name
    Системная переменная slow_query_log_file
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию host_name-slow.log

    Имя файла журнала медленных запросов. Значение по умолчанию — host_name-slow.log, но начальное значение может быть изменено с помощью параметра --slow_query_log_file.

  • socket

    Формат командной строки --socket={file_name|pipe_name}
    Системная переменная socket
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию (Windows) MySQL
    Значение по умолчанию (Другие) /tmp/mysql.sock

    На платформах Unix эта переменная — это имя файла сокета, используемого для локальных подключений клиентов. Значение по умолчанию — /tmp/mysql.sock. (Для некоторых форматов дистрибутива каталог может быть другим, например, /var/lib/mysql для RPM-пакетов.)

    В Windows эта переменная — это имя именованного канала, используемого для локальных подключений клиентов. Значение по умолчанию — MySQL (регистр не учитывается).

  • sort_buffer_size

    Формат командной строки --sort-buffer-size=#
    Системная переменная sort_buffer_size
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 262144
    Минимальное значение 32768
    Максимальное значение (Windows) 4294967295
    Максимальное значение (Другие, 64-битные платформы) 18446744073709551615
    Максимальное значение (Другие, 32-битные платформы) 4294967295
    Единица измерения байты

    Каждый сеанс, которому необходимо выполнить сортировку, выделяет буфер такого размера. sort_buffer_size не специфичен для какого-либо движка хранения и применяется в общем порядке для оптимизации. Как минимум, значение sort_buffer_size должно быть достаточно большим, чтобы вместить пятнадцать кортежей в буфер сортировки. Кроме того, увеличение значения max_sort_length может потребовать увеличения значения sort_buffer_size. Для получения дополнительной информации см. Раздел 10.2.1.16, «Оптимизация ORDER BY»

    Если вы видите много Sort_merge_passes в секунду в выводе SHOW GLOBAL STATUS, вы можете рассмотреть возможность увеличения значения sort_buffer_size для ускорения операций ORDER BY или GROUP BY, которые не могут быть улучшены с помощью оптимизации запросов или улучшенного индексирования.

    Оптимизатор пытается выяснить, сколько места необходимо, но может выделить больше, вплоть до предела. Установка значения большего, чем требуется глобально, замедляет большинство запросов, выполняющих сортировку. Лучше всего увеличить его как настройку сеанса и только для сеансов, которым требуется больший размер. В Linux существуют пороговые значения 256 КБ и 2 МБ, при которых большие значения могут значительно замедлить выделение памяти, поэтому следует рассмотреть возможность оставаться ниже одного из этих значений. Экспериментируйте, чтобы найти оптимальное значение для вашей рабочей нагрузки. См. Раздел B.3.3.5, «Где MySQL хранит временные файлы».

    Максимально допустимое значение для sort_buffer_size равно 4 ГБ−1. Более высокие значения разрешены для 64-битных платформ (за исключением 64-битной Windows, для которой большие значения усекаются до 4 ГБ−1 с предупреждением).

  • sql_auto_is_null

    Системная переменная sql_auto_is_null
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Логическое
    Значение по умолчанию OFF

    Если эта переменная включена, то после оператора, который успешно вставляет автоматически генерируемое значение AUTO_INCREMENT, вы можете найти это значение, выполнив оператор следующего вида:

    SELECT * FROM tbl_name WHERE auto_col IS NULL
    

    Если оператор возвращает строку, возвращаемое значение такое же, как если бы вы вызвали функцию LAST_INSERT_ID(). Для получения подробной информации, включая возвращаемое значение после вставки нескольких строк, см. Раздел 14.15, «Информационные функции». Если значение AUTO_INCREMENT не было успешно вставлено, оператор SELECT не возвращает ни одной строки.

    Поведение извлечения значения AUTO_INCREMENT с использованием сравнения IS NULL используется некоторыми ODBC-программами, такими как Access. См. Это поведение можно отключить, установив sql_auto_is_null в OFF.

    Значение по умолчанию для sql_auto_is_null равно OFF.

  • sql_big_selects

    Переменная системы sql_big_selects
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Булево
    Значение по умолчанию ON

    Если установлено значение OFF, MySQL прерывает операторы SELECT, которые, вероятно, потребуют очень много времени для выполнения (то есть, операторы, для которых оптимизатор оценивает, что количество просматриваемых строк превышает значение max_join_size). Это полезно, когда был выпущен нежелательный оператор WHERE. Значение по умолчанию для нового подключения равно ON, что позволяет выполнять все операторы SELECT.

    Если вы установите переменную системы max_join_size на значение, отличное от DEFAULT, sql_big_selects устанавливается в значение OFF.

  • sql_buffer_result

    Переменная системы sql_buffer_result
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Булево
    Значение по умолчанию OFF

    При включении sql_buffer_result результаты операторов SELECT принудительно помещаются во временные таблицы. Это помогает MySQL освободить блокировки таблицы раньше и может быть полезно в тех случаях, когда отправка результатов клиенту занимает много времени. Значение по умолчанию равно OFF.

  • sql_generate_invisible_primary_key

    Формат командной строки --sql-generate-invisible-primary-key[={OFF|ON}]
    Переменная системы sql_generate_invisible_primary_key
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Указывает, добавляет ли этот сервер сгенерированный невидимый первичный ключ к любой таблице InnoDB, созданной без него.

    Эта переменная не реплицируется. Кроме того, даже если она установлена на реплике, она игнорируется потоками репликации-прикладного; это означает, что по умолчанию реплика не генерирует первичный ключ для любой реплицированной таблицы, которая на источнике была создана без него. Вы можете заставить реплику генерировать невидимые первичные ключи для таких таблиц, установив REQUIRE_TABLE_PRIMARY_KEY_CHECK = GENERATE в рамках оператора CHANGE REPLICATION SOURCE TO, необязательно указав канал репликации.

    Более подробную информацию и примеры см. в разделе 15.1.21.11, “Сгенерированные невидимые первичные ключи”.

  • sql_log_off

    Переменная системы sql_log_off
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF
    Допустимые значения

    OFF (включить логирование)

    ON (отключить логирование)

    Эта переменная управляет отключением логирования в общий журнал запросов для текущей сессии (при условии, что сам общий журнал запросов включен). Значение по умолчанию равно OFF (то есть, включить логирование). Чтобы отключить или включить общий журнал запросов для текущей сессии, установите переменную сессии sql_log_off на значение ON или OFF.

    Установка значения сессии этой переменной системы является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. раздел 7.1.9.1, “Права на переменные системы”.

  • sql_mode

    Формат командной строки --sql-mode=name
    Переменная системы sql_mode
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Набор
    Значение по умолчанию ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION
    Допустимые значения

    ALLOW_INVALID_DATES

    ANSI_QUOTES

    ERROR_FOR_DIVISION_BY_ZERO

    HIGH_NOT_PRECEDENCE

    IGNORE_SPACE

    NO_AUTO_VALUE_ON_ZERO

    NO_BACKSLASH_ESCAPES

    NO_DIR_IN_CREATE

    NO_ENGINE_SUBSTITUTION

    NO_UNSIGNED_SUBTRACTION

    NO_ZERO_DATE

    NO_ZERO_IN_DATE

    ONLY_FULL_GROUP_BY

    PAD_CHAR_TO_FULL_LENGTH

    PIPES_AS_CONCAT

    REAL_AS_FLOAT

    STRICT_ALL_TABLES

    STRICT_TRANS_TABLES

    TIME_TRUNCATE_FRACTIONAL

    Текущий режим SQL сервера, который можно изменять динамически. Подробности см. в разделе 7.1.11, “Режимы SQL сервера”.

    Примечание

    Программы установки MySQL могут настроить режим SQL во время процесса установки.

    Если режим SQL отличается от значения по умолчанию или от ожидаемого значения, проверьте настройку в файле параметров, который сервер читает при запуске.

  • sql_notes

    Переменная системы sql_notes
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    При включении (по умолчанию), диагностические сообщения уровня Note увеличивают значение warning_count, и сервер записывает их. При отключении диагностические сообщения уровня Note не увеличивают значение warning_count, и сервер их не записывает. mysqldump включает вывод для отключения этой переменной, чтобы при перезагрузке файла дампов не появлялись предупреждения для событий, которые не влияют на целостность операции перезагрузки.

  • sql_quote_show_create

    Переменная сервера sql_quote_show_create
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию ON

    При включенном значении (по умолчанию), сервер экранирует идентификаторы для команд SHOW CREATE TABLE и SHOW CREATE DATABASE. При отключенном значении, экранирование отключено. Эта опция включена по умолчанию, чтобы репликация работала для идентификаторов, требующих экранирования. См. Раздел 15.7.7.12, «Запрос SHOW CREATE TABLE» и Раздел 15.7.7.7, «Запрос SHOW CREATE DATABASE».

  • sql_require_primary_key

    Формат командной строки --sql-require-primary-key[={OFF|ON}]
    Переменная сервера sql_require_primary_key
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Булево
    Значение по умолчанию OFF

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

    Установка сеансового значения этой переменной — ограниченная операция. Сеансовый пользователь должен иметь достаточные привилегии для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии на переменные системы».

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

    sql_require_primary_key относится как к базовым, так и к TEMPORARY таблицам, а изменения её значения реплицируются на реплики серверов. Таблица должна использовать СУБД MySQL, которые могут участвовать в репликации.

    При включении sql_require_primary_key имеет следующие эффекты:

    • Попытки создать новую таблицу без первичного ключа завершаются ошибкой. Это включает CREATE TABLE ... LIKE. Также включает CREATE TABLE ... SELECT, если часть CREATE TABLE не включает определения первичного ключа.

    • Попытки удалить первичный ключ из существующей таблицы завершаются ошибкой, за исключением случаев удаления первичного ключа и добавления первичного ключа в одной и той же ALTER TABLE команде.

      Удаление первичного ключа завершается ошибкой, даже если таблица также содержит индекс UNIQUE NOT NULL.

    • Попытки импорта таблицы без первичного ключа завершаются ошибкой.

    Опция REQUIRE_TABLE_PRIMARY_KEY_CHECK в команде CHANGE REPLICATION SOURCE TO позволяет реплике выбрать собственную политику проверки первичного ключа. При установке опции в значение ON для канала репликации, реплика всегда использует значение ON для переменной системы sql_require_primary_key в операциях репликации, требуя первичный ключ. Когда опция установлена в значение OFF, реплика всегда использует значение OFF для переменной системы sql_require_primary_key в операциях репликации, так что первичный ключ никогда не требуется, даже если источник его потребовал. Когда опция REQUIRE_TABLE_PRIMARY_KEY_CHECK установлена в значение STREAM (значение по умолчанию), реплика использует то значение, которое реплицируется от источника для каждого транзакции. При установке значения STREAM для опции REQUIRE_TABLE_PRIMARY_KEY_CHECK, если проверки привилегий используются для канала репликации, учетная запись PRIVILEGE_CHECKS_USER нуждается в привилегиях, достаточных для установки ограниченных сеансовых переменных, чтобы она могла установить сеансовое значение переменной системы sql_require_primary_key. При значениях ON или OFF учетная запись не нуждается в этих привилегиях. Для получения дополнительной информации см. Раздел 19.3.3, «Проверки привилегий репликации».

  • sql_safe_updates

    Переменная сервера sql_safe_updates
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Булево
    Значение по умолчанию OFF

    Если эта переменная включена, UPDATE и DELETE запросы, которые не используют ключ в предложении WHERE или предложении LIMIT, генерируют ошибку. Это позволяет перехватывать UPDATE и DELETE запросы, где ключи не используются должным образом, и которые, вероятно, изменят или удалят большое количество строк. Значение по умолчанию — OFF.

    Для клиента mysql, sql_safe_updates можно включить, используя опцию --safe-updates. Для получения дополнительной информации, см. Использование режима Safe-Updates (--safe-updates).

  • sql_select_limit

    Переменная сервера sql_select_limit
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 18446744073709551615
    Минимальное значение 0
    Максимальное значение 18446744073709551615

    Максимальное количество строк, возвращаемых запросами SELECT. Для получения дополнительной информации, см. Использование режима Safe-Updates (--safe-updates).

    Значение по умолчанию для нового подключения — максимальное количество строк, разрешенное сервером на таблицу. Типичные значения по умолчанию — (232)−1 или (264)−1. Если вы изменили лимит, значение по умолчанию можно восстановить, присвоив значение DEFAULT.

    Если запрос SELECT содержит предложение LIMIT, то предложение LIMIT имеет приоритет над значением переменной sql_select_limit.

  • sql_warnings

    Переменная сервера sql_warnings
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная контролирует, отображается ли строка с информацией о предупреждениях при выполнении запроса INSERT для одной строки. По умолчанию — OFF. Установите значение в ON, чтобы отобразить строку с информацией о предупреждениях.

  • ssl_ca

    Формат командной строки --ssl-ca=file_name
    Системная переменная ssl_ca
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Путь к файлу сертификата Центра сертификации (CA) в формате PEM. Файл содержит список доверенных центров сертификации SSL.

    Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено. См. Настройка и мониторинг серверной стороны для шифрованных соединений.

  • ssl_capath

    Формат командной строки --ssl-capath=dir_name
    Системная переменная ssl_capath
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Имя каталога
    Значение по умолчанию NULL

    Путь к каталогу, содержащему файлы сертификатов доверенных центров сертификации (CA) в формате PEM.

    Эта переменная может быть изменена во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено. См. Настройка и мониторинг серверной стороны для шифрованных соединений.

  • ssl_cert

    Формат командной строки --ssl-cert=file_name
    Системная переменная ssl_cert
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Путь к файлу сертификата открытого ключа сервера SSL в формате PEM.

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

    Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено. См. Настройка и мониторинг серверной стороны для шифрованных соединений.

  • ssl_cipher

    Формат командной строки --ssl-cipher=name
    Системная переменная ssl_cipher
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Строка
    Значение по умолчанию NULL

    Список допустимых шифров шифрования для подключений, использующих TLSv1.2. Если ни один шифр в списке не поддерживается, шифрованные соединения, использующие этот протокол TLS, не работают.

    Список может включать следующие значения:

    • ECDHE-ECDSA-AES128-GCM-SHA256

    • ECDHE-ECDSA-AES256-GCM-SHA384

    • ECDHE-RSA-AES128-GCM-SHA256

    • ECDHE-RSA-AES256-GCM-SHA384

    • ECDHE-ECDSA-CHACHA20-POLY1305

    • ECDHE-RSA-CHACHA20-POLY1305

    • ECDHE-ECDSA-AES256-CCM

    • ECDHE-ECDSA-AES128-CCM

    • DHE-RSA-AES128-GCM-SHA256

    • DHE-RSA-AES256-GCM-SHA384

    • DHE-RSA-AES256-CCM

    • DHE-RSA-AES128-CCM

    • DHE-RSA-CHACHA20-POLY1305

    Попытка включить любые значения в список шифров, которые не показаны здесь при настройке этой переменной, приводит к ошибке.

    Для наилучшей переносимости список шифров должен быть списком одного или нескольких имён шифров, разделённых двоеточиями. Следующий пример показывает два имени шифров, разделённых двоеточием:

    [mysqld]
    ssl_cipher="DHE-RSA-AES128-GCM-SHA256:AES128-SHA"
    

    OpenSSL поддерживает синтаксис для указания шифров, описанный в документации OpenSSL по адресу https://www.openssl.org/docs/manmaster/man1/ciphers.html.

    Сведения о том, какие шифры шифрования поддерживает MySQL, см. в Разделе 8.3.2, «Шифрованные соединения TLS-протоколы и шифры».

    Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено. См. Настройка и мониторинг серверной стороны для шифрованных соединений.

  • ssl_crl

    Формат командной строки --ssl-crl=file_name
    Системная переменная ssl_crl
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Путь к файлу, содержащему списки отзыва сертификатов в формате PEM.

    Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено. См. Настройка и мониторинг серверной стороны для шифрованных соединений.

  • ssl_crlpath

    Формат командной строки --ssl-crlpath=dir_name
    Системная переменная ssl_crlpath
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Имя каталога
    Значение по умолчанию NULL

    Путь к каталогу, содержащему файлы списков отзыва сертификатов в формате PEM.

    Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено. См. Настройка и мониторинг серверной стороны для шифрованных соединений.

  • ssl_fips_mode

    Формат командной строки --ssl-fips-mode={OFF|ON|STRICT}
    Устарело Да
    Системная переменная ssl_fips_mode
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Перечисление
    Значение по умолчанию OFF
    Допустимые значения

    OFF (или 0)

    ON (или 1)

    STRICT (или 2)

    Управляет включением режима FIPS на стороне сервера. Системная переменная ssl_fips_mode отличается от других системных переменных ssl_xxx тем, что она не используется для управления тем, разрешает ли сервер зашифрованные соединения, а скорее для того, чтобы повлиять на то, какие криптографические операции разрешены. См. Раздел 8.8, «Поддержка FIPS».

    Допускаются следующие значения ssl_fips_mode:

    • OFF (или 0): Отключить режим FIPS.

    • ON (или 1): Включить режим FIPS.

    • STRICT (или 2): Включить строгий режим “strict” FIPS.

    Примечание

    Если модуль объектов OpenSSL FIPS недоступен, единственным допустимым значением для ssl_fips_mode является OFF. В этом случае установка ssl_fips_mode в ON или STRICT при запуске приводит к тому, что сервер выдает сообщение об ошибке и завершает работу.

    Этот параметр устарел и стал доступен только для чтения. Ожидается, что он будет удален в будущей версии MySQL.

  • ssl_key

    Формат командной строки --ssl-key=file_name
    Системная переменная ssl_key
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Имя пути к файлу закрытого ключа SSL сервера в формате PEM. Для повышения безопасности используйте сертификат с размером ключа RSA не менее 2048 бит.

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

    Эта переменная может быть изменена во время выполнения, чтобы повлиять на контекст TLS, который сервер использует для новых соединений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено. См. Конфигурация и мониторинг времени выполнения на стороне сервера для зашифрованных соединений.

  • ssl_session_cache_mode

    Формат командной строки --ssl_session_cache_mode={ON|OFF}
    Системная переменная ssl_session_cache_mode
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию ON
    Допустимые значения

    ON

    OFF

    Управляет включением кэша сеансов в памяти на стороне сервера и генерацией билетов сеансов сервером. Режим по умолчанию — ON (включить режим кэша сеансов). Изменение системной переменной ssl_session_cache_mode вступает в силу только после выполнения оператора ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено.

    Допускаются следующие значения ssl_session_cache_mode:

    • ON: Включить режим кэша сеансов.

    • OFF: Отключить режим кэша сеансов.

    Сервер не объявляет о своей поддержке возобновления сеанса, если значение этой системной переменной равно OFF. При работе на OpenSSL 1.0.x билеты сеансов всегда генерируются, но билеты не могут использоваться, когда включена ssl_session_cache_mode.

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

  • ssl_session_cache_timeout

    Формат командной строки --ssl_session_cache_timeout
    Системная переменная ssl_session_cache_timeout
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 300
    Минимальное значение 0
    Максимальное значение 84600
    Единица измерения секунды

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

    Значение по умолчанию составляет 300 секунд, а максимальное значение — 84600 (или один день в секундах). Изменение системной переменной ssl_session_cache_timeout вступает в силу только после выполнения оператора ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено. Текущее действующее значение ssl_session_cache_timeout можно наблюдать с помощью переменной состояния Ssl_session_cache_timeout.

  • statement_id

    Системная переменная statement_id
    Область видимости Сеанс
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число

    Каждому оператору, выполненному в текущем сеансе, присваивается порядковый номер. Это можно использовать вместе с системной переменной session_track_system_variables для идентификации этого оператора в таблицах схемы производительности, таких как таблица events_statements_history.

  • stored_program_cache

    Формат командной строки --stored-program-cache=#
    Переменная системы stored_program_cache
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Целое число
    Значение по умолчанию 256
    Минимальное значение 16
    Максимальное значение 524288

    Устанавливает мягкий верхний предел для количества кэшированных хранимых процедур на подключение. Значение этой переменной определяется количеством хранимых процедур, хранящихся в каждом из двух кэшей, поддерживаемых MySQL Server для, соответственно, хранимых процедур и хранимых функций.

    Всякий раз, когда выполняется хранимая процедура, этот размер кэша проверяется перед парсингом первого или верхнего уровня оператора в процедуре; если количество процедур одного типа (хранимые процедуры или хранимые функции в зависимости от того, какая выполняется) превышает предел, указанный этой переменной, соответствующий кэш очищается, а ранее выделенная память для кэшированных объектов освобождается. Это позволяет безопасно очистить кэш, даже если существуют зависимости между хранимыми процедурами.

    Кэши хранимых процедур и хранимых функций существуют параллельно с кэшем определений хранимых программ раздела . Кэши хранимых процедур и хранимых функций относятся к каждому подключению, в то время как кэш определений хранимых программ общий. Существование объектов в кэшах хранимых процедур и хранимых функций не зависит от существования объектов в кэше определений хранимых программ и наоборот. Дополнительные сведения см. в Разделе 16.4, «Кэш объектов словаря данных».

  • stored_program_definition_cache

    Формат командной строки --stored-program-definition-cache=#
    Переменная системы stored_program_definition_cache
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Целое число
    Значение по умолчанию 256
    Минимальное значение 256
    Максимальное значение 524288

    Определяет предел для количества объектов определения хранимых программ, используемых и неиспользуемых, которые могут храниться в кэше объектов словаря.

    Неиспользуемые объекты определений хранимых программ хранятся в кэше объектов словаря только тогда, когда количество используемых объектов меньше емкости, определенной stored_program_definition_cache.

    Значение 0 означает, что объекты определения хранимых программ хранятся в кэше объектов словаря только при их использовании.

    Раздел кэша определений хранимых программ существует параллельно с кэшами хранимых процедур и хранимых функций, которые настраиваются с помощью опции stored_program_cache.

    Опция stored_program_cache устанавливает мягкий верхний предел для количества кэшированных хранимых процедур или функций на подключение, и этот предел проверяется каждый раз, когда подключение выполняет хранимую процедуру или функцию. С другой стороны, раздел кэша определений хранимых программ представляет собой общий кэш, который хранит объекты определений хранимых программ для других целей. Существование объектов в разделе кэша определений хранимых программ не зависит от существования объектов в кэше хранимых процедур или кэше хранимых функций, и наоборот.

    Для получения дополнительной информации см. Раздел 16.4, «Кэш объектов словаря данных».

  • super_read_only

    Формат командной строки --super-read-only[={OFF|ON}]
    Переменная системы super_read_only
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Булево
    Значение по умолчанию OFF

    Если переменная системы read_only включена, сервер не допускает обновлений клиентов, кроме пользователей, имеющих привилегию CONNECTION_ADMIN (или устаревшую привилегию SUPER). Если также включена переменная системы super_read_only, сервер запрещает обновления клиентов даже для пользователей, имеющих привилегию CONNECTION_ADMIN или SUPER. См. описание переменной системы read_only для описания режима только для чтения и информации о взаимодействии между read_only и super_read_only.

    Обновления клиентов, запрещенные при включенной переменной super_read_only, включают операции, которые по внешнему виду не являются обновлениями, например, CREATE FUNCTION (для установки загружаемой функции), INSTALL PLUGIN и INSTALL COMPONENT. Эти операции запрещены, поскольку они связаны с изменениями в схеме системы mysql.

    Аналогично, если Планировщик событий включен, включение переменной системы super_read_only предотвращает обновление временных меток последнего выполнения событий в таблице словаря данных events. Это приводит к остановке Планировщика событий при следующей попытке выполнения запланированного события после записи сообщения в журнал ошибок сервера. (В этой ситуации переменная системы event_scheduler не изменяется со значения ON на OFF. Следствием этого является отказ переменной от намерения DBA включить или отключить Планировщик событий, где его фактическое состояние (запущен или остановлен) может отличаться). Если super_read_only впоследствии будет отключен после включения, сервер автоматически перезапустит Планировщик событий по мере необходимости.

    Изменения в super_read_only на сервере источника репликации не реплицируются на сервера-реплики. Значение может устанавливаться на реплике независимо от значения на источнике.

  • syseventlog.facility

    Формат командной строки --syseventlog.facility=value
    Переменная системы syseventlog.facility
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Строка
    Значение по умолчанию daemon

    Утилита для вывода в журнал ошибок, записанных в syslog (какой тип программы отправляет сообщение). Эта переменная недоступна, если компонент журнала ошибок log_sink_syseventlog не установлен. См. Раздел 7.4.2.8, «Логирование ошибок в системный журнал».

    Допустимые значения могут отличаться в зависимости от операционной системы; обратитесь к документации вашей системы syslog.

    Эта переменная не существует в Windows.

  • syseventlog.include_pid

    Формат командной строки --syseventlog.include-pid[={OFF|ON}]
    Переменная системы syseventlog.include_pid
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Булево
    Значение по умолчанию ON

    Включать ли идентификатор процесса сервера в каждой строке вывода журнала ошибок, записанного в syslog. Эта переменная недоступна, если компонент журнала ошибок log_sink_syseventlog не установлен. См. Раздел 7.4.2.8, «Логирование ошибок в системный журнал».

    Эта переменная не существует в Windows.

  • syseventlog.tag

    Формат командной строки --syseventlog.tag=tag
    Переменная системы syseventlog.tag
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию empty string

    Тег, который добавляется к идентификатору сервера в выходных данных журналов ошибок, записанных в syslog или журнал событий Windows. Эта переменная недоступна, если компонент журнала ошибок log_sink_syseventlog не установлен. См. Раздел 7.4.2.8, «Журналирование ошибок в системный журнал».

    По умолчанию тег не задан, поэтому идентификатор сервера просто отображается как MySQL в Windows и mysqld на других платформах. Если задано значение тега tag, оно добавляется к идентификатору сервера с ведущим дефисом, что приводит к идентификатору сервера syslog (или MySQL-tag в Windows).

    В Windows, чтобы использовать тег, которого еще нет, сервер должен запускаться от учетной записи с правами администратора, чтобы разрешить создание записи реестра для тега. Повышенные права не требуются, если тег уже существует.

  • system_time_zone

    Переменная системы system_time_zone
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Строка

    Временная зона сервера. Когда сервер начинает выполнение, он наследует настройку временной зоны от машинных параметров, которые могут быть изменены средой учетной записи, используемой для запуска сервера, или скриптом запуска. Значение используется для установки system_time_zone. Чтобы явно указать временную зону системы, установите переменную среды TZ или используйте опцию --timezone скрипта mysqld_safe.

    Помимо инициализации времени запуска, если временная зона хоста сервера изменяется (например, из-за перехода на летнее время), system_time_zone отражает это изменение, что имеет такие последствия для приложений:

    • Запросы, которые ссылаются на system_time_zone, получат одно значение до изменения на летнее время и другое значение после изменения.

    • Для запросов, которые начинаются до изменения на летнее время и заканчиваются после изменения, system_time_zone остается постоянным в пределах запроса, потому что значение обычно кэшируется в начале выполнения.

    Переменная system_time_zone отличается от переменной time_zone. Хотя их значения могут совпадать, последняя переменная используется для инициализации временной зоны для каждого подключенного клиента. См. Раздел 7.1.15, «Поддержка временных зон MySQL сервера».

  • table_definition_cache

    Формат командной строки --table-definition-cache=#
    Переменная системы table_definition_cache
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию -1 (указывает на автоматическое изменение размера; не присваивайте это значение)
    Минимальное значение 400
    Максимальное значение 524288

    Количество определений таблиц, которые могут храниться в кэше определений таблиц. Если вы используете большое количество таблиц, вы можете создать большой кэш определений таблиц для ускорения открытия таблиц. Кэш определений таблиц занимает меньше места и не использует дескрипторы файлов, в отличие от обычного кэша таблиц. Минимальное значение равно 400. Значение по умолчанию основано на следующей формуле, ограниченной значением 2000:

    MIN(400 + table_open_cache / 2, 2000)
    

    Для InnoDB значение table_definition_cache действует как мягкое ограничение на количество экземпляров таблиц в кэше объектов словаря и количество файлов-таблиц табличных пространств, которые могут быть открыты одновременно.

    Если количество экземпляров таблиц в кэше объектов словаря превышает предел table_definition_cache, механизм LRU начинает помечать экземпляры таблиц для вытеснения и, в конечном итоге, удаляет их из кэша объектов словаря. Количество открытых таблиц с кэшированными метаданными может быть выше предела table_definition_cache из-за экземпляров таблиц с отношениями внешних ключей, которые не помещаются в список LRU.

    Количество открытых табличных пространств файлов-таблиц ограничено как настройкой table_definition_cache, так и настройкой innodb_open_files. Если обе переменные установлены, используется наибольшее значение. Если ни одна переменная не установлена, используется значение table_definition_cache, которое имеет большее значение по умолчанию. Если количество открытых табличных пространств превышает предел, определенный настройками table_definition_cache или innodb_open_files, механизм LRU ищет в списке LRU файлы табличного пространства, которые полностью сброшены и в настоящее время не расширяются. Этот процесс выполняется каждый раз, когда открывается новое табличное пространство. Только неактивные табличные пространства закрываются.

    Кэш определений таблиц существует параллельно с кэш-разделом определений таблиц . Оба кэша хранят определения таблиц, но обслуживают разные части MySQL сервера. Объекты в одном кэше не зависят от существования объектов в другом. Дополнительную информацию см. в Разделе 16.4, «Кэш объектов словаря».

  • table_encryption_privilege_check

    Формат командной строки --table-encryption-privilege-check[={OFF|ON}]
    Переменная системы table_encryption_privilege_check
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Управляет проверкой привилегий TABLE_ENCRYPTION_ADMIN, которая выполняется при создании или изменении схемы или общего табличного пространства с шифрованием, отличным от настройки default_table_encryption, или при создании или изменении таблицы с настройкой шифрования, отличной от шифрования схемы по умолчанию. Проверка по умолчанию отключена.

    Установка table_encryption_privilege_check во время выполнения требует привилегии SUPER.

    table_encryption_privilege_check поддерживает синтаксис SET PERSIST и SET PERSIST_ONLY. См. Раздел 7.1.9.3, «Постоянные системные переменные».

    Для получения дополнительной информации см. Определение значения шифрования по умолчанию для схем и общих табличных пространств.

  • table_open_cache

    Формат командной строки --table-open-cache=#
    Системная переменная table_open_cache
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 4000
    Минимальное значение 1
    Максимальное значение 524288

    Количество открытых таблиц для всех потоков. Увеличение этого значения увеличивает количество дескрипторов файлов, требуемых для mysqld. Эффективное значение этой переменной представляет собой большее из эффективного значения open_files_limit - 10 - эффективного значения max_connections / 2 и 400; то есть

    MAX(
        (open_files_limit - 10 - max_connections) / 2,
        400
       )
    

    Вы можете проверить, нужно ли увеличивать кэш таблиц, проверив переменную состояния Opened_tables. Если значение Opened_tables велико, и вы не часто используете FLUSH TABLES (что просто заставляет все таблицы закрываться и открываться заново), то вам следует увеличить значение переменной table_open_cache. Для получения дополнительной информации о кэше таблиц см. Раздел 10.4.3.1, «Как MySQL открывает и закрывает таблицы».

  • table_open_cache_instances

    Формат командной строки --table-open-cache-instances=#
    Системная переменная table_open_cache_instances
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 16
    Минимальное значение 1
    Максимальное значение 64

    Количество экземпляров кэша открытых таблиц. Для повышения масштабируемости за счет уменьшения конкуренции между сессиями кэш открытых таблиц можно разделить на несколько меньших экземпляров кэша размером table_open_cache / table_open_cache_instances. Сессии необходимо заблокировать только один экземпляр, чтобы получить к нему доступ для операторов DML. Это сегментирует доступ к кэшу между экземплярами, что позволяет повысить производительность операций, использующих кэш, когда много сессий обращаются к таблицам. (Операторам DDL по-прежнему требуется блокировка всего кэша, но такие операторы встречаются гораздо реже, чем операторы DML.)

    На системах, которые обычно используют 16 или более ядер, рекомендуется значение 8 или 16. Однако, если у вас много больших триггеров в ваших таблицах, которые вызывают высокую загрузку памяти, то значение по умолчанию для table_open_cache_instances может привести к чрезмерному использованию памяти. В такой ситуации может быть полезно установить table_open_cache_instances в 1, чтобы ограничить использование памяти.

  • table_open_cache_triggers

    Формат командной строки --table-open-cache-triggers=value
    Системная переменная table_open_cache_triggers
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 524288
    Минимальное значение 1
    Максимальное значение 524288

    Максимальное общее количество кэшированных открытых таблиц с полностью загруженными триггерами. Это включает как используемые, так и неиспользуемые таблицы с полностью загруженными триггерами.

    table_open_cache_triggers аналогична table_open_cache, но управляет механизмом вытеснения специально для таблиц с полностью загруженными триггерами. Значение по умолчанию для table_open_cache_triggers такое же, как и максимальное; установка значения меньше этого активирует логику вытеснения, специфичную для таблиц с полностью загруженными триггерами. Оставление table_open_cache_triggers по умолчанию означает, что никакие таблицы не вытесняются из кэша на основе того, есть ли у них какие-либо полностью загруженные триггеры, что соответствует поведению в версиях MySQL до 9.1.

    Максимальное количество кэшированных таблиц с триггерами на каждый экземпляр кэша определяется table_open_cache_triggers / table_open_cache_instances. Когда этим системным переменным разрешено сохранять свои значения по умолчанию, это значение равно 32768.

  • tablespace_definition_cache

    Формат командной строки --tablespace-definition-cache=#
    Системная переменная tablespace_definition_cache
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 256
    Минимальное значение 256
    Максимальное значение 524288

    Определяет предел для количества объектов определения табличного пространства, как используемых, так и неиспользуемых, которые могут храниться в кэше объектов словаря.

    Неиспользуемые объекты определения табличного пространства хранятся в кэше объектов словаря только тогда, когда количество используемых объектов меньше емкости, определенной tablespace_definition_cache.

    Установка 0 означает, что объекты определения табличного пространства хранятся в кэше объектов словаря только во время их использования.

    Для получения дополнительной информации см. Раздел 16.4, «Кэш объектов словаря».

  • temptable_max_mmap

    Формат командной строки --temptable-max-mmap=#
    Системная переменная temptable_max_mmap
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 2^64-1
    Единица измерения байты

    Определяет максимальный объем памяти (в байтах), который механизм хранения TempTable может выделять из файлов временных файлов с отображением в памяти, прежде чем он начнет сохранять данные во InnoDB внутренние временные таблицы на диске. Установка 0 (по умолчанию) отключает выделение памяти из временных файлов с отображением в памяти. Для получения дополнительной информации см. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».

    До MySQL 8.4 этот параметр был установлен в 1 ГБ вместо 0.

  • temptable_max_ram

    Формат командной строки --temptable-max-ram=#
    Системная переменная temptable_max_ram
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 3% of total memory: min 1 GB, max 4 GB
    Минимальное значение 2097152
    Максимальное значение 2^64-1
    Единица измерения байты

    Определяет максимальный объем памяти, который может занимать движок хранения TempTable, прежде чем он начнёт хранить данные на диске. Значение по умолчанию составляет 3% от общей памяти, доступной на сервере, с минимальным и максимальным диапазоном по умолчанию 1–4 ГБ. Для получения дополнительной информации см. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».

    Переменная состояния TempTable_count_hit_max_ram подсчитывает количество раз, когда движок TempTable достиг ограничения temptable_max_ram.

    Перед MySQL 8.4 значение по умолчанию всегда было 1 ГБ.

  • temptable_use_mmap

    Формат командной строки --temptable-use-mmap[={OFF|ON}]
    Устаревшая Да
    Системная переменная temptable_use_mmap
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Определяет, выделяет ли движок TempTable место для внутренних временных таблиц в памяти как файлы временных таблиц с отображением в памяти, когда занимаемый объём памяти движком TempTable превышает предел, определённый переменной temptable_max_ram. При отключении temptable_use_mmap (по умолчанию) движок TempTable использует InnoDB временные таблицы на диске вместо этого. Для получения дополнительной информации см. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».

  • thread_cache_size

    Формат командной строки --thread-cache-size=#
    Системная переменная thread_cache_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию -1 (указывает на автоматическое масштабирование; не присваивайте это значение)
    Минимальное значение 0
    Максимальное значение 16384

    Количество потоков, которые сервер должен кэшировать для повторного использования. При отключении клиента его потоки помещаются в кэш, если количество потоков там меньше thread_cache_size. Запросы на потоки удовлетворяются с помощью повторного использования потоков из кэша, если это возможно, и только когда кэш пуст, создаётся новый поток. Эту переменную можно увеличить для повышения производительности, если у вас много новых подключений. Обычно это не обеспечивает заметного улучшения производительности, если у вас хорошая реализация потоков. Однако, если ваш сервер видит сотни подключений в секунду, вам обычно следует установить thread_cache_size достаточно высоким, чтобы большинство новых подключений использовали кэшированные потоки. Проведя анализ разницы между переменными состояния Connections и Threads_created, вы можете увидеть, насколько эффективен кэш потоков. Подробности см. в Разделе 7.1.10, «Переменные состояния сервера».

    Значение по умолчанию основано на следующей формуле, ограниченной значением 100:

    8 + (max_connections / 100)
    
  • thread_handling

    Формат командной строки --thread-handling=name
    Системная переменная thread_handling
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию one-thread-per-connection
    Допустимые значения

    no-threads

    one-thread-per-connection

    loaded-dynamically

    Модель обработки потоков, используемая сервером для потоков подключений. Допустимые значения: no-threads (сервер использует один поток для обработки одного подключения), one-thread-per-connection (сервер использует один поток для каждого подключения клиента) и loaded-dynamically (устанавливается плагином пула потоков при его инициализации). no-threads полезна для отладки под Linux; см. Раздел 7.9, «Отладка MySQL».

  • thread_pool_algorithm

    Формат командной строки --thread-pool-algorithm=#
    Системная переменная thread_pool_algorithm
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 1

    Эта переменная управляет тем, какой алгоритм использует плагин пула потоков:

    • 0: Использовать консервативный алгоритм с низкой конкуретностью.

    • 1: Использовать агрессивный алгоритм с высокой конкуретностью, который работает лучше с оптимальным количеством потоков, но производительность может быть снижена, если количество подключений достигнет чрезвычайно высоких значений.

    Эта переменная доступна только при включённом плагине пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_dedicated_listeners

    Формат командной строки --thread-pool-dedicated-listeners
    Системная переменная thread_pool_dedicated_listeners
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

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

    • OFF: (По умолчанию) Отключает выделенные потоки-слушатели.

    • ON: Назначает поток-слушатель в каждой группе потоков для прослушивания входящих запросов от подключений, назначенных группе. Выделенные потоки-слушатели не выполняют запросы.

    Включение thread_pool_dedicated_listeners полезно только при определении лимита транзакций переменной thread_pool_max_transactions_limit. В противном случае thread_pool_dedicated_listeners не следует включать.

    Сервис HeatWave использует эту переменную, которая доступна только с MySQL Enterprise Edition, и не поддерживается в MySQL 9.2.

  • thread_pool_high_priority_connection

    Формат командной строки --thread-pool-high-priority-connection=#
    Переменная системы thread_pool_high_priority_connection
    Область действия Глобальная, Сеансовая
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 1

    Эта переменная влияет на очередирование новых инструкций перед выполнением. Если значение равно 0 (ложь, значение по умолчанию), очередирование инструкций использует и низкоприоритетную, и высокоприоритетную очереди. Если значение равно 1 (истина), очередируемые инструкции всегда попадают в высокоприоритетную очередь.

    Эта переменная доступна только при включённом плагине пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_longrun_trx_limit

    Формат командной строки --thread-pool-longrun-trx-limit=#
    Переменная системы thread_pool_longrun_trx_limit
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 2000
    Минимальное значение 10
    Максимальное значение 60*60*24
    Единица измерения мс

    Когда thread_pool_max_transactions_limit используется, существует максимальное количество активных транзакций в каждой группе потоков. Если все доступные ресурсы используются длительными транзакциями, любая дополнительная транзакция, назначенная группе, блокируется до завершения одной из длительных транзакций, что пользователи могут воспринимать как необъяснимую задержку.

    Чтобы смягчить эту проблему, предел для данной группы потоков приостанавливается, если все потоки, использующие максимальное число транзакций, выполняются дольше, чем интервал (в миллисекундах), указанный в thread_pool_longrun_trx_limit. Когда количество длительных транзакций уменьшается, thread_pool_max_transactions_limit может (и будет) снова включено. Для этого количество текущих транзакций должно быть меньше thread_pool_max_transactions_limit / 2 в течение определённого интервала, как показано:

    MIN( MAX(thread_pool_longrun_trx_limit * 15, 5000), 30000)
    

    Эта переменная доступна только при включённом плагине пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_max_active_query_threads

    Формат командной строки --thread-pool-max-active-query-threads
    Переменная системы thread_pool_max_active_query_threads
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 512

    Максимальное допустимое количество активных (работающих) потоков запросов на группу. Если значение равно 0, плагин пула потоков использует до тех пор, пока есть доступные потоки.

    Эта переменная доступна только при включённом плагине пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_max_transactions_limit

    Формат командной строки --thread-pool-max-transactions-limit
    Переменная системы thread_pool_max_transactions_limit
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 1000000

    Максимальное число транзакций, разрешённых плагином пула потоков. Определение ограничения транзакции связывает поток с транзакцией до её подтверждения, что помогает стабилизировать пропускную способность при высокой конкурентности.

    Значение по умолчанию 0 означает, что ограничения на транзакции нет. Переменная динамическая, но её нельзя изменить с 0 на большее значение во время выполнения и наоборот. Не нулевое значение при запуске позволяет динамическую конфигурацию во время выполнения. Для настройки thread_pool_max_transactions_limit во время выполнения требуется привилегия CONNECTION_ADMIN.

    При определении ограничения на транзакции включение thread_pool_dedicated_listeners создаёт выделенный поток слушателя в каждой группе потоков. Дополнительный выделенный поток слушателя потребляет больше ресурсов и влияет на производительность пула потоков. thread_pool_dedicated_listeners следует использовать с осторожностью.

    Когда предел, определённый thread_pool_max_transactions_limit, достигнут, новые подключения или транзакции по существующим подключениям могут казаться заблокированными, пока одна или несколько текущих транзакций не завершатся. Во многих случаях можно смягчить эту проблему, установив thread_pool_longrun_trx_limit, чтобы предел транзакций мог быть ослаблен, когда количество текущих транзакций соответствует ему в течение определённого времени. Если существующие подключения по-прежнему блокируются или работают долго даже после попытки этого, может потребоваться подключение с привилегиями для доступа к серверу, чтобы увеличить предел, снять ограничение или убить текущие транзакции. См. Подключения с привилегиями.

    Сервис HeatWave использует эту переменную, доступную только в MySQL Enterprise Edition, и не поддерживается в MySQL 9.2.

  • thread_pool_max_unused_threads

    Формат командной строки --thread-pool-max-unused-threads=#
    Переменная системы thread_pool_max_unused_threads
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4096

    Максимальное разрешённое количество неиспользуемых потоков в пуле потоков. Эта переменная позволяет ограничить объём памяти, используемый спящими потоками.

    Значение 0 (значение по умолчанию) означает отсутствие ограничения на количество спящих потоков. Значение N, где N больше 0, означает 1 поток-потребитель и N−1 резервных потоков. В этом случае, если поток готов ко сну, но количество спящих потоков уже достигло максимума, поток завершается, а не переходит в состояние сна.

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

    Эта переменная доступна только при включённом плагине пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_prio_kickup_timer

    Формат командной строки --thread-pool-prio-kickup-timer=#
    Системная переменная thread_pool_prio_kickup_timer
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 1000
    Минимальное значение 0
    Максимальное значение 4294967294
    Единица измерения миллисекунды

    Эта переменная влияет на операторы, ожидающие выполнения в очереди низкого приоритета. Значение представляет собой количество миллисекунд, прежде чем ожидающий оператор будет перемещен в очередь высокого приоритета. Значение по умолчанию равно 1000 (1 секунда).

    Эта переменная доступна только в случае включения плагина пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_query_threads_per_group

    Формат командной строки --thread-pool-query-threads-per-group
    Системная переменная thread_pool_query_threads_per_group
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 4096

    Максимальное количество потоков запросов, разрешенных в группе потоков. Максимальное значение равно 4096, но если установлено значение thread_pool_max_transactions_limit, thread_pool_query_threads_per_group не должно превышать это значение.

    Значение по умолчанию 1 означает, что в каждой группе потоков есть один активный поток запроса, что хорошо работает для многих нагрузок. При использовании алгоритма пула потоков с высокой степенью параллелизма (thread_pool_algorithm = 1) рассмотрите возможность увеличения значения, если вы столкнулись с замедлением времени отклика из-за длительных транзакций.

    Для настройки thread_pool_query_threads_per_group во время выполнения требуется привилегия CONNECTION_ADMIN.

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

    Служба HeatWave использует эту переменную, которая доступна только в MySQL Enterprise Edition и не поддерживается в MySQL 9.2.

  • thread_pool_size

    Формат командной строки --thread-pool-size=#
    Системная переменная thread_pool_size
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 16
    Минимальное значение 1
    Максимальное значение 512

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

    Эта переменная доступна только в случае включения плагина пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_stall_limit

    Формат командной строки --thread-pool-stall-limit=#
    Системная переменная thread_pool_stall_limit
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 6
    Минимальное значение 4
    Максимальное значение 600
    Единица измерения миллисекунды * 10

    Эта переменная влияет на выполнение операторов. Значение представляет собой количество времени, которое оператору необходимо завершить после начала выполнения, прежде чем он будет определен как зависший, после чего пул потоков разрешает группе потоков начать выполнение другого оператора. Значение измеряется в единицах по 10 миллисекунд, поэтому значение по умолчанию 6 означает 60 мс. Короткие значения ожидания позволяют потокам запускаться быстрее. Короткие значения также лучше подходят для предотвращения ситуаций взаимной блокировки. Длинные значения ожидания полезны для рабочих нагрузок, которые включают длительные операторы, чтобы избежать запуска слишком большого количества новых операторов во время выполнения текущих.

    Эта переменная доступна только в случае включения плагина пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_transaction_delay

    Формат командной строки --thread-pool-transaction-delay
    Системная переменная thread_pool_transaction_delay
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 300000

    Период задержки перед выполнением новой транзакции в миллисекундах. Максимальное значение равно 300000 (5 минут).

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

    Рабочие потоки спят в течение количества миллисекунд, указанных thread_pool_transaction_delay, прежде чем выполнить новую транзакцию.

    Настройка thread_pool_transaction_delay не влияет на запросы, выданные из привилегированного соединения (соединение, назначенное группе потоков Admin). Эти запросы не подвержены настроенной задержке транзакции.

  • thread_stack

    Формат командной строки --thread-stack=#
    Системная переменная thread_stack
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 1048576
    Минимальное значение 131072
    Максимальное значение (64-разрядные платформы) 18446744073709550592
    Максимальное значение (32-разрядные платформы) 4294966272
    Единица измерения байты
    Размер блока 1024

    Размер стека для каждого потока. Значение по умолчанию достаточно велико для нормальной работы. Если размер стека потока слишком мал, это ограничивает сложность операторов SQL, которые может обрабатывать сервер, глубину рекурсии хранимых процедур и другие действия, потребляющие много памяти.

  • time_zone

    Переменная системы time_zone
    Область Глобальная, Сессия
    Динамическая Да
    SET_VAR Применимо Да
    Тип Строка
    Значение по умолчанию SYSTEM
    Минимальное значение -13:59
    Максимальное значение +14:00

    Текущая временная зона. Эта переменная используется для инициализации временной зоны для каждого клиента, который подключается. По умолчанию начальное значение равно 'SYSTEM' (что означает, “использовать значение system_time_zone”). Значение можно явно указать при запуске сервера с опцией --default-time-zone. См. Раздел 7.1.15, «Поддержка временных зон сервера MySQL».

    Примечание

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

  • timestamp

    Переменная системы timestamp
    Область Сессия
    Динамическая Да
    SET_VAR Применимо Да
    Тип Числовой
    Значение по умолчанию UNIX_TIMESTAMP()
    Минимальное значение 1
    Максимальное значение 2147483647

    Устанавливает время для этого клиента. Используется для получения исходной метки времени, если вы используете двоичный журнал для восстановления строк. timestamp_value должна быть меткой времени эпохи Unix (значение, возвращаемое, например, UNIX_TIMESTAMP(), а не значение в формате 'YYYY-MM-DD hh:mm:ss') или DEFAULT.

    Установка timestamp на постоянное значение сохраняет это значение до его повторной смены. Установка timestamp на DEFAULT задаёт его значение как текущую дату и время на момент доступа.

    timestamp является DOUBLE, а не BIGINT, потому что её значение включает микросекунды. Максимальное значение соответствует '2038-01-19 03:14:07' UTC, аналогично типу данных TIMESTAMP.

    SET timestamp влияет на возвращаемое значение функции NOW(), но не на SYSDATE(). Это означает, что настройки временных меток в двоичном журнале не влияют на вызовы SYSDATE(). Сервер можно запустить с опцией --sysdate-is-now, чтобы сделать SYSDATE() синонимом NOW(), в этом случае SET timestamp влияет на обе функции.

  • tls_certificates_enforced_validation

    Формат командной строки --tls-certificates-enforced-validation[={OFF|ON}]
    Переменная системы tls_certificates_enforced_validation
    Область Глобальная
    Динамическая Нет
    SET_VAR Применимо Нет
    Тип Булево
    Значение по умолчанию OFF

    При запуске сервер проверяет, присутствуют ли все необходимые файлы сертификатов SSL в каталоге данных по умолчанию, если их расположение не указано в командной строке. Однако сервер не проверяет валидность файлов сертификатов, в результате чего он может запуститься с невалидным сертификатом. Переменная системы tls_certificates_enforced_validation управляет тем, включена ли проверка сертификатов при запуске. Обнаружение невалидного сертификата останавливает запуск, когда проверка включена. По умолчанию проверка сертификатов отключена (OFF).

    Проверку можно включить, указав опцию --tls-certificates-enforced-validation в командной строке с или без значения ON. При включенной проверке сертификатов, они также проверяются при их перезагрузке с помощью команды ALTER INSTANCE RELOAD TLS. Эта переменная не сохраняется после перезагрузки. Подробнее см. Настройка проверки сертификатов.

  • tls_ciphersuites

    Формат командной строки --tls-ciphersuites=ciphersuite_list
    Переменная системы tls_ciphersuites
    Область Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Строка
    Значение по умолчанию NULL

    Какие наборы шифров сервер разрешает для зашифрованных соединений, использующих TLSv1.3. Значение — список нулевого или более имён наборов шифров, разделённых двоеточием, из списка ниже:

    • TLS_AES_128_GCM_SHA256

    • TLS_AES_256_GCM_SHA384

    • TLS_CHACHA20_POLY1305_SHA256

    • TLS_AES_128_CCM_SHA256

    Попытка включить в список шифров значения, отсутствующие в этом списке, при установке этой переменной, вызовет ошибку ().

    Доступные для указания наборы шифров зависят от используемой библиотеки SSL при компиляции MySQL. Если эта переменная не установлена, её значение по умолчанию — NULL, что означает, что сервер разрешает стандартный набор шифров. Если переменная установлена на пустую строку, наборы шифров не активированы, и зашифрованные соединения не могут быть установлены. Подробнее см. Раздел 8.3.2, «Протоколы и наборы шифров TLS зашифрованных соединений».

  • tls_version

    Формат командной строки --tls-version=protocol_list
    Системная переменная tls_version
    Область Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию TLSv1.2,TLSv1.3

    Какие протоколы сервер разрешает для защищённых соединений. Значение представляет собой список одного или нескольких имён протоколов, разделённых запятыми, регистр при этом не учитывается. Протоколы, которые можно указать для этой переменной, зависят от используемой библиотеки SSL при компиляции MySQL. Разрешённые протоколы следует выбирать так, чтобы в списке не оставалось «дыр». Подробности см. в Разделе 8.3.2, «Протоколы TLS и шифры защищённого соединения».

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

    Важно
    • MySQL 9.2 не поддерживает протоколы TLSv1 и TLSv1.1 для соединения. См. для получения дополнительной информации.

    • Поддержка протокола TLSv1.3 доступна в MySQL 9.2, при условии, что MySQL Server был скомпилирован с использованием OpenSSL 1.1.1 или выше. Сервер проверяет версию OpenSSL при запуске, и если она ниже 1.1.1, TLSv1.3 удаляется из значения по умолчанию для системной переменной. В этом случае значение по умолчанию — TLSv1.2.

    Установка этой переменной в пустую строку отключает защищённые соединения.

  • tmp_table_size

    Формат командной строки --tmp-table-size=#
    Системная переменная tmp_table_size
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 16777216
    Минимальное значение 1024
    Максимальное значение 18446744073709551615
    Единицы измерения байты

    Определяет максимальный размер внутренних временных таблиц в оперативной памяти, создаваемых движками хранения MEMORY и TempTable. Если внутренняя временная таблица в оперативной памяти превышает этот размер, она автоматически преобразуется во временную таблицу на диске.

    Переменная tmp_table_size не применяется к созданным пользователем MEMORY таблицам. Пользовательские TempTable таблицы не поддерживаются.

    При использовании движка хранения MEMORY для внутренних временных таблиц в оперативной памяти фактический размер ограничения является меньшим из tmp_table_size и max_heap_table_size. Настройка max_heap_table_size не применяется к таблицам TempTable.

    Увеличьте значение tmp_table_size (и max_heap_table_size, если необходимо, при использовании движка хранения MEMORY для внутренних временных таблиц в оперативной памяти), если вы выполняете много сложных запросов GROUP BY и у вас много оперативной памяти.

    Системная переменная Count_hit_tmp_table_size подсчитывает количество внутренних временных таблиц, которые были преобразованы из оперативной памяти в таблицы на диске из-за достижения лимитов размера для движков хранения TempTable или MEMORY.

    Вы можете сравнить количество созданных внутренних временных таблиц на диске с общим количеством созданных внутренних временных таблиц, сравнив значения Created_tmp_disk_tables и Created_tmp_tables.

    См. также Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».

  • tmpdir

    Формат командной строки --tmpdir=dir_name
    Системная переменная tmpdir
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Имя каталога

    Путь к каталогу, используемому для создания временных файлов. Это может быть полезно, если ваш каталог по умолчанию /tmp находится на слишком маленьком разделе для временных таблиц. Эту переменную можно задать списком путей, используемых по принципу круговой очереди. Пути должны быть разделены двоеточием (:) в Unix и точкой с запятой (;) в Windows.

    tmpdir может быть временным местоположением, например, каталогом на файловой системе на основе памяти или каталогом, который очищается при перезагрузке сервера-хоста. Если сервер MySQL работает в качестве реплики, и вы используете временное местоположение для tmpdir, рассмотрите возможность установки другого временного каталога для реплики с использованием переменной replica_load_tmpdir. Для реплики временные файлы, используемые для репликации LOAD DATA операторов, хранятся в этом каталоге, поэтому с постоянным местоположением они могут сохраниться при перезагрузке машины, хотя репликация может продолжаться после перезагрузки, если временные файлы были удалены.

    Дополнительную информацию о местоположении временных файлов см. в Разделе B.3.3.5, «Где MySQL хранит временные файлы».

  • transaction_alloc_block_size

    Формат командной строки --transaction-alloc-block-size=#
    Системная переменная transaction_alloc_block_size
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 8192
    Минимальное значение 1024
    Максимальное значение 131072
    Единицы измерения байты
    Размер блока 1024

    Размер в байтах, на который увеличивается пул памяти на транзакцию, которому требуется память. См. описание transaction_prealloc_size.

  • Уровень изоляции транзакций

    Формат командной строки --transaction-isolation=name
    Системная переменная transaction_isolation
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию REPEATABLE-READ
    Допустимые значения

    READ-UNCOMMITTED

    READ-COMMITTED

    REPEATABLE-READ

    SERIALIZABLE

    Уровень изоляции транзакций. По умолчанию используется REPEATABLE-READ.

    Уровень изоляции транзакций имеет три области действия: глобальную, сеанса и следующей транзакции. Эта реализация с тремя областями действия приводит к некоторым нестандартным семантикам назначения уровня изоляции, как описано ниже.

    Для установки глобального уровня изоляции транзакций при запуске используйте серверный параметр --transaction-isolation.

    Во время выполнения уровень изоляции можно установить напрямую с помощью оператора SET для присваивания значения системной переменной transaction_isolation или косвенно с помощью оператора SET TRANSACTION. Если вы устанавливаете transaction_isolation непосредственно на имя уровня изоляции, содержащее пробел, имя должно быть заключено в кавычки, а пробел заменён дефисом. Например, используйте этот оператор SET для установки глобального значения:

    SET GLOBAL transaction_isolation = 'READ-COMMITTED';
    

    Установка глобального значения transaction_isolation устанавливает уровень изоляции для всех последующих сеансов. Существующие сеансы не затрагиваются.

    Для установки значения сеанса или следующего уровня transaction_isolation используйте оператор SET. Для большинства системных переменных сеанса эти операторы являются эквивалентными способами установки значения:

    SET @@SESSION.var_name = value;
    SET SESSION var_name = value;
    SET var_name = value;
    SET @@var_name = value;
    

    Как упоминалось ранее, уровень изоляции транзакций имеет область действия следующей транзакции помимо глобальной и области действия сеанса. Для включения области действия следующей транзакции синтаксис SET для присваивания значений системных переменных сеанса имеет нестандартную семантику для transaction_isolation:

    • Для установки уровня изоляции сеанса используйте любой из этих синтаксисов:

      SET @@SESSION.transaction_isolation = value;
      SET SESSION transaction_isolation = value;
      SET transaction_isolation = value;
      

      Для каждого из этих синтаксисов применяются следующие семантики:

      • Устанавливает уровень изоляции для всех последующих транзакций, выполняемых в рамках сеанса.

      • Допускается внутри транзакций, но не влияет на текущую выполняемую транзакцию.

      • Если выполняется между транзакциями, переопределяет любой предыдущий оператор, который устанавливает уровень изоляции следующей транзакции.

      • Соответствует оператору SET SESSION TRANSACTION ISOLATION LEVEL (с ключевым словом SESSION).

    • Для установки уровня изоляции следующей транзакции используйте этот синтаксис:

      SET @@transaction_isolation = value;
      

      Для этого синтаксиса применяются следующие семантики:

      • Устанавливает уровень изоляции только для следующей одиночной транзакции, выполняемой в рамках сеанса.

      • Последующие транзакции возвращаются к уровню изоляции сеанса.

      • Не допускается внутри транзакций.

      • Соответствует оператору SET TRANSACTION ISOLATION LEVEL (без ключевого слова SESSION).

    Дополнительную информацию об операторе SET TRANSACTION и его взаимосвязи с системной переменной transaction_isolation см. в Разделе 15.3.7, «Оператор SET TRANSACTION».

  • transaction_prealloc_size

    Формат командной строки --transaction-prealloc-size=#
    Устаревший Да
    Системная переменная transaction_prealloc_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 4096
    Минимальное значение 1024
    Максимальное значение 131072
    Единицы измерения байты
    Размер блока 1024

    Существует пул памяти на транзакцию, из которого происходят различные выделения памяти, связанные с транзакциями. Начальный размер пула в байтах составляет transaction_prealloc_size. При каждом выделении, которое не может быть выполнено из пула из-за недостатка памяти, размер пула увеличивается на transaction_alloc_block_size байт. По окончании транзакции пул обрезается до transaction_prealloc_size байт. Сделав transaction_prealloc_size достаточно большим для всех операторов в пределах одной транзакции, можно избежать многих вызовов malloc().

    transaction_prealloc_size устарел, и установка этой переменной больше не имеет никакого эффекта. Ожидайте, что transaction_prealloc_size будет удалено в будущих выпусках MySQL.

  • transaction_read_only

    Формат командной строки --transaction-read-only[={OFF|ON}]
    Системная переменная transaction_read_only
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Режим доступа к транзакции. Значение может быть OFF (чтение/запись; значение по умолчанию) или ON (только чтение).

    Режим доступа к транзакции имеет три области действия: глобальную, сессионную и следующую транзакцию. Эта реализация с тремя областями действия приводит к некоторым нестандартным семантикам назначения режима доступа, как описано ниже.

    Для установки глобального режима доступа к транзакции при запуске используйте серверный параметр --transaction-read-only.

    Во время выполнения режим доступа можно установить напрямую с помощью оператора SET для назначения значения системной переменной transaction_read_only или косвенно с помощью оператора SET TRANSACTION. Например, используйте этот оператор SET для установки глобального значения:

    SET GLOBAL transaction_read_only = ON;
    

    Установка глобального значения transaction_read_only устанавливает режим доступа для всех последующих сессий. Существующие сессии не затрагиваются.

    Для установки значения сессионного или следующего уровня transaction_read_only используйте оператор SET. Для большинства системных переменных сессии эти операторы являются равнозначными способами установки значения:

    SET @@SESSION.var_name = value;
    SET SESSION var_name = value;
    SET var_name = value;
    SET @@var_name = value;
    

    Как упоминалось ранее, режим доступа к транзакции имеет область действия следующей транзакции, помимо глобальной и сессионной областей действия. Для включения области действия следующей транзакции синтаксис SET для назначения значений системной переменной сессии имеет нестандартные семантики для transaction_read_only,

    • Для установки сессионного режима доступа используйте любой из этих синтаксисов:

      SET @@SESSION.transaction_read_only = value;
      SET SESSION transaction_read_only = value;
      SET transaction_read_only = value;
      

      Для каждого из этих синтаксисов применимы следующие семантики:

      • Устанавливает режим доступа для всех последующих транзакций, выполняемых в рамках сессии.

      • Допускается внутри транзакций, но не влияет на текущую выполняющуюся транзакцию.

      • Если выполняется между транзакциями, переопределяет любой предыдущий оператор, устанавливающий режим доступа следующей транзакции.

      • Соответствует оператору SET SESSION TRANSACTION {READ WRITE | READ ONLY} (с ключевым словом SESSION).

    • Для установки режима доступа следующей транзакции используйте этот синтаксис:

      SET @@transaction_read_only = value;
      

      Для этого синтаксиса применимы следующие семантики:

      • Устанавливает режим доступа только для следующей единственной транзакции, выполняемой в рамках сессии.

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

      • Не допускается внутри транзакций.

      • Соответствует оператору SET TRANSACTION {READ WRITE | READ ONLY} (без ключевого слова SESSION).

    Для получения дополнительной информации об операторе SET TRANSACTION и его связи с системной переменной transaction_read_only см. Раздел 15.3.7, «Оператор SET TRANSACTION».

  • unique_checks

    Системная переменная unique_checks
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Булево
    Значение по умолчанию ON

    Если установлено в 1 (значение по умолчанию), проверки уникальности для вторичных индексов в таблицах InnoDB выполняются. Если установлено в 0, СУБД разрешается считать, что дубликаты ключей отсутствуют в входных данных. Если вы точно знаете, что ваши данные не содержат нарушений уникальности, вы можете установить это значение в 0, чтобы ускорить импорт больших таблиц в InnoDB.

    Установка этой переменной в 0 не требует от СУБД игнорировать дубликаты ключей. СУБД по-прежнему разрешается проверять их и выдавать ошибки дублирования ключей, если они обнаружены.

  • updatable_views_with_limit

    Формат командной строки --updatable-views-with-limit[={OFF|ON}]
    Системная переменная updatable_views_with_limit
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Булево
    Значение по умолчанию 1

    Эта переменная управляет возможностью обновления представления, когда представление не содержит все столбцы первичного ключа, определенного в базовой таблице, если оператор обновления содержит предложение LIMIT. (Такие обновления часто генерируются инструментами графического интерфейса). Обновление — это оператор UPDATE или DELETE. Первичный ключ здесь означает PRIMARY KEY или индекс UNIQUE, в котором ни один столбец не может содержать NULL.

    Переменная может принимать два значения:

    • 1 или YES: Выдавать только предупреждение (не сообщение об ошибке). Это значение по умолчанию.

    • 0 или NO: Запретить обновление.

  • use_secondary_engine

    Системная переменная use_secondary_engine
    Область действия Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Перечисление
    Значение по умолчанию ON
    Допустимые значения

    OFF

    ON

    FORCED

    Для будущих применений.

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

    Для использования с HeatWave. Смотрите Руководство пользователя HeatWave.

  • validate_password.xxx

    Компонент validate_password реализует набор системных переменных с именами в формате validate_password.xxx. Эти переменные влияют на тестирование паролей этим компонентом; см. Раздел 8.4.3.2, «Параметры и переменные проверки паролей».

  • version

    Номер версии сервера. Значение также может включать суффикс, указывающий информацию о сборке или конфигурации сервера. -debug указывает, что сервер был собран с включенной поддержкой отладки.

  • version_comment

    Переменная системы version_comment
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Строка

    Программа конфигурации CMake имеет опцию COMPILATION_COMMENT_SERVER, которая позволяет указать комментарий при построении MySQL. Эта переменная содержит значение этого комментария.

  • version_compile_machine

    Переменная системы version_compile_machine
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Строка

    Тип двоичного файла сервера.

  • version_compile_os

    Переменная системы version_compile_os
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Строка

    Тип операционной системы, на которой был построен MySQL.

  • version_compile_zlib

    Переменная системы version_compile_zlib
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Строка

    Версия подключенной библиотеки zlib.

  • wait_timeout

    Формат командной строки --wait-timeout=#
    Переменная системы wait_timeout
    Область Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 28800
    Минимальное значение 1
    Максимальное значение (Windows) 2147483
    Максимальное значение (Другие) 31536000
    Единица измерения секунды

    Количество секунд, в течение которого сервер ожидает активности по неинтерактивному соединению перед его закрытием.

    При запуске потока значение сессии wait_timeout инициализируется из глобального значения wait_timeout или глобального значения interactive_timeout, в зависимости от типа клиента (как определено параметром подключения CLIENT_INTERACTIVE ). См. также interactive_timeout.

  • warning_count

    Количество ошибок, предупреждений и заметок, возникших в результате последнего оператора, сгенерировавшего сообщения. Эта переменная только для чтения. См. Раздел 15.7.7.42, “Выполнение команды SHOW WARNINGS”.

  • windowing_use_high_precision

    Формат командной строки --windowing-use-high-precision[={OFF|ON}]
    Переменная системы windowing_use_high_precision
    Область Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется ли подсказка Да
    Тип Булево
    Значение по умолчанию ON

    Вычислять ли операции с окнами без потери точности. См. Раздел 10.2.1.21, “Оптимизация функций окон”.

  • xa_detach_on_prepare

    Формат командной строки --xa-detach-on-prepare[={OFF|ON}]
    Переменная системы xa_detach_on_prepare
    Область Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    При установке в значение ON (включено), все транзакции XA отделяются (отключаются) от подключения (сессии) как часть XA PREPARE. Это означает, что транзакция XA может быть подтверждена или отменена другим подключением, даже если исходное подключение не завершено, и это подключение может начать новые транзакции.

    Временные таблицы не могут быть использованы внутри отсоединённых транзакций XA.

    Когда это OFF (выключено), транзакция XA строго связана с тем же подключением до отключения сессии. Рекомендуется разрешить её включение (по умолчанию) для репликации.

    Дополнительную информацию см. в Разделе 15.3.8.2, “Состояния транзакций XA”.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/server-system-variables.html

Spec-Zone.ru

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