Spec-Zone.ru › MySQL 5.7

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

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

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

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

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

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

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

Этот раздел содержит описание каждой переменной системы. Для сводной таблицы переменных системы см. раздел 5.1.4 «Справочник по переменным системы сервера». Дополнительную информацию об управлении переменными системы см. в разделе 5.1.8 «Использование переменных системы».

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

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

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

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

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

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

  • Информация о переменных системы сервера, специфичных для репликации, доступна в разделе 16.1.6 «Параметры и переменные репликации и двоичного журналирования».

Примечание

Некоторые из следующих описаний переменных относятся к “включению” или “выключению” переменной. Эти переменные можно включить оператором SET, установив их значение в ON или 1, или выключить, установив их значение в OFF или 0. Переменные булевого типа можно установить при запуске в значения ON, TRUE, OFF и FALSE (регистр не имеет значения), а также 1 и 0. См. раздел 4.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. Если значение — абсолютное имя пути, его расположение указано именем пути.

  • authentication_windows_log_level

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

    Эта переменная доступна только в том случае, если плагин аутентификации Windows authentication_windows включен и включен отладочный код. См. Раздел 6.4.1.8, «Подключаемая аутентификация 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
    Область действия Глобальная
    Динамическая Нет
    Тип Булево
    Значение по умолчанию ON

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

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

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

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

  • autocommit

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

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

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

    [mysqld]
    autocommit=0
    
  • automatic_sp_privileges

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

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

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

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

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

  • auto_generate_certs

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

    Эта переменная доступна, если сервер был скомпилирован с использованием OpenSSL (см. Раздел 6.3.4, «Возможности, зависящие от библиотеки SSL»). Она контролирует, будет ли сервер автоматически генерировать файлы ключей и сертификатов SSL в каталоге данных, если они ещё не существуют.

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

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

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

  • avoid_temporal_upgrade

    Формат командной строки --avoid-temporal-upgrade[={OFF|ON}]
    Устаревший Да
    Системная переменная avoid_temporal_upgrade
    Область действия Глобальная
    Динамический Да
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная управляет тем, будет ли ALTER TABLE неявно обновлять временные столбцы, обнаруженные в формате до 5.6.4 (TIME, DATETIME и TIMESTAMP столбцы без поддержки точности дробной секунды). Для обновления таких столбцов требуется перестроение таблицы, что предотвращает использование быстрых изменений, которые могли бы применяться к операции.

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

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

  • back_log

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

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

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

    Значение по умолчанию основано на следующей формуле, ограниченной значением 900:

    50 + (max_connections / 5)
    
  • basedir

    Формат командной строки --basedir=dir_name
    Системная переменная basedir
    Область действия Глобальная
    Динамический Нет
    Тип Имя каталога
    Значение по умолчанию configuration-dependent default

    Путь к каталогу установки MySQL.

  • big_tables

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

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

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

  • bind_address

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

    Сервер MySQL прослушивает один сетевой сокет для подключений TCP/IP. Этот сокет привязан к одному адресу, но возможно, что адрес отображается на нескольких сетевых интерфейсах. Чтобы указать адрес, задайте bind_address=addr при запуске сервера, где addr — IPv4 или IPv6-адрес или имя хоста. Если addr — имя хоста, сервер разрешает имя в IP-адрес и привязывается к этому адресу. Если имя хоста разрешается в несколько IP-адресов, сервер использует первый IPv4-адрес, если таковой имеется, или первый IPv6-адрес в противном случае.

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

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

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

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

    • Если адрес — IPv4-адрес, отображаемый в виде IPv4, сервер принимает подключения 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-адреса.

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

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

    Эта переменная не влияет на встроенный сервер (libmysqld) и не отображается в нём.

  • block_encryption_mode

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

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

    block_encryption_mode принимает значение в формате aes-keylen-mode, где keylen — это длина ключа в битах, а mode — режим шифрования. Регистр значения не имеет значения. Допустимые значения keylen — 128, 192 и 256. Допустимые режимы шифрования зависят от того, компилировался ли MySQL с использованием OpenSSL или yaSSL:

    • Для OpenSSL допустимые значения mode: ECB, CBC, CFB1, CFB8, CFB128, OFB

    • Для yaSSL допустимые значения mode: ECB, CBC

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

    SET block_encryption_mode = 'aes-256-cbc';
    

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

  • bulk_insert_buffer_size

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

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

  • character_set_client

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

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

    • Клиент запрашивает кодировку, неизвестную серверу. Например, клиент с поддержкой японского языка запрашивает sjis при подключении к серверу, не настроенному на поддержку sjis.

    • Клиент использует версию MySQL, более старую, чем MySQL 4.1, и поэтому не запрашивает кодировку.

    • mysqld был запущен с параметром --skip-character-set-client-handshake, который заставляет его игнорировать конфигурацию кодировки клиента. Это воспроизводит поведение MySQL 4.0 и полезно, если вы хотите обновить сервер, не обновляя все клиенты.

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

  • character_set_connection

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

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

  • character_set_database

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

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

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

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

  • character_set_filesystem

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

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

  • character_set_results

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

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

  • character_set_server

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

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

  • character_set_system

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

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

  • character_sets_dir

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

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

  • check_proxy_users

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

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

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

    • Для плагина mysql_native_password, включите mysql_native_password_proxy_users.

    • Для плагина sha256_password, включите sha256_password_proxy_users.

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

  • collation_connection

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

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

  • collation_database

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

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

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

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

  • collation_server

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

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

  • completion_type

    Формат командной строки --completion-type=#
    Системная переменная completion_type
    Область действия Глобальная, Сеансовая
    Динамическая Да
    Тип Перечисление
    Значение по умолчанию 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. Она не применяется к неявным подтверждениям, возникающим в результате выполнения операторов, перечисленных в разделе 13.3.3 «Операторы, вызывающие неявное подтверждение». Она также не применяется к XA COMMIT, XA ROLLBACK, или когда autocommit=1.

  • concurrent_insert

    Формат командной строки --concurrent-insert[=value]
    Системная переменная concurrent_insert
    Область действия Глобальная
    Динамическая Да
    Тип Перечисление
    Значение по умолчанию 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.

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

  • connect_timeout

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

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

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

  • core_file

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

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

  • datadir

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

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

  • date_format

    Эта переменная не используется. Она устарела и удалена в MySQL 8.0.

  • datetime_format

    Эта переменная не используется. Она устарела и удалена в MySQL 8.0.

  • debug

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

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

    Установка сеансового значения этой переменной системы — ограниченная операция. Сеансовый пользователь должен иметь достаточные привилегии для установки ограниченных сеансовых переменных. См. Раздел 5.1.8.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       |
    +---------+
    

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

  • debug_sync

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

    Эта переменная — интерфейс к модулю 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 становится значением таймаута по умолчанию для отдельных точек синхронизации.

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

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

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

  • default_authentication_plugin

    Формат командной строки --default-authentication-plugin=plugin_name
    Переменная системы default_authentication_plugin
    Область действия Глобальная
    Динамическая Нет
    Тип Перечисление
    Значение по умолчанию mysql_native_password
    Допустимые значения

    mysql_native_password

    sha256_password

    Плагин аутентификации по умолчанию. Разрешены следующие значения:

    • mysql_native_password: Использование собственных паролей MySQL; см. Раздел 6.4.1.1, «Собственная подключаемая аутентификация».

    • sha256_password: Использование паролей SHA-256; см. Раздел 6.4.1.5, «Подключаемая аутентификация SHA-256».

    Примечание

    Если эта переменная имеет значение, отличное от mysql_native_password, клиенты, более старые, чем MySQL 5.5.7, не смогут подключиться, поскольку из разрешённых плагинов аутентификации по умолчанию они понимают только протокол аутентификации mysql_native_password.

    Значение default_authentication_plugin влияет на следующие аспекты работы сервера:

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

    • Переменная системы old_passwords влияет на хеширование паролей для учетных записей, использующих плагины аутентификации mysql_native_password или sha256_password. Если плагин аутентификации по умолчанию — один из этих плагинов, сервер устанавливает old_passwords при запуске в соответствии с методом хеширования паролей плагина.

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

      CREATE USER ... IDENTIFIED BY 'cleartext password';
      GRANT ...  IDENTIFIED BY 'cleartext password';
      
    • Для учетной записи, созданной одним из следующих операторов, сервер ассоциирует учетную запись с плагином аутентификации по умолчанию и присваивает учетной записи данный хэш пароля, если хэш пароля имеет формат, требуемый плагином:

      CREATE USER ... IDENTIFIED BY PASSWORD 'encrypted password';
      GRANT ...  IDENTIFIED BY PASSWORD 'encrypted password';
      

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

  • default_password_lifetime

    Формат командной строки --default-password-lifetime=#
    Переменная системы default_password_lifetime
    Область действия Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию (≥ 5.7.11) 0
    Значение по умолчанию (≤ 5.7.10) 360
    Минимальное значение 0
    Максимальное значение 65535
    Единица измерения дней

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

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

    Примечание

    До версии MySQL 5.7.11 значение по умолчанию default_password_lifetime равно 360 (пароли необходимо менять примерно раз в год). Для этих версий обратите внимание, что если вы не измените переменную default_password_lifetime или учетные записи пользователей, все пароли пользователей истекут через 360 дней, и все учетные записи пользователей начнут работать в ограниченном режиме, когда это произойдет. Клиенты (которые фактически являются пользователями), подключающиеся к серверу, получат ошибку, указывающую, что пароль необходимо изменить: ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

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

    ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER;
    

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

  • default_storage_engine

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

    По умолчанию движок хранения для таблиц. См. Главу 15, Альтернативные движки хранения. Эта переменная устанавливает движок хранения только для постоянных таблиц. Чтобы установить движок хранения для TEMPORARY таблиц, установите переменную системы default_tmp_storage_engine.

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

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

  • default_tmp_storage_engine

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

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

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

  • default_week_format

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

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

  • delay_key_write

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

    OFF

    ON

    ALL

    Эта переменная определяет, как использовать отложенные записи ключей. Она применяется только к MyISAM таблицам. Отложенные записи ключей приводят к тому, что буферы ключей не сбрасываются между записями. См. также Раздел 15.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'). См. Раздел 5.1.7, “Переменные системы сервера” и Раздел 15.2.1, “Параметры запуска MyISAM”.

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

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

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

  • delayed_insert_limit

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

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

  • delayed_insert_timeout

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

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

  • delayed_queue_size

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

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

  • disabled_storage_engines

    Формат командной строки --disabled-storage-engines=engine[,engine]...
    Системная переменная disabled_storage_engines
    Область действия Глобальная
    Динамическая Нет
    Тип Строка
    Значение по умолчанию 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 отключена и не оказывает никакого влияния, если сервер запущен с любой из этих опций: --bootstrap, --initialize, --initialize-insecure, --skip-grant-tables.

    Примечание

    Установка disabled_storage_engines может вызвать проблему с mysql_upgrade. Подробности см. в Разделе 4.4.7, «mysql_upgrade — Проверка и обновление таблиц MySQL».

  • disconnect_on_expired_password

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

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

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

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

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

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

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

  • div_precision_increment

    Формат командной строки --div-precision-increment=#
    Системная переменная div_precision_increment
    Область действия Глобальная, сеанс
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 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 |
    +----------------+
    
  • end_markers_in_json

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

    Добавлять ли концевые маркеры в JSON-выход оптимизатора. См. MySQL Internals: The end_markers_in_json System Variable.

  • eq_range_index_dive_limit

    Формат командной строки --eq-range-index-dive-limit=#
    Системная переменная eq_range_index_dive_limit
    Область Глобальная, Сеанс
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 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

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

  • event_scheduler

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

    OFF

    ON

    DISABLED

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

  • explicit_defaults_for_timestamp

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

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

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

    • Столбцы TIMESTAMP, которые не объявлены явно с атрибутом NULL, автоматически объявляются с атрибутом NOT NULL. Присвоение такому столбцу значения 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. См. Раздел 5.1.10, «Режимы 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 больше не будет иметь никакого назначения, и её можно ожидать удаления.

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

  • external_user

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

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

  • flush

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

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

    Примечание

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

  • flush_time

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

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

    Примечание

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

  • foreign_key_checks

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

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

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

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

    Примечание

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

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

  • ft_boolean_syntax

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

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

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

    • Функция оператора определяется его позицией в строке.

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

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

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

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

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

  • ft_max_word_len

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

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

    Примечание

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

  • ft_min_word_len

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

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

    Примечание

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

  • ft_query_expansion_limit

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

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

  • ft_stopword_file

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

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

    Примечание

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

  • general_log

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

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

  • general_log_file

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

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

  • group_concat_max_len

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

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

  • have_compress

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

  • have_crypt

    YES если системный вызов crypt() доступен серверу, NO если нет. Если нет, функцию ENCRYPT() использовать нельзя.

    Примечание

    Функция ENCRYPT() устарела в MySQL 5.7, будет удалена в будущей версии MySQL и больше не должна использоваться. (Для одностороннего хеширования рассмотрите возможность использования SHA2() вместо этого.) Следовательно, have_crypt также устарела; ожидайте, что она будет удалена в будущей версии.

  • have_dynamic_loading

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

  • have_geometry

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

  • have_openssl

    Эта переменная является синонимом для have_ssl.

  • have_profiling

    YES если доступна возможность профилирования операторов, NO если нет. Если доступна, системная переменная profiling управляет тем, включена ли эта возможность или отключена. См. Раздел 13.7.5.31, «Оператор SHOW PROFILES».

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

  • have_query_cache

    YES если mysqld поддерживает кэш запросов, NO если нет.

    Примечание

    Кэш запросов устарел начиная с MySQL 5.7.20 и удален в MySQL 8.0. Устаревание включает have_query_cache.

  • have_rtree_keys

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

  • have_ssl

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

    YES (доступна поддержка SSL)

    DISABLED (поддержка SSL была скомпилирована в сервер, но сервер не был запущен с необходимыми параметрами для его включения)

    YES если mysqld поддерживает SSL-подключения, DISABLED если сервер был скомпилирован с поддержкой SSL, но не был запущен с соответствующими параметрами шифрования соединения. Для получения дополнительной информации см. Раздел 2.8.6, «Настройка поддержки библиотеки SSL».

  • have_statement_timeout

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

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

  • have_symlink

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

    Эта переменная не имеет значения в Windows.

  • host_cache_size

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

    Сервер MySQL поддерживает кэш хостов в оперативной памяти, содержащий информацию о имени и IP-адресе клиента, и используется для избежания запросов к DNS (Domain Name System); см. Раздел 5.1.11.2, «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.

    Использование параметра --skip-host-cache аналогично установке переменной системы host_cache_size в 0, но host_cache_size более гибкая, потому что она также может использоваться для изменения размера, включения и выключения кэша хостов во время выполнения, а не только при запуске сервера.

    Запуск сервера с --skip-host-cache не предотвращает изменения во время выполнения значения host_cache_size, но такие изменения не имеют эффекта, и кэш не включается даже если host_cache_size установлено больше нуля.

    Установка переменной host_cache_size вместо параметра --skip-host-cache предпочтительнее по причинам, изложенным в предыдущем абзаце. Кроме того, параметр --skip-host-cache устарел в MySQL 8.0, и его удаление ожидается в будущей версии MySQL.

  • hostname

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

    Сервер устанавливает эту переменную в имя хоста сервера при запуске.

  • identity

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

  • ignore_db_dirs

    Устаревший 5.7.16
    Переменная системы ignore_db_dirs
    Область действия Глобальная
    Динамическая Нет
    Тип Строка

    Список имён, разделённых запятыми, которые не рассматриваются как каталоги баз данных в каталоге данных. Значение устанавливается из всех экземпляров --ignore-db-dir, заданных при запуске сервера.

    Начиная с MySQL 5.7.11, --ignore-db-dir можно использовать во время инициализации каталога данных с помощью mysqld --initialize для указания каталогов, которые сервер должен игнорировать для определения того, считается ли существующий каталог данных пустым. См. Раздел 2.9.1, «Инициализация каталога данных».

    Эта переменная системы устарела в MySQL 5.7. С появлением словаря данных в MySQL 8.0 она стала излишней и была удалена в этой версии.

  • init_connect

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

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

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

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

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

  • interactive_timeout

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

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

  • internal_tmp_disk_storage_engine

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

    MYISAM

    INNODB

    Движок хранения для временных внутренних таблиц на диске (см. Раздел 8.4.4, «Использование внутренних временных таблиц в MySQL»). Разрешенные значения — MYISAM и INNODB (по умолчанию).

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

    При использовании internal_tmp_disk_storage_engine=INNODB (по умолчанию), запросы, которые генерируют временные внутренние таблицы на диске, превышающие InnoDB ограничения по строкам или столбцам, возвращают ошибки Размер строки слишком большой или Слишком много столбцов. Решение — установить internal_tmp_disk_storage_engine на значение MYISAM.

  • join_buffer_size

    Формат командной строки --join-buffer-size=#
    Переменная системы join_buffer_size
    Область действия Глобальная, сеанс
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 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 перед сохранением значения переменной системы. Парсер допускает значения до максимального беззнакового целого значения для платформы (4294967295 или 232−1 для 32-битной системы, 18446744073709551615 или 264−1 для 64-битной системы), но фактическая максимальная величина ограничена размером блока.

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

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

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

    Дополнительную информацию об объединении буферов см. в Разделе 8.2.1.6, «Алгоритмы объединения Nested-Loop». Информацию об обработке Batched Key Access см. в Разделе 8.2.1.11, «Объединения Block Nested-Loop и Batched Key Access».

  • keep_files_on_create

    Формат командной строки --keep-files-on-create[={OFF|ON}]
    Переменная системы keep_files_on_create
    Область действия Глобальная, сеанс
    Динамическая Да
    Тип Булево
    Значение по умолчанию 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
    Область действия Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 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. См. Раздел 8.2.4.1, «Оптимизация инструкций INSERT».

    Вы можете проверить производительность буфера ключей, выполнив инструкцию SHOW STATUS и изучив переменные состояния Key_read_requests, Key_reads, Key_write_requests и Key_writes. (См. Раздел 13.7.5, «Команды 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 ГБ относится к каждому кэшу отдельно, а не к группе. См. Раздел 8.10.2, «Кэш ключей MyISAM».

  • key_cache_age_threshold

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

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

  • key_cache_block_size

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

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

  • key_cache_division_limit

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

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

  • large_files_support

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

    Поддерживает ли mysqld опции поддержки больших файлов.

  • large_pages

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

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

  • large_page_size

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

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

  • last_insert_id

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

  • lc_messages

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

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

  • lc_messages_dir

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

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

  • lc_time_names

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

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

  • license

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

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

  • local_infile

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

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

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

  • lock_wait_timeout

    Формат командной строки --lock-wait-timeout=#
    Системная переменная lock_wait_timeout
    Область видимости Глобальная, Сессии
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 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 не применяется к отложенным вставкам, которые всегда выполняются с таймаутом в 1 год. Это делается для того, чтобы избежать ненужных таймаутов, поскольку сессия, которая выполняет отложенную вставку, не получает уведомления об истечении таймаута отложенной вставки.

  • locked_in_memory

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

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

  • log_error

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

    Назначение вывода лога ошибок. Если назначение — консоль, значение — stderr. В противном случае, назначение — файл, и значение log_error является именем файла. См. Раздел 5.4.2, «Лог ошибок».

  • log_error_verbosity

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

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

    Значение log_error_verbosity Допустимые сообщения
    1 Сообщения об ошибках
    2 Сообщения об ошибках и предупреждениях
    3 Сообщения об ошибках, предупреждениях и информации

    log_error_verbosity был добавлен в MySQL 5.7.2. Он предпочтительнее и должен использоваться вместо устаревшей переменной системы log_warnings. См. описание log_warnings для получения информации о том, как эта переменная связана с log_error_verbosity. В частности, присвоение значения log_warnings приводит к присвоению значения log_error_verbosity и наоборот.

  • log_output

    Формат командной строки --log-output=name
    Переменная системы log_output
    Область действия Глобальная
    Динамическая Да
    Тип Множество
    Значение по умолчанию 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. Более подробная информация представлена в Разделе 5.4.1, «Выбор мест назначения для лога запросов и лога медленных запросов».

  • log_queries_not_using_indexes

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

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

  • log_slow_admin_statements

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

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

  • log_syslog

    Формат командной строки --log-syslog[={OFF|ON}]
    Переменная системы log_syslog
    Область действия Глобальная
    Динамическая Да
    Тип Булево
    Значение по умолчанию (Unix) OFF
    Значение по умолчанию (Windows) ON

    Записывать ли вывод лога ошибок в системный лог. На Windows это журнал событий, а на Unix и Unix-подобных системах — syslog. Значение по умолчанию зависит от платформы:

    • На Windows вывод в журнал событий включен по умолчанию.

    • На Unix и Unix-подобных системах вывод в syslog выключен по умолчанию.

    Независимо от значения по умолчанию, log_syslog можно явно установить для управления выводом на любой поддерживаемой платформе.

    Управление выводом в системный лог отличается от отправки вывода ошибок в файл или на консоль. Вывод ошибок можно направлять в файл или на консоль дополнительно к или вместо системного лога по желанию. См. Раздел 5.4.2, «Лог ошибок».

  • log_syslog_facility

    Формат командной строки --log-syslog-facility=value
    Переменная системы log_syslog_facility
    Область действия Глобальная
    Динамическая Да
    Тип Строка
    Значение по умолчанию daemon

    Уровень журнала ошибок, записываемый в syslog (какой тип программы отправляет сообщение). Эта переменная не работает, если переменная системы log_syslog не включена. См. Раздел 5.4.2.3, «Журналирование ошибок в системный журнал».

    Допустимые значения могут варьироваться в зависимости от операционной системы; обратитесь к документации вашей системы syslog.

    Эта переменная отсутствует в Windows.

  • log_syslog_include_pid

    Формат командной строки --log-syslog-include-pid[={OFF|ON}]
    Переменная системы log_syslog_include_pid
    Область действия Глобальная
    Динамическая Да
    Тип Булево
    Значение по умолчанию ON

    Включать ли идентификатор процесса сервера в каждой строке журнала ошибок, записываемой в syslog. Эта переменная не работает, если переменная системы log_syslog не включена. См. Раздел 5.4.2.3, «Журналирование ошибок в системный журнал».

    Эта переменная отсутствует в Windows.

  • log_syslog_tag

    Формат командной строки --log-syslog-tag=tag
    Переменная системы log_syslog_tag
    Область действия Глобальная
    Динамическая Да
    Тип Строка
    Значение по умолчанию empty string

    Тег, добавляемый к идентификатору сервера в журнале ошибок, записываемом в syslog. Эта переменная не работает, если переменная системы log_syslog не включена. См. Раздел 5.4.2.3, «Журналирование ошибок в системный журнал».

    По умолчанию идентификатор сервера — mysqld без тега. Если задано значение тега tag, оно добавляется к идентификатору сервера с ведущим дефисом, что приводит к идентификатору mysqld-tag.

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

  • log_timestamps

    Формат командной строки --log-timestamps=#
    Переменная системы log_timestamps
    Область действия Глобальная
    Динамическая Да
    Тип Перечисление
    Значение по умолчанию 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
    Область действия Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295

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

  • log_warnings

    Формат командной строки --log-warnings[=#]
    Устаревший Да
    Системная переменная log_warnings
    Область действия Глобальная
    Динамический Да
    Тип Целое число
    Значение по умолчанию 2
    Минимальное значение 0
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295

    Определяет, будут ли генерироваться дополнительные сообщения об ошибках в журнал ошибок. Начиная с MySQL 5.7.2, элементы информации, ранее управляемые log_warnings, управляются log_error_verbosity, что предпочтительнее и должно использоваться вместо устаревшей переменной log_warnings. (Переменная log_warnings и опция командной строки --log-warnings устарели; ожидается их удаление в будущих релизах MySQL.)

    log_warnings включена по умолчанию (по умолчанию значение 1 до MySQL 5.7.2, 2 начиная с 5.7.2). Чтобы отключить, установите значение в 0. Если значение больше 0, сервер записывает сообщения о операторах, которые небезопасны для журналирования на основе операторов. Если значение больше 1, сервер записывает прерванные соединения и ошибки доступа по попыткам новых подключений. См. Раздел B.3.2.9, «Ошибки связи и прерванные соединения».

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

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

    Назначение значения переменной log_warnings приводит к назначению значения log_error_verbosity и наоборот. Переменные связаны следующим образом:

    • Подавление всех элементов log_warnings, достигаемое с помощью log_warnings=0, достигается с помощью log_error_verbosity=1 (только ошибки).

    • Элементы, выводимые для log_warnings=1 или выше, считаются предупреждениями и выводятся для log_error_verbosity=2 или выше.

    • Элементы, выводимые для log_warnings=2, считаются заметками и выводятся для log_error_verbosity=3.

    Начиная с MySQL 5.7.2, уровень ведения журнала по умолчанию контролируется log_error_verbosity, значение которого по умолчанию 3. Кроме того, значение по умолчанию для log_warnings изменяется с 1 на 2, что соответствует значению log_error_verbosity=3. Чтобы достичь уровня ведения журнала, аналогичного предыдущему значению по умолчанию, установите значение log_error_verbosity=2.

    В MySQL 5.7.2 и выше использование log_warnings по-прежнему разрешено, но сопоставляется с использованием log_error_verbosity следующим образом:

    • Установка log_warnings=0 эквивалентна log_error_verbosity=1 (только ошибки).

    • Установка log_warnings=1 эквивалентна log_error_verbosity=2 (ошибки, предупреждения).

    • Установка log_warnings=2 (или выше) эквивалентна log_error_verbosity=3 (ошибки, предупреждения, заметки), и сервер устанавливает log_warnings в 2, если указано большее значение.

  • long_query_time

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

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

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

  • low_priority_updates

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

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

  • lower_case_file_system

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

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

  • lower_case_table_names

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

    Если установлено в 0, имена таблиц хранятся в указанном виде, а сравнения чувствительны к регистру. Если установлено в 1, имена таблиц хранятся в нижнем регистре на диске, а сравнения нечувствительны к регистру. Если установлено в 2, имена таблиц хранятся в исходном виде, но сравниваются в нижнем регистре. Этот параметр также применяется к именам баз данных и псевдонимам таблиц. Дополнительные сведения см. в разделе 9.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 на файловой системе, нечувствительной к регистру, будет выведено сообщение об ошибке, и сервер завершит работу.

    Настройка этой переменной влияет на поведение опций фильтрации репликации относительно чувствительности к регистру. Более подробная информация приведена в разделе 16.2.5 «Как серверы оценивают правила фильтрации репликации».

  • max_allowed_packet

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

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

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

    Необходимо увеличить это значение, если вы используете большие столбцы BLOB или длинные строки. Оно должно быть таким же большим, как и самый большой BLOB используемый вами. Предельное значение протокола для max_allowed_packet равно 1 ГБ. Значение должно быть кратно 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
    Область действия Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 100
    Минимальное значение 1
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295

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

  • max_connections

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

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

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

  • max_delayed_threads

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

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

  • max_digest_length

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

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

    Длина, используемая для вычисления нормализованного дайджеста оператора, равна сумме длины нормализованного дайджеста и длины дайджеста оператора. Поскольку длина дайджеста оператора всегда равна 64, когда значение max_digest_length равно 1024 (значение по умолчанию), максимальная длина нормализованного SQL-оператора перед усечением составляет 1024 - 64 = 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, усекаются по отношению к исходным значениям дайджестов.

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

  • max_error_count

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

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

  • max_execution_time

    Формат командной строки --max-execution-time=#
    Переменная системы max_execution_time
    Область действия Глобальная, Сессия
    Динамическая Да
    Тип Целое
    Значение по умолчанию 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_join_size

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

    Не допускайте операторы, которым, вероятно, потребуется обработать более чем max_join_size строк (для операторов с одной таблицей) или комбинаций строк (для операторов с несколькими таблицами), или которые, вероятно, выполнят более чем max_join_size обращений к диску. Установив это значение, вы можете обнаружить операторы, в которых ключи используются неправильно и которые, вероятно, займут много времени. Установите его, если ваши пользователи склонны выполнять соединения, которым не хватает предложения WHERE, которые занимают много времени или возвращают миллионы строк. Для получения дополнительной информации см. Использование безопасного режима обновлений (--safe-updates).

    Установка этой переменной в значение, отличное от 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
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 4
    Максимальное значение 8388608
    Единица измерения байты

    Пороговое значение размера значений индекса, определяющее, какой алгоритм filesort использовать. См. Раздел 8.2.1.14, «Оптимизация ORDER BY».

  • max_points_in_geometry

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

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

  • max_prepared_stmt_count

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

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

  • max_seeks_for_key

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

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

  • max_sort_length

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

    Количество байтов для использования при сортировке значений данных. Сервер использует только первые max_sort_length байта каждого значения и игнорирует остальные. Следовательно, значения, которые отличаются только после первых max_sort_length байтов, сравниваются как равные для операций GROUP BY, ORDER BY и DISTINCT.

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

  • max_sp_recursion_depth

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

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

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

  • max_tmp_tables

    Эта переменная не используется. Она устарела и удалена в MySQL 8.0.

  • max_user_connections

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

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

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

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

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

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

  • max_write_lock_count

    Формат командной строки --max-write-lock-count=#
    Системная переменная max_write_lock_count
    Область видимости Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию (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
    Область видимости Глобальная
    Динамическая Нет
    Тип Имя файла

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

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

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

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

  • metadata_locks_cache_size

    Формат командной строки --metadata-locks-cache-size=#
    Устарело Да
    Системная переменная metadata_locks_cache_size
    Область видимости Глобальная
    Динамическая Нет
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 1
    Максимальное значение 1048576
    Единица измерения байты

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

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

  • metadata_locks_hash_instances

    Формат командной строки --metadata-locks-hash-instances=#
    Устарело Да
    Системная переменная metadata_locks_hash_instances
    Область видимости Глобальная
    Динамическая Нет
    Тип Целое число
    Значение по умолчанию 8
    Минимальное значение 1
    Максимальное значение 1024

    Набор блокировок метаданных может быть разделен на отдельные хэши, чтобы позволить подключениям, обращающимся к различным объектам, использовать различные хэши блокировки и уменьшить конкуренцию. Системная переменная metadata_locks_hash_instances указывает количество хэшей (по умолчанию 8).

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

  • min_examined_row_limit

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

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

  • multi_range_count

    Формат командной строки --multi-range-count=#
    Устарело Да
    Системная переменная multi_range_count
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 256
    Минимальное значение 1
    Максимальное значение 4294967295

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

  • myisam_data_pointer_size

    Формат командной строки --myisam-data-pointer-size=#
    Системная переменная myisam_data_pointer_size
    Область видимости Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 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
    Область действия Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию (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
    Область действия Глобальная
    Динамическая Нет
    Тип Целое число
    Значение по умолчанию (64-битные платформы) 18446744073709551615
    Значение по умолчанию (32-битные платформы) 4294967295
    Минимальное значение 7
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единицы измерения байты

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

  • myisam_recover_options

    Формат командной строки --myisam-recover-options[=list]
    Системная переменная myisam_recover_options
    Область действия Глобальная
    Динамическая Нет
    Тип Перечисление
    Значение по умолчанию 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. Это принудительно выполняет восстановление таблицы даже если будут удалены некоторые строки, но сохраняет старый файл данных как резервную копию, чтобы вы могли позже проверить, что произошло.

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

  • myisam_repair_threads

    Формат командной строки --myisam-repair-threads=#
    Устаревший 5.7.38 (удалено в 5.7.39)
    Системная переменная myisam_repair_threads
    Область действия Глобальная, сессия
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Примечание

    Эта системная переменная устарела в MySQL 5.7; ожидается её удаление в будущей версии MySQL.

    Начиная с MySQL 5.7.38, значения, отличные от 1, выдают предупреждение.

    Если это значение больше 1, индексы таблицы MyISAM создаются параллельно (каждый индекс в отдельном потоке) во время процесса Repair by sorting. Значение по умолчанию — 1.

    Примечание

    Многопоточная проверка — код бета-качества.

  • myisam_sort_buffer_size

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

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

  • myisam_stats_method

    Формат командной строки --myisam-stats-method=name
    Системная переменная myisam_stats_method
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Перечисление
    Значение по умолчанию 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 игнорируются.

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

  • myisam_use_mmap

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

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

  • mysql_native_password_proxy_users

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

    Эта переменная управляет тем, поддерживает ли встроенный плагин аутентификации mysql_native_password пользователей-посредников. Она не оказывает влияния, если системная переменная check_proxy_users не включена. Для получения информации о посредничестве пользователей, см. Раздел 6.2.14, «Пользователи-посредники».

  • named_pipe

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

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

  • named_pipe_full_access_group

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

    empty string

    valid Windows local group name

    *everyone*

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

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

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

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

  • net_buffer_length

    Формат командной строки --net-buffer-length=#
    Системная переменная net_buffer_length
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 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
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 30
    Минимальное значение 1
    Максимальное значение 31536000
    Единица измерения секунды

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

  • net_retry_count

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

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

  • net_write_timeout

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

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

  • new

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

    Эта переменная использовалась в MySQL 4.0 для включения некоторых функций 4.1 и сохранена для обратной совместимости. Ее значение всегда OFF.

    В кластере NDB, установка этой переменной в ON позволяет использовать типы разбиения, отличные от KEY или LINEAR KEY с таблицами NDB. Эта экспериментальная функция не поддерживается в рабочей среде, и теперь она устарела и может быть удалена в будущих версиях. Для получения дополнительной информации см. Пользовательское разбиение и движок хранилища NDB (NDB Cluster).

  • ngram_token_size

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

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

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

  • offline_mode

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

    Признак того, находится ли сервер в «режиме офлайн».

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

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

    • Потоки репликации разрешены для продолжения применения данных на сервер.

    Только пользователи с привилегией SUPER могут управлять режимом офлайн. Для перевода сервера в режим офлайн, измените значение системной переменной offline_mode с OFF на ON. Для возобновления нормальной работы, измените offline_mode с ON на OFF. В режиме офлайн клиенты, которым доступ закрыт, получат ошибку.

  • old

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

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

    При включении old, область действия подсказок индекса меняется на ту, что использовалась до MySQL 5.1.17. То есть, подсказки индекса без FOR условия применяются только к использованию индексов для извлечения строк, а не к разрешению ORDER BY или GROUP BY условий. (См. Раздел 8.9.4, «Подсказки индексов».) Будьте внимательны при включении в настройке репликации. При использовании двоичного протоколирования на основе инструкций, разное поведение у источника и реплик может привести к ошибкам репликации.

  • old_alter_table

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

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

  • old_passwords

    Формат командной строки --old-passwords=value
    Устарело Да
    Переменная системы old_passwords
    Область действия Глобальная, Сеанс
    Динамическая Да
    Тип Перечисление
    Значение по умолчанию 0
    Допустимые значения

    0

    2

    Примечание

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

    Эта переменная управляет методом хеширования паролей, используемым функцией PASSWORD(). Она также влияет на хеширование паролей, выполняемое инструкциями CREATE USER и GRANT, которые указывают пароль с помощью предложения IDENTIFIED BY.

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

    Метод хеширования паролей Значение old_passwords Плагин аутентификации
    Метод хеширования паролей MySQL 4.1 0 mysql_native_password
    Хеширование SHA-256 2 sha256_password

    Если вы установите old_passwords=2, следуйте инструкциям по использованию плагина sha256_password в разделе Раздел 6.4.1.5, “SHA-256 Pluggable Authentication”.

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

    Когда клиент успешно подключается к серверу, сервер устанавливает значение сеанса old_passwords соответствующим образом для метода аутентификации учетной записи. Например, если для учетной записи используется плагин аутентификации sha256_password, сервер устанавливает old_passwords=2.

    Дополнительную информацию о плагинах аутентификации и форматах хеширования см. в Раздел 6.2.13, “Плагины аутентификации” и Раздел 6.1.2.4, “Хеширование паролей в MySQL”.

  • open_files_limit

    Формат командной строки --open-files-limit=#
    Переменная системы open_files_limit
    Область действия Глобальная
    Динамическая Нет
    Тип Целое число
    Значение по умолчанию 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)

    • max_connections * 5

    • Предел операционной системы, если этот предел положителен, но не бесконечность.

    • Если предел операционной системы — бесконечность: значение open_files_limit, если оно указано при запуске, иначе 5000.

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

    Эффективное значение равно 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
    Область действия Глобальная, Сеанс
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 0
    Максимальное значение 1

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

  • optimizer_search_depth

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

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

  • optimizer_switch

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

    batched_key_access={on|off}

    block_nested_loop={on|off}

    condition_fanout_filter={on|off}

    derived_merge={on|off}

    duplicateweedout={on|off}

    engine_condition_pushdown={on|off}

    firstmatch={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}

    subquery_materialization_cost_based={on|off}

    use_index_extensions={on|off}

    Допустимые значения (≤ 5.7.32)

    batched_key_access={on|off}

    block_nested_loop={on|off}

    condition_fanout_filter={on|off}

    derived_merge={on|off}

    duplicateweedout={on|off}

    engine_condition_pushdown={on|off}

    firstmatch={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}

    semijoin={on|off}

    subquery_materialization_cost_based={on|off}

    use_index_extensions={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,
                        prefer_ordering_index=on
    

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

  • optimizer_trace

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

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

  • optimizer_trace_features

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

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

  • optimizer_trace_limit

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

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

  • optimizer_trace_max_mem_size

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

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

  • optimizer_trace_offset

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

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

  • performance_schema_xxx

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

  • parser_max_mem_size

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

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

  • pid_file

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

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

    Файл идентификатора процесса используется другими программами, такими как mysqld_safe, для определения идентификатора процесса сервера. В Windows эта переменная также влияет на имя файла журнала ошибок по умолчанию. См. Раздел 5.4.2, «Журнал ошибок».

  • plugin_dir

    Формат командной строки --plugin-dir=dir_name
    Системная переменная plugin_dir
    Область видимости Глобальная
    Динамическая Нет
    Тип Имя каталога
    Значение по умолчанию BASEDIR/lib/plugin

    Имя пути каталога плагинов.

    Если каталог плагинов доступен для записи сервером, пользователь может записать исполняемый код в файл в этом каталоге с помощью SELECT ... INTO DUMPFILE. Это можно предотвратить, сделав plugin_dir доступным только для чтения сервером или установив secure_file_priv в каталог, где записи SELECT могут быть выполнены безопасно.

  • port

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

    Номер порта, на котором сервер прослушивает TCP/IP-подключения. Эта переменная может быть установлена с помощью параметра --port.

  • preload_buffer_size

    Формат командной строки --preload-buffer-size=#
    Системная переменная preload_buffer_size
    Область видимости Глобальная, Сессия
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 32768
    Минимальное значение 1024
    Максимальное значение 1073741824
    Единица измерения байты

    Размер буфера, который выделяется при предварительной загрузке индексов.

  • profiling

    Если установлено в 0 или OFF (значение по умолчанию), профилирование операторов отключено. Если установлено в 1 или ON, профилирование операторов включено, и операторы SHOW PROFILE и SHOW PROFILES обеспечивают доступ к информации о профилировании. См. Раздел 13.7.5.31, «Оператор SHOW PROFILES».

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

  • profiling_history_size

    Количество операторов, для которых следует сохранять информацию о профилировании, если включен profiling. Значение по умолчанию — 15. Максимальное значение — 100. Установка значения 0 фактически отключает профилирование. См. Раздел 13.7.5.31, «Оператор SHOW PROFILES».

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

  • protocol_version

    Системная переменная protocol_version
    Область видимости Глобальная
    Динамическая Нет
    Тип Целое число
    Значение по умолчанию 10
    Минимальное значение 0
    Максимальное значение 4294967295

    Версия протокола клиент/сервер, используемая сервером MySQL.

  • proxy_user

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

    Если текущий клиент является прокси для другого пользователя, эта переменная — имя учетной записи пользователя-прокси. В противном случае эта переменная равна NULL. См. Раздел 6.2.14, «Пользователи-прокси».

  • pseudo_slave_mode

    Системная переменная pseudo_slave_mode
    Область видимости Сессия
    Динамическая Да
    Тип Логическое

    Эта системная переменная предназначена для внутреннего использования сервером. pseudo_slave_mode помогает в правильной обработке транзакций, которые были инициированы на более старых или более новых серверах, чем сервер, который обрабатывает их в данный момент. mysqlbinlog устанавливает значение pseudo_slave_mode в true перед выполнением любых операторов SQL.

    pseudo_slave_mode оказывает следующее влияние на обработку подготовленных транзакций XA, которые могут быть прикреплены к сессии обработки или откреплены от неё (по умолчанию, сессия, которая выдает XA START):

    • Если true, и сессия обработки выполнила оператор BINLOG внутреннего использования, транзакции XA автоматически открепляются от сессии, как только завершается первая часть транзакции до XA PREPARE, чтобы их можно было зафиксировать или отменить любой сессией, имеющей соответствующие права.

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

  • pseudo_thread_id

    Системная переменная pseudo_thread_id
    Область видимости Сессия
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 2147483647
    Минимальное значение 0
    Максимальное значение 2147483647

    Эта переменная предназначена для внутреннего использования сервером.

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

    Изменение значения сессии системной переменной pseudo_thread_id изменяет значение, возвращаемое функцией CONNECTION_ID().

  • query_alloc_block_size

    Формат командной строки --query-alloc-block-size=#
    Системная переменная query_alloc_block_size
    Область видимости Глобальная, Сессия
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 8192
    Минимальное значение 1024
    Максимальное значение 4294966272
    Единица измерения байты
    Размер блока 1024

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

    Размер блока для байтового числа равен 1024. Значение, которое не является точным кратным размеру блока, округляется сервером MySQL вниз до ближайшего меньшего кратного размеру блока перед сохранением значения для системной переменной. Парсер допускает значения вплоть до максимального значения беззнакового целого числа для платформы (4294967295 или 232−1 для 32-битной системы, 18446744073709551615 или 264−1 для 64-битной системы), но фактический максимум на размер блока меньше.

  • query_cache_limit

    Формат командной строки --query-cache-limit=#
    Устарело 5.7.20
    Переменная системы query_cache_limit
    Область действия Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 1048576
    Минимальное значение 0
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байты

    Не кэшировать результаты, превышающие это количество байт. Значение по умолчанию — 1 МБ.

    Примечание

    Кэш запросов устарел начиная с MySQL 5.7.20 и удалён в MySQL 8.0. Устаревание включает query_cache_limit.

  • query_cache_min_res_unit

    Формат командной строки --query-cache-min-res-unit=#
    Устарело 5.7.20
    Переменная системы query_cache_min_res_unit
    Область действия Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 4096
    Минимальное значение 512
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байты

    Минимальный размер (в байтах) блоков, выделяемых кэшем запросов. Значение по умолчанию — 4096 (4 КБ). Информация по настройке этой переменной приведена в разделе 8.10.3.3, «Настройка кэша запросов».

    Примечание

    Кэш запросов устарел начиная с MySQL 5.7.20 и удалён в MySQL 8.0. Устаревание включает query_cache_min_res_unit.

  • query_cache_size

    Формат командной строки --query-cache-size=#
    Устарело 5.7.20
    Переменная системы query_cache_size
    Область действия Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 1048576
    Минимальное значение 0
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байты

    Объём памяти, выделенной для кэширования результатов запросов. По умолчанию кэш запросов отключён. Это достигается с помощью значения по умолчанию 1 МБ и значения по умолчанию query_cache_type равного 0. (Чтобы значительно уменьшить накладные расходы, если вы задали размер 0, вы также должны запустить сервер с query_cache_type=0.)

    Допустимые значения — кратные 1024; другие значения округляются до ближайшего кратного. Для ненулевых значений query_cache_size выделяется указанное количество байтов памяти, даже если query_cache_type=0. Дополнительную информацию см. в разделе 8.10.3.3, «Настройка кэша запросов».

    Кэшу запросов требуется минимальный размер около 40 КБ для выделения его структур. (Точный размер зависит от архитектуры системы.) Если вы зададите слишком малое значение для query_cache_size, появится предупреждение, как описано в разделе 8.10.3.3, «Настройка кэша запросов».

    Примечание

    Кэш запросов устарел начиная с MySQL 5.7.20 и удалён в MySQL 8.0. Устаревание включает query_cache_size.

  • query_cache_type

    Формат командной строки --query-cache-type=#
    Устарело 5.7.20
    Переменная системы query_cache_type
    Область действия Глобальная, Сессия
    Динамическая Да
    Тип Перечисление
    Значение по умолчанию 0
    Допустимые значения

    0

    1

    2

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

    Вариант Описание
    0 или OFF Не кэшировать и не получать результаты из кэша запросов. Обратите внимание, что это не освобождает буфер кэша запросов. Для этого необходимо установить query_cache_size в 0.
    1 или ON Кэшировать все кэшируемые результаты запросов, кроме тех, которые начинаются с SELECT SQL_NO_CACHE.
    2 или DEMAND Кэшировать результаты только для кэшируемых запросов, начинающихся с SELECT SQL_CACHE.

    Эта переменная по умолчанию равна OFF.

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

    Примечание

    Кэш запросов устарел начиная с MySQL 5.7.20 и удалён в MySQL 8.0. Устаревание включает query_cache_type.

  • query_cache_wlock_invalidate

    Формат командной строки --query-cache-wlock-invalidate[={OFF|ON}]
    Устарело 5.7.20
    Переменная системы query_cache_wlock_invalidate
    Область действия Глобальная, Сессия
    Динамическая Да
    Тип Булево
    Значение по умолчанию OFF

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

    Примечание

    Кэш запросов устарел начиная с MySQL 5.7.20 и удалён в MySQL 8.0. Устаревание включает query_cache_wlock_invalidate.

  • query_prealloc_size

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

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

  • rand_seed1

    Системная переменная rand_seed1
    Область видимости Сессия
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 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
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 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
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Целое число
    Значение по умолчанию (≥ 5.7.12) 8388608
    Значение по умолчанию (≤ 5.7.11) 1536000
    Минимальное значение 0
    Максимальное значение 18446744073709551615
    Единица измерения байты

    Предел потребления памяти для оптимизатора диапазона. Значение 0 означает “без ограничения.” Если план выполнения, рассматриваемый оптимизатором, использует метод доступа к диапазону, но оптимизатор оценивает, что объем памяти, необходимый для этого метода, превысит лимит, он отказывается от плана и рассматривает другие планы. Для получения дополнительной информации см. Ограничение использования памяти для оптимизации диапазона.

  • rbr_exec_mode

    Системная переменная rbr_exec_mode
    Область видимости Сессия
    Динамическая Да
    Тип Перечисление
    Значение по умолчанию 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
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 131072
    Минимальное значение 8192
    Максимальное значение 2147479552
    Единица измерения байты
    Размер блока 4096

    Каждый поток, который выполняет последовательное сканирование для таблицы MyISAM, выделяет буфер этого размера (в байтах) для каждой сканируемой таблицы. Если вы выполняете много последовательных сканирований, вы можете увеличить это значение, которое по умолчанию равно 131072. Значение этой переменной должно быть кратно 4 КБ. Если оно установлено в значение, не кратное 4 КБ, его значение округляется вниз до ближайшего кратного 4 КБ.

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

    • Для кэширования индексов во временном файле (не во временной таблице) при сортировке строк для ORDER BY.

    • Для массовой вставки в разделы.

    • Для кэширования результатов вложенных запросов.

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

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

  • read_only

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

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

    Сервер также поддерживает системную переменную super_read_only (выключена по умолчанию), которая имеет следующие эффекты:

    • Если super_read_only включена, сервер запрещает обновления клиентов даже от пользователей с привилегией SUPER.

    • Установка super_read_only в значение ON неявно устанавливает read_only в значение ON.

    • Установка read_only в значение OFF неявно устанавливает super_read_only в значение OFF.

    Даже при включённой read_only, сервер разрешает следующие операции:

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

    • Использование операторов ANALYZE TABLE или OPTIMIZE TABLE. Цель режима только для чтения — предотвратить изменения структуры или содержимого таблиц. Анализ и оптимизация не считаются такими изменениями. Это означает, например, что проверки согласованности на репликах только для чтения могут выполняться с помощью mysqlcheck --all-databases --analyze.

    • Использование операторов FLUSH STATUS, которые всегда записываются в двоичный журнал.

    • Операции с TEMPORARY таблицами.

    • Вставки в таблицы журнала (mysql.general_log и mysql.slow_log); см. Раздел 5.4.1, «Выбирая направления вывода журнала общих запросов и журнала медленных запросов».

    • Начиная с MySQL 5.7.16, обновления таблиц 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
    Область действия Глобальная, Сеанс
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 262144
    Минимальное значение 1
    Максимальное значение 2147483647
    Единица измерения байты

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

    При чтении строк из MyISAM таблицы в отсортированном порядке после сортировки по ключу, строки читаются через этот буфер для предотвращения обращений к диску. См. Раздел 8.2.1.14, «Оптимизация ORDER BY». Установка переменной в большое значение может существенно улучшить производительность ORDER BY. Однако, это буфер, выделенный для каждого клиента, поэтому вы не должны устанавливать глобальную переменную в большое значение. Вместо этого, измените переменную сеанса только в тех клиентах, которым нужны большие запросы.

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

  • require_secure_transport

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

    Требуется ли использование защищенного транспорта для соединений клиентов с сервером. Когда эта переменная включена, сервер допускает только подключения TCP/IP, зашифрованные с помощью TLS/SSL, или подключения, использующие файл сокета (в Unix) или общую память (в Windows). Сервер отклоняет попытки незащищенного подключения, которые завершаются ошибкой.

    Эта функция дополняет требования SSL на уровне аккаунтов, которые имеют приоритет. Например, если для аккаунта заданы REQUIRE SSL, включение require_secure_transport не позволит использовать этот аккаунт для подключения через файл сокета Unix.

    Сервер может не иметь доступных защищенных транспортных средств. Например, сервер в Windows не поддерживает защищенные транспортные средства, если он был запущен без указания файлов сертификатов SSL или ключей и с отключенной системной переменной shared_memory. В таких условиях попытки включения require_secure_transport при запуске приведут к записи сообщения в журнал ошибок и выходу сервера. Попытки включения переменной во время работы завершатся ошибкой.

    См. также Настройка обязательного шифрования соединений.

  • secure_auth

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

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

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

    Запуск сервера завершается с ошибкой, если эта переменная включена, а таблицы привилегий находятся в формате до 4.1. См. Раздел 6.4.1.3, «Миграция от хэширования паролей до 4.1 и плагина mysql_old_password».

    Примечание

    Пароли, использующие метод хэширования до 4.1, менее безопасны, чем пароли, использующие собственный метод хэширования паролей, и их следует избегать. Пароли до 4.1 устарели, и поддержка их удалена в MySQL 5.7.5. Инструкции по обновлению учётных записей см. в Разделе 6.4.1.3, «Миграция от хэширования паролей до 4.1 и плагина mysql_old_password».

  • secure_file_priv

    Формат командной строки --secure-file-priv=dir_name
    Переменная системы secure_file_priv
    Область действия Глобальная
    Динамический Нет
    Тип Строка
    Значение по умолчанию 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, WIN NULL (>= MySQL 5.7.16), пустое (< MySQL 5.7.16)
    DEB, RPM, SLES, SVR4 /var/lib/mysql-files
    Иначе mysql-files в значении CMAKE_INSTALL_PREFIX

    Чтобы установить значение по умолчанию для secure_file_priv для встраиваемого сервера, используйте опцию INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR CMake. Значение по умолчанию для этой опции — NULL.

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

  • session_track_gtids

    Формат командной строки --session-track-gtids=value
    Переменная системы session_track_gtids
    Область действия Глобальная, Сессия
    Динамический Да
    Тип Перечисление
    Значение по умолчанию OFF
    Допустимые значения

    OFF

    OWN_GTID

    ALL_GTIDS

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

    • OFF: Сервер не возвращает GTIDs клиенту. Это значение по умолчанию.

    • OWN_GTID: Сервер возвращает GTIDs для всех транзакций, успешно подтверждённых этим клиентом в текущей сессии с момента последнего подтверждения. Как правило, это единственный GTID для последней успешно подтверждённой транзакции, но если одно клиентское запросы привело к нескольким транзакциям, сервер возвращает набор GTID, содержащий все соответствующие GTIDs.

    • ALL_GTIDS: Сервер возвращает глобальное значение своей переменной системы gtid_executed, которое он читает в момент, когда транзакция успешно подтверждается. Помимо GTID только что подтверждённой транзакции, этот набор GTID включает все транзакции, подтверждённые на сервере любым клиентом, и может включать транзакции, подтверждённые после того, как текущая транзакция была подтверждена.

    session_track_gtids не может быть установлена в контексте транзакции.

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

  • session_track_schema

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

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

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

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

  • session_track_state_change

    Формат командной строки --session-track-state-change[={OFF|ON}]
    Системная переменная session_track_state_change
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Boolean
    Значение по умолчанию OFF

    Управляет тем, отслеживает ли сервер изменения состояния текущей сессии и уведомляет ли клиент об изменениях состояния. Изменения могут быть сообщены для следующих атрибутов состояния клиентской сессии:

    • Схема по умолчанию (база данных).

    • Значения системных переменных, специфичные для сессии.

    • Переменные, определяемые пользователем.

    • Временные таблицы.

    • Подготовленные запросы.

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

    Переменная session_track_state_change управляет только уведомлением о возникновении изменений, а не о самих изменениях. Например, уведомления об изменении состояния происходят при установке схемы по умолчанию или присвоении отслеживаемых системных переменных сессии, но уведомление не включает имя схемы или значения переменных. Чтобы получать уведомления об имени схемы или значениях системных переменных сессии, используйте системные переменные session_track_schema или session_track_system_variables соответственно.

    Примечание

    Присвоение значения самой переменной session_track_state_change не считается изменением состояния и не сообщается как таковое. Однако, если её имя указано в значении session_track_system_variables, любые присвоения ей приводят к уведомлению о новом значении.

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

  • session_track_system_variables

    Формат командной строки --session-track-system-variables=#
    Системная переменная session_track_system_variables
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип String
    Значение по умолчанию 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.)

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

    Чтобы отключить уведомления о присвоениях системных переменных сессии, установите для session_track_system_variables пустую строку.

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

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

  • session_track_transaction_info

    Формат командной строки --session-track-transaction-info=value
    Системная переменная session_track_transaction_info
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Enumeration
    Значение по умолчанию 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.)

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

  • sha256_password_auto_generate_rsa_keys

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

    Эта переменная доступна, если сервер был скомпилирован с использованием OpenSSL (см. Раздел 6.3.4, «Возможности, зависящие от библиотеки SSL»). Она управляет тем, автоматически генерирует ли сервер файлы пар закрытых/открытых ключей RSA в каталоге данных, если они ещё не существуют.

    При запуске сервер автоматически генерирует файлы пар закрытых/открытых ключей RSA в каталоге данных, если включена системная переменная sha256_password_auto_generate_rsa_keys, параметры RSA не указаны и файлы RSA отсутствуют в каталоге данных. Эти файлы обеспечивают безопасный обмен паролями с использованием RSA по незашифрованным соединениям для учетных записей, прошедших аутентификацию с помощью плагина sha256_password; см. Раздел 6.4.1.5, «Подключаемая аутентификация SHA-256».

    Для получения дополнительной информации об автоматическом создании файлов RSA, включая имена и характеристики файлов, см. Раздел 6.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
    Область действия Глобальная
    Динамическая Нет
    Тип Имя файла
    Значение по умолчанию private_key.pem

    Эта переменная доступна, если MySQL был скомпилирован с использованием OpenSSL (см. Раздел 6.3.4, «Возможности, зависящие от библиотеки SSL»). Ее значение — имя пути к файлу закрытого ключа RSA для плагина аутентификации sha256_password. Если путь является относительным, он интерпретируется относительно каталога данных сервера. Файл должен быть в формате PEM.

    Важно

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

    Дополнительная информация о sha256_password доступна в Разделе 6.4.1.5, «Плагин аутентификации SHA-256».

  • sha256_password_proxy_users

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

    Эта переменная управляет тем, поддерживает ли встроенный плагин аутентификации sha256_password прокси-пользователей. Она не оказывает никакого влияния, если не включена переменная системы check_proxy_users. Дополнительная информация о прокси-пользователях содержится в Разделе 6.2.14, «Прокси-пользователи».

  • sha256_password_public_key_path

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

    Эта переменная доступна, если MySQL был скомпилирован с использованием OpenSSL (см. Раздел 6.3.4, «Возможности, зависящие от библиотеки SSL»). Ее значение — имя пути к файлу открытого ключа RSA для плагина аутентификации sha256_password. Если путь является относительным, он интерпретируется относительно каталога данных сервера. Файл должен быть в формате PEM. Поскольку этот файл содержит открытый ключ, его копии могут свободно распространяться клиентам. (Клиенты, которые явно указывают открытый ключ при подключении к серверу с использованием шифрования паролей RSA, должны использовать тот же открытый ключ, что и сервер.)

    Дополнительная информация о sha256_password, включая информацию о том, как клиенты указывают открытый ключ RSA, содержится в Разделе 6.4.1.5, «Плагин аутентификации SHA-256».

  • shared_memory

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

    (Только Windows.) Разрешает ли сервер подключения через общую память.

  • shared_memory_base_name

    Формат командной строки --shared-memory-base-name=name
    Переменная системы shared_memory_base_name
    Область действия Глобальная
    Динамическая Нет
    Специфично для платформы Windows
    Тип Строка
    Значение по умолчанию MYSQL

    (Только Windows.) Имя общей памяти для подключений через общую память. Это полезно при запуске нескольких экземпляров MySQL на одном физическом компьютере. Имя по умолчанию — MYSQL. Имя чувствительно к регистру.

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

  • show_compatibility_56

    Формат командной строки --show-compatibility-56[={OFF|ON}]
    Устаревший Да
    Системная переменная show_compatibility_56
    Область действия Глобальная
    Динамическая Да
    Тип Булево
    Значение по умолчанию OFF

    Таблица INFORMATION_SCHEMA содержит информацию о системных и статусных переменных (см. Раздел 24.3.11, «Таблицы INFORMATION_SCHEMA GLOBAL_VARIABLES и SESSION_VARIABLES» и Раздел 24.3.10, «Таблицы INFORMATION_SCHEMA GLOBAL_STATUS и SESSION_STATUS»). Начиная с MySQL 5.7.6, схема Performance также содержит таблицы системных и статусных переменных (см. Раздел 25.12.13, «Таблицы переменных схемы Performance» и Раздел 25.12.14, «Таблицы статусных переменных схемы Performance»). Таблицы схемы Performance предназначены для замены таблиц INFORMATION_SCHEMA, которые устарели начиная с MySQL 5.7.6 и удалены в MySQL 8.0.

    Советы по миграции от таблиц INFORMATION_SCHEMA к таблицам схемы Performance см. в Разделе 25.20, «Миграция к таблицам системных и статусных переменных схемы Performance». Для поддержки миграции можно использовать системную переменную show_compatibility_56, которая влияет на включение совместимости с MySQL 5.6 в отношении того, как информация о системных и статусных переменных предоставляется таблицами INFORMATION_SCHEMA и схемой Performance, а также инструкциями SHOW VARIABLES и SHOW STATUS.

    Примечание

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

    Далее описываются эффекты переменной show_compatibility_56:

    • Обзор эффектов show_compatibility_56

    • Эффект show_compatibility_56 на инструкции SHOW

    • Эффект show_compatibility_56 на таблицы INFORMATION_SCHEMA

    • Эффект show_compatibility_56 на таблицы схемы Performance

    • Эффект show_compatibility_56 на переменные состояния Slave

    • Эффект show_compatibility_56 на FLUSH STATUS

    Для лучшего понимания настоятельно рекомендуется также прочитать эти разделы:

    • Раздел 25.12.13, «Таблицы переменных схемы Performance»

    • Раздел 25.12.14, «Таблицы статусных переменных схемы Performance»

    • Раздел 25.12.15.10, «Таблицы сводного состояния статусных переменных»

    Обзор эффектов show_compatibility_56

    Переменная show_compatibility_56 влияет на эти аспекты работы сервера, связанные с системными и статусных переменными:

    • Доступная информация из инструкций SHOW VARIABLES и SHOW STATUS

    • Доступная информация из таблиц INFORMATION_SCHEMA, предоставляющих информацию о системных и статусных переменных

    • Доступная информация из таблиц схемы Performance, предоставляющих информацию о системных и статусных переменных

    • Влияние инструкции FLUSH STATUS на статусные переменные

    Данный список обобщает эффекты show_compatibility_56, более подробные сведения приведены ниже:

    • Когда show_compatibility_56 имеет значение ON, включена совместимость с MySQL 5.6. Более старые источники информации о переменных (инструкции SHOW, таблицы INFORMATION_SCHEMA) дают такой же вывод, как и в MySQL 5.6.

    • Когда show_compatibility_56 имеет значение OFF, совместимость с MySQL 5.6 выключена. Выборка из таблиц INFORMATION_SCHEMA приведет к ошибке, так как таблицы схемы Performance предназначены для их замены. Таблицы INFORMATION_SCHEMA устарели начиная с MySQL 5.7.6 и удалены в MySQL 8.0.

      Для получения информации о системных и статусных переменных, когда show_compatibility_56=OFF, используйте таблицы схемы Performance или инструкции SHOW.

      Примечание

      Когда show_compatibility_56=OFF, инструкции SHOW VARIABLES и SHOW STATUS отображают строки из таблиц схемы Performance global_variables, session_variables, global_status и session_status.

      Начиная с MySQL 5.7.9, эти таблицы имеют всеобщее право доступа для чтения и доступны без привилегии SELECT, что означает, что SELECT не требуется для использования инструкций SHOW. До MySQL 5.7.9 привилегия SELECT необходима для доступа к этим таблицам схемы Performance, либо непосредственно, либо косвенно через инструкции SHOW.

    • Несколько статусных переменных Slave_xxx доступны из SHOW STATUS, когда show_compatibility_56 имеет значение ON. Когда show_compatibility_56 имеет значение OFF, некоторые из этих переменных недоступны из SHOW STATUS. Информация, которую они предоставляют, доступна в связанных с репликацией таблицах схемы Performance, как описано позже.

    • show_compatibility_56 не влияет на доступ к системным переменным с использованием обозначения @@: @@GLOBAL.var_name, @@SESSION.var_name, @@var_name.

    • show_compatibility_56 не влияет на встроенный сервер, который в любом случае производит вывод, совместимый с 5.6.

  • В следующих описаниях подробно рассматривается влияние установки show_compatibility_56 на значение ON или OFF в контекстах, где эта переменная применима.

    Влияние show_compatibility_56 на операторы SHOW

    Оператор SHOW GLOBAL VARIABLES:

    • ON: Вывод MySQL 5.6.

    • OFF: Вывод отображает строки из таблицы global_variables Performance Schema.

    Оператор SHOW [SESSION | LOCAL] VARIABLES:

    • ON: Вывод MySQL 5.6.

    • OFF: Вывод отображает строки из таблицы session_variables Performance Schema. (В MySQL 5.7.6 и 5.7.7 вывод OFF не полностью отражает все значения переменных системы, действующие для текущей сессии; он не включает строки для глобальных переменных, у которых нет аналогов в сессии. Эта проблема исправлена в MySQL 5.7.8.)

    Оператор SHOW GLOBAL STATUS:

    • ON: Вывод MySQL 5.6.

    • OFF: Вывод отображает строки из таблицы global_status Performance Schema, а также счётчики выполнения операторов Com_xxx.

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

    Оператор SHOW [SESSION | LOCAL] STATUS:

    • ON: Вывод MySQL 5.6.

    • OFF: Вывод отображает строки из таблицы session_status Performance Schema, а также счётчики выполнения операторов Com_xxx. (В MySQL 5.7.6 и 5.7.7 вывод OFF не полностью отражает все значения переменных состояния, действующих для текущей сессии; он не включает строки для глобальных переменных, у которых нет аналогов в сессии. Эта проблема исправлена в MySQL 5.7.8.)

    В MySQL 5.7.6 и 5.7.7 для каждого из описанных SHOW операторов использование WHERE условия приводит к предупреждению, когда show_compatibility_56=ON, и к ошибке, когда show_compatibility_56=OFF. (Это относится к WHERE условиям, которые не оптимизированы. Например, WHERE 1 тривиально истинно, оптимизируется и, следовательно, не генерирует предупреждений или ошибок.) Такое поведение не наблюдается в MySQL 5.7.8; WHERE поддерживается, как и до 5.7.6.

    Влияние show_compatibility_56 на таблицы INFORMATION_SCHEMA

    Таблицы INFORMATION_SCHEMA (GLOBAL_VARIABLES, SESSION_VARIABLES, GLOBAL_STATUS и SESSION_STATUS):

    • ON: Вывод MySQL 5.6, с предупреждением об устаревании.

    • OFF: Выбор из этих таблиц приводит к ошибке. (До версии 5.7.9 выбор из этих таблиц не производил никакого вывода, с предупреждением об устаревании.)

    Влияние show_compatibility_56 на таблицы Performance Schema

    Таблицы переменных системы Performance Schema:

    • OFF:

      • global_variables: Только глобальные переменные системы.

      • session_variables: Переменные системы, действующие для текущей сессии: строка для каждой переменной сессии и строка для каждой глобальной переменной, у которой нет аналога в сессии.

      • variables_by_thread: Только переменные системы сессии для каждой активной сессии.

    • ON: Вывод совпадает с OFF. (До версии 5.7.8 эти таблицы не выдавали вывода.)

    Таблицы переменных состояния Performance Schema:

    • OFF:

      • global_status: Только глобальные переменные состояния.

      • session_status: Переменные состояния, действующие для текущей сессии: строка для каждой переменной сессии и строка для каждой глобальной переменной, у которой нет аналога в сессии.

      • status_by_account: Только переменные состояния сессии, агрегированные по аккаунтам.

      • status_by_host: Только переменные состояния сессии, агрегированные по имени хоста.

      • status_by_thread: Только переменные состояния сессии для каждой активной сессии.

      • status_by_user: Только переменные состояния сессии, агрегированные по имени пользователя.

      Performance Schema не собирает статистику для Com_xxx переменных состояния в таблицах переменных состояния. Для получения глобальных и по-сессионных счётчиков выполнения операторов используйте таблицы events_statements_summary_global_by_event_name и events_statements_summary_by_thread_by_event_name, соответственно.

    • ON: Вывод совпадает с OFF. (До версии 5.7.9 эти таблицы не выдавали вывода.)

    Влияние show_compatibility_56 на переменные состояния Slave

    Переменные состояния репликации:

    • ON: Несколько Slave_xxx переменных состояния доступны из SHOW STATUS.

    • OFF: Некоторые из этих переменных реплики не доступны для SHOW STATUS или таблиц переменных состояния Performance Schema. Информация, которую они предоставляют, доступна в таблицах Performance Schema, связанных с репликацией. Следующая таблица показывает, какие Slave_xxx переменные состояния становятся недоступными в SHOW STATUS, и их расположение в таблицах Performance Schema репликации.

      Переменная состояния Расположение в Performance Schema
      Slave_heartbeat_period таблица replication_connection_configuration, столбец HEARTBEAT_INTERVAL
      Slave_last_heartbeat таблица replication_connection_status, столбец LAST_HEARTBEAT_TIMESTAMP
      Slave_received_heartbeats таблица replication_connection_status, столбец COUNT_RECEIVED_HEARTBEATS
      Slave_retried_transactions таблица replication_applier_status, столбец COUNT_TRANSACTIONS_RETRIES
      Slave_running таблицы replication_connection_status и replication_applier_status, столбец SERVICE_STATE

    Влияние show_compatibility_56 на FLUSH STATUS

    Команда FLUSH STATUS:

    • ON: Эта команда воспроизводит поведение MySQL 5.6. Она добавляет значения переменных состояния текущей сессии потока к глобальным значениям и сбрасывает значения сессии до нуля. Некоторые глобальные переменные также могут быть сброшены до нуля. Она также сбрасывает счётчики кэш-памяти ключей (по умолчанию и именованных) до нуля и устанавливает Max_used_connections в текущее число открытых соединений.

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

  • show_create_table_verbosity

    Формат командной строки --show-create-table-verbosity[={OFF|ON}]
    Введено 5.7.22
    Системная переменная show_create_table_verbosity
    Область Глобальная, Сессия
    Динамическая Да
    Тип Булево
    Значение по умолчанию OFF

    SHOW CREATE TABLE обычно не отображает опцию таблицы ROW_FORMAT, если формат строки является форматом по умолчанию. Включение этой переменной заставляет SHOW CREATE TABLE отображать ROW_FORMAT независимо от того, является ли это форматом по умолчанию.

  • show_old_temporals

    Формат командной строки --show-old-temporals[={OFF|ON}]
    Устарело Да
    Системная переменная show_old_temporals
    Область Глобальная, Сессия
    Динамическая Да
    Тип Булево
    Значение по умолчанию OFF

    Включает ли SHOW CREATE TABLE комментарии для обозначения временных столбцов, обнаруженных в формате до 5.6.4 (TIME, DATETIME и TIMESTAMP столбцы без поддержки точности дробных секунд). Эта переменная по умолчанию отключена. При включении SHOW CREATE TABLE вывод выглядит так:

    CREATE TABLE `mytbl` (
      `ts` timestamp /* 5.5 binary format */ NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `dt` datetime /* 5.5 binary format */ DEFAULT NULL,
      `t` time /* 5.5 binary format */ DEFAULT NULL
    ) DEFAULT CHARSET=latin1
    

    Вывод для столбца COLUMN_TYPE таблицы Information Schema COLUMNS аналогичным образом затронут.

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

  • skip_external_locking

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

    Это OFF, если mysqld использует внешние блокировки (системные блокировки), ON если внешние блокировки отключены. Это влияет только на доступ к таблицам MyISAM.

    Эта переменная устанавливается с помощью опции --external-locking или --skip-external-locking. Внешние блокировки отключены по умолчанию.

    Внешние блокировки затрагивают только доступ к таблицам MyISAM. Более подробная информация, включая условия, при которых она может и не может быть использована, представлена в Раздел 8.11.5, «Внешние блокировки».

  • skip_name_resolve

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

    Необходимо ли разрешать имена хостов при проверке подключений клиентов. Если эта переменная OFF, mysqld разрешает имена хостов при проверке подключений клиентов. Если она ON, mysqld использует только IP-адреса; в этом случае все значения столбца Host в таблицах разрешений должны быть IP-адресами. См. Раздел 5.1.11.2, «Обращения к 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
    Область видимости Глобальная
    Динамическая Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная управляет тем, разрешает ли сервер TCP/IP-подключения. По умолчанию она отключена (разрешены TCP-подключения). Если включена, сервер разрешает только локальные (не TCP/IP) подключения, и все взаимодействие с mysqld должно осуществляться с использованием именованных каналов или общей памяти (в Windows) или файлов Unix-сокет (в Unix). Этот параметр настоятельно рекомендуется для систем, где разрешены только локальные клиенты. См. Раздел 5.1.11.2, «DNS-запросы и кэш узлов».

  • skip_show_database

    Формат командной строки --skip-show-database
    Системная переменная skip_show_database
    Область видимости Глобальная
    Динамическая Нет
    Тип Булево
    Значение по умолчанию OFF

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

    Внимание

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

  • slow_launch_time

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

    Если создание потока занимает больше времени, чем указанное количество секунд, сервер увеличивает значение переменной состояния Slow_launch_threads.

  • slow_query_log

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

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

    “Медленный” определяется значением переменной long_query_time. См. Раздел 5.4.5, «Журнал медленных запросов».

  • slow_query_log_file

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

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

  • socket

    Формат командной строки --socket={file_name|pipe_name}
    Системная переменная socket
    Область видимости Глобальная
    Динамическая Нет
    Тип Строка
    Значение по умолчанию (Windows) MySQL
    Значение по умолчанию (Другие) /tmp/mysql.sock

    На платформах Unix эта переменная — имя файла сокета, используемого для локальных клиентских подключений. Значение по умолчанию — /tmp/mysql.sock. (Для некоторых форматов дистрибутива каталог может быть другим, например, /var/lib/mysql для RPM-пакетов.)

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

  • sort_buffer_size

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

    Каждый сеанс, который должен выполнить сортировку, выделяет буфер такого размера. sort_buffer_size не специфичен для какого-либо хранилища и применяется общим образом для оптимизации. По меньшей мере, значение sort_buffer_size должно быть достаточно большим, чтобы вместить пятнадцать кортежей в буфере сортировки. Кроме того, увеличение значения max_sort_length может потребовать увеличения значения sort_buffer_size. Дополнительную информацию см. в разделе 8.2.1.14 «Оптимизация 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
    Область действия Глобальная, сеансовая
    Динамическая Да
    Тип Булево
    Значение по умолчанию OFF

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

    SELECT * FROM tbl_name WHERE auto_col IS NULL
    

    Если оператор возвращает строку, возвращаемое значение совпадает с тем, что вы бы получили, вызвав функцию LAST_INSERT_ID(). Подробности, включая значение возврата после вставки нескольких строк, см. в разделе 12.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
    Область действия Глобальная, сеансовая
    Динамическая Да
    Тип Булево
    Значение по умолчанию ON

    Если установлено значение OFF, MySQL прерывает операторы SELECT, которые, вероятно, будут выполняться очень долго (то есть операторы, для которых оптимизатор оценивает, что количество проверяемых строк превышает значение max_join_size). Это полезно, когда был выдан нежелательный оператор WHERE. Значение по умолчанию для нового соединения равно ON, что допускает все операторы SELECT.

    Если вы установили переменную системы max_join_size на значение, отличное от DEFAULT, sql_big_selects устанавливается на OFF.

  • sql_buffer_result

    Переменная системы sql_buffer_result
    Область действия Глобальная, сеансовая
    Динамическая Да
    Тип Булево
    Значение по умолчанию OFF

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

  • sql_log_off

    Переменная системы sql_log_off
    Область действия Глобальная, сеансовая
    Динамическая Да
    Тип Булево
    Значение по умолчанию OFF
    Допустимые значения

    OFF (включить логирование)

    ON (отключить логирование)

    Эта переменная управляет отключением логирования в общий журнал запросов для текущего сеанса (при условии, что сам общий журнал запросов включен). Значение по умолчанию — OFF (то есть включить логирование). Чтобы отключить или включить общий журнал запросов для текущего сеанса, установите сеансовую переменную sql_log_off на значение ON или OFF.

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

  • sql_mode

    Формат командной строки --sql-mode=name
    Системная переменная sql_mode
    Область видимости Глобальная, сеанса
    Динамическая Да
    Тип Множество
    Значение по умолчанию ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_AUTO_CREATE_USER NO_ENGINE_SUBSTITUTION
    Допустимые значения

    ALLOW_INVALID_DATES

    ANSI_QUOTES

    ERROR_FOR_DIVISION_BY_ZERO

    HIGH_NOT_PRECEDENCE

    IGNORE_SPACE

    NO_AUTO_CREATE_USER

    NO_AUTO_VALUE_ON_ZERO

    NO_BACKSLASH_ESCAPES

    NO_DIR_IN_CREATE

    NO_ENGINE_SUBSTITUTION

    NO_FIELD_OPTIONS

    NO_KEY_OPTIONS

    NO_TABLE_OPTIONS

    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

    Текущий режим SQL сервера, который может быть динамически установлен. Для получения подробной информации см. Раздел 5.1.10, «Режимы SQL сервера».

    Примечание

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

  • sql_notes

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

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

  • sql_quote_show_create

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

    Если включено (по умолчанию), сервер заключает идентификаторы в кавычки для SHOW CREATE TABLE и SHOW CREATE DATABASE операторов. Если отключено, кавычки отключаются. Эта опция включена по умолчанию, чтобы репликация работала для идентификаторов, требующих кавычек. См. Раздел 13.7.5.10, «Оператор SHOW CREATE TABLE», и Раздел 13.7.5.6, «Оператор SHOW CREATE DATABASE».

  • sql_safe_updates

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

    Если эта переменная включена, UPDATE и DELETE операторы, которые не используют ключ в предложении WHERE или предложении LIMIT, выдают ошибку. Это позволяет отлавливать UPDATE и DELETE операторы, где ключи используются неправильно и которые, вероятно, изменят или удалят большое количество строк. Значение по умолчанию — OFF.

    Для клиента mysql, sql_safe_updates может быть включен с помощью опции --safe-updates. Для получения дополнительной информации см. Использование безопасного режима обновлений (--safe-updates).

  • sql_select_limit

    Системная переменная sql_select_limit
    Область видимости Глобальная, сеанса
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 18446744073709551615
    Минимальное значение 0
    Максимальное значение 18446744073709551615

    Максимальное количество строк для возврата из операторов SELECT. Для получения дополнительной информации см. Использование безопасного режима обновлений (--safe-updates).

    Значение по умолчанию для нового соединения — это максимальное количество строк, разрешенных сервером для каждой таблицы. Типичные значения по умолчанию — (232)−1 или (264)−1. Если вы изменили лимит, значение по умолчанию можно восстановить, присвоив значение DEFAULT.

    Если SELECT имеет предложение LIMIT, то LIMIT имеет приоритет над значением sql_select_limit.

  • sql_warnings

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

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

  • ssl_ca

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

    Имя пути файла сертификата Центра сертификации (CA) в формате PEM. Файл содержит список доверенных центров сертификации SSL.

  • ssl_capath

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

    Имя пути каталога, содержащего доверенные файлы сертификатов Центра сертификации SSL (CA) в формате PEM. Поддержка этой возможности зависит от библиотеки SSL, используемой для компиляции MySQL; см. Раздел 6.3.4, «Возможности, зависящие от библиотеки SSL».

  • ssl_cert

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

    Путь к файлу с общедоступным сертификатом SSL-сервера в формате PEM.

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

  • ssl_cipher

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

    Список разрешенных шифров для шифрования подключения. Если ни один из шифров в списке не поддерживается, шифрованные подключения не работают.

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

    [mysqld]
    ssl_cipher="DHE-RSA-AES128-GCM-SHA256:AES128-SHA"
    

    OpenSSL поддерживает более гибкий синтаксис для указания шифров, как описано в документации OpenSSL по адресу https://www.openssl.org/docs/manmaster/man1/openssl-ciphers.html. yaSSL этого не делает, поэтому попытки использовать этот расширенный синтаксис завершаются неудачей для дистрибутива MySQL, скомпилированного с использованием yaSSL.

    Для получения информации о поддерживаемых MySQL шифрах шифрования см. Раздел 6.3.2, «Протоколы и шифры TLS шифрованного соединения».

  • ssl_crl

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

    Путь к файлу, содержащему списки отзыва сертификатов в формате PEM. Поддержка возможностей отзыва списков зависит от используемой библиотеки SSL для компиляции MySQL. См. Раздел 6.3.4, «Возможности, зависящие от библиотек SSL».

  • ssl_crlpath

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

    Путь к каталогу, содержащему файлы списков отзыва сертификатов в формате PEM. Поддержка возможностей отзыва списков зависит от используемой библиотеки SSL для компиляции MySQL. См. Раздел 6.3.4, «Возможности, зависящие от библиотек SSL».

  • ssl_key

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

    Путь к файлу с закрытым ключом SSL-сервера в формате PEM. Для повышения безопасности используйте сертификат с размером ключа RSA не менее 2048 бит.

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

  • stored_program_cache

    Формат командной строки --stored-program-cache=#
    Системная переменная stored_program_cache
    Область действия Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 256
    Минимальное значение 16
    Максимальное значение 524288

    Устанавливает мягкий верхний предел для числа кэшированных хранимых процедур на соединение. Значение этой переменной указано в терминах количества хранимых процедур, хранящихся в каждом из двух кэшей, поддерживаемых сервером MySQL для соответственно хранимых процедур и хранимых функций.

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

  • super_read_only

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

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

    Обновления клиентов, предотвращённые при включённой super_read_only, включают операции, которые не обязательно представляются обновлениями, такие как CREATE FUNCTION (для установки загружаемой функции) и INSTALL PLUGIN. Эти операции запрещены, потому что они связаны с изменениями в таблицах базы данных mysql.

    Изменения в super_read_only на сервере репликации не реплицируются на серверы-реплики. Значение можно установить на реплике независимо от установки на источнике.

  • sync_frm

    Формат командной строки --sync-frm[={OFF|ON}]
    Устаревшая Да
    Системная переменная sync_frm
    Область действия Глобальная
    Динамическая Да
    Тип Булево
    Значение по умолчанию ON

    Если эта переменная установлена в 1, при создании любой невременной таблицы её файл .frm синхронизируется с диском (с использованием fdatasync()). Это медленнее, но безопаснее в случае сбоя. Значение по умолчанию — 1.

    Эта переменная устарела в MySQL 5.7 и удалена в MySQL 8.0 (когда файлы .frm устарели).

  • system_time_zone

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

    Часовой пояс сервера. При запуске сервера он наследует часовой пояс из настроек машины, который может быть изменён окружением учётной записи, используемой для запуска сервера, или скриптом запуска. Значение используется для установки system_time_zone. Чтобы явно указать часовой пояс сервера, задайте переменную окружения TZ или используйте параметр --timezone скрипта mysqld_safe.

    Переменная system_time_zone отличается от переменной time_zone. Хотя они могут иметь одинаковое значение, последняя переменная используется для инициализации часового пояса для каждого подключённого клиента. См. Раздел 5.1.13, «Поддержка часовых поясов в MySQL Server».

  • table_definition_cache

    Формат командной строки --table-definition-cache=#
    Переменная сервера table_definition_cache
    Область действия Глобальная
    Динамическая Да
    Тип Целое
    Значение по умолчанию -1 (указывает автоматическое изменение размера; не присваивайте это литеральное значение)
    Минимальное значение 400
    Максимальное значение 524288

    Количество определений таблиц (из файлов .frm), которые могут храниться в кэше определений таблиц. Если вы используете большое количество таблиц, вы можете создать большой кэш определений таблиц для ускорения открытия таблиц. Кэш определений таблиц занимает меньше места и не использует дескрипторы файлов, в отличие от обычного кэша таблиц. Минимальное значение равно 400. Значение по умолчанию основано на следующей формуле, ограниченной пределом 2000:

    400 + (table_open_cache / 2)
    

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

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

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

  • table_open_cache

    Формат командной строки --table-open-cache=#
    Переменная сервера table_open_cache
    Область действия Глобальная
    Динамическая Да
    Тип Целое
    Значение по умолчанию 2000
    Минимальное значение 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. Дополнительную информацию о кэше таблиц см. в Разделе 8.4.3.1, «Как MySQL открывает и закрывает таблицы».

  • table_open_cache_instances

    Формат командной строки --table-open-cache-instances=#
    Переменная сервера table_open_cache_instances
    Область действия Глобальная
    Динамическая Нет
    Тип Целое
    Значение по умолчанию 16
    Минимальное значение 1
    Максимальное значение 64

    Количество экземпляров кэша открытых таблиц. Для повышения масштабируемости, уменьшения конфликтов между сеансами, кэш открытых таблиц может быть разделён на несколько меньших экземпляров кэша размером table_open_cache / table_open_cache_instances. Сеансу необходимо заблокировать только один экземпляр для доступа к нему для операторов DML. Это сегментирует доступ к кэшу между экземплярами, обеспечивая более высокую производительность операций, использующих кэш, при наличии многих сеансов, обращающихся к таблицам. (Операторы DDL по-прежнему требуют блокировки всего кэша, но такие операторы встречаются гораздо реже, чем операторы DML.)

    Рекомендуется значение 8 или 16 на системах, которые обычно используют 16 или более ядер. Однако, если у вас много больших триггеров на ваших таблицах, которые вызывают высокую загрузку памяти, значение по умолчанию для table_open_cache_instances может привести к чрезмерному использованию памяти. В этой ситуации может быть полезно установить table_open_cache_instances в 1 для ограничения использования памяти.

  • thread_cache_size

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

    Сколько потоков сервер должен кэшировать для повторного использования. Когда клиент отключается, потоки клиента помещаются в кэш, если там меньше, чем thread_cache_size потоков. Запросы на потоки удовлетворяются за счет повторного использования потоков, взятых из кэша, если это возможно, и только когда кэш пуст, создается новый поток. Эту переменную можно увеличить для повышения производительности, если у вас много новых подключений. Обычно это не обеспечивает заметного повышения производительности, если у вас хорошая реализация потоков. Однако, если ваш сервер обрабатывает сотни подключений в секунду, вы обычно должны установить thread_cache_size достаточно большим, чтобы большинство новых подключений использовали кэшированные потоки. Изучая разницу между переменными состояния Connections и Threads_created, вы можете увидеть, насколько эффективен кэш потоков. Подробнее см. в разделе 5.1.9, «Переменные состояния сервера».

    Значение по умолчанию основано на следующей формуле, ограниченной лимитом в 100:

    8 + (max_connections / 100)
    

    Эта переменная не оказывает влияния на встроенный сервер (libmysqld) и, начиная с MySQL 5.7.2, больше не видна во встроенном сервере.

  • thread_handling

    Формат командной строки --thread-handling=name
    Системная переменная thread_handling
    Область видимости Глобальная
    Динамическая Нет
    Тип Перечисление
    Значение по умолчанию one-thread-per-connection
    Допустимые значения

    no-threads

    one-thread-per-connection

    loaded-dynamically

    Модель обработки потоков, используемая сервером для потоков соединений. Допустимые значения: no-threads (сервер использует один поток для обработки одного соединения), one-thread-per-connection (сервер использует один поток для обработки каждого клиентского соединения) и loaded-dynamically (устанавливается плагином пула потоков при его инициализации). no-threads полезно для отладки под Linux; см. раздел 5.8, «Отладка MySQL».

    Эта переменная не оказывает влияния на встроенный сервер (libmysqld) и, начиная с MySQL 5.7.2, больше не видна во встроенном сервере.

  • thread_pool_algorithm

    Формат командной строки --thread-pool-algorithm=#
    Системная переменная thread_pool_algorithm
    Область видимости Глобальная
    Динамическая Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 1

    Эта переменная управляет тем, какой алгоритм использует плагин пула потоков:

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

    • Значение 1 увеличивает степень параллелизма и использует более агрессивный алгоритм, который иногда показывал на 5–10% лучшие результаты при оптимальном количестве потоков, но имеет снижение производительности по мере увеличения числа соединений. Его использование следует рассматривать как экспериментальное и не поддерживаемое.

    Эта переменная доступна только в том случае, если включен плагин пула потоков. См. раздел 5.5.3, «Пул потоков MySQL Enterprise».

  • thread_pool_high_priority_connection

    Формат командной строки --thread-pool-high-priority-connection=#
    Системная переменная thread_pool_high_priority_connection
    Область видимости Глобальная, сеанса
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 1

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

    Эта переменная доступна только в том случае, если включен плагин пула потоков. См. раздел 5.5.3, «Пул потоков MySQL Enterprise».

  • thread_pool_max_unused_threads

    Формат командной строки --thread-pool-max-unused-threads=#
    Системная переменная thread_pool_max_unused_threads
    Область видимости Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4096

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

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

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

    Эта переменная доступна только в том случае, если включен плагин пула потоков. См. раздел 5.5.3, «Пул потоков MySQL Enterprise».

  • thread_pool_prio_kickup_timer

    Формат командной строки --thread-pool-prio-kickup-timer=#
    Системная переменная thread_pool_prio_kickup_timer
    Область видимости Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 1000
    Минимальное значение 0
    Максимальное значение 4294967294
    Единица измерения миллисекунды

    Эта переменная влияет на операторы, ожидающие выполнения в очереди низкого приоритета. Значение представляет собой количество миллисекунд, прежде чем ожидающий оператор будет перемещен в очередь высокого приоритета. Значение по умолчанию — 1000 (1 секунда).

    Эта переменная доступна только в том случае, если включен плагин пула потоков. См. раздел 5.5.3, «Пул потоков MySQL Enterprise».

  • thread_pool_size

    Формат командной строки --thread-pool-size=#
    Переменная системы thread_pool_size
    Область действия Глобальная
    Динамическая Нет
    Тип Целое число
    Значение по умолчанию 16
    Минимальное значение 1
    Максимальное значение 64

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

    Эта переменная доступна только в том случае, если плагин пула потоков включен. См. Раздел 5.5.3, «Пул потоков MySQL Enterprise».

  • thread_pool_stall_limit

    Формат командной строки --thread-pool-stall-limit=#
    Переменная системы thread_pool_stall_limit
    Область действия Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 6
    Минимальное значение 4
    Максимальное значение 600
    Единица измерения миллисекунды * 10

    Эта переменная влияет на выполнение инструкций. Значение — это количество времени, которое уходит на выполнение инструкции после ее запуска, прежде чем она будет определена как зависшая, после чего пул потоков разрешает группе потоков начать выполнение другой инструкции. Значение измеряется в единицах по 10 миллисекунд, поэтому значение по умолчанию 6 соответствует 60 мс. Короткие значения ожидания позволяют потокам быстрее запускаться. Короткие значения также лучше для предотвращения тупиковых ситуаций. Большие значения ожидания полезны для рабочих нагрузок, включающих длительные инструкции, чтобы избежать запуска слишком большого количества новых инструкций во время выполнения текущих.

    Эта переменная доступна только в том случае, если плагин пула потоков включен. См. Раздел 5.5.3, «Пул потоков MySQL Enterprise».

  • thread_stack

    Формат командной строки --thread-stack=#
    Переменная системы thread_stack
    Область действия Глобальная
    Динамическая Нет
    Тип Целое число
    Значение по умолчанию (64-битные платформы) 262144
    Значение по умолчанию (32-битные платформы) 196608
    Минимальное значение 131072
    Максимальное значение (64-битные платформы) 18446744073709550592
    Максимальное значение (32-битные платформы) 4294966272
    Единица измерения байты
    Размер блока 1024

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

  • time_format

    Эта переменная не используется. Она устарела и удалена в MySQL 8.0.

  • time_zone

    Переменная системы time_zone
    Область действия Глобальная, сеанс
    Динамическая Да
    Тип Строка
    Значение по умолчанию SYSTEM
    Минимальное значение -12:59
    Максимальное значение +13:00

    Текущая временная зона. Эта переменная используется для инициализации временной зоны для каждого подключенного клиента. По умолчанию начальное значение равно 'SYSTEM' (что означает «использовать значение system_time_zone»). Значение можно явно указать при запуске сервера с помощью опции --default-time-zone. См. Раздел 5.1.13, «Поддержка временных зон сервера MySQL».

    Примечание

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

  • timestamp

    Переменная системы timestamp
    Область действия Сеанс
    Динамическая Да
    Тип Числовой
    Значение по умолчанию UNIX_TIMESTAMP()
    Минимальное значение 1
    Максимальное значение 2147483647

    Установите время для этого клиента. Это используется для получения исходного отметки времени, если вы используете двоичный журнал для восстановления строк. timestamp_value должно быть отметкой времени эпохи Unix (значение, возвращаемое функцией UNIX_TIMESTAMP(), а не значение в формате 'YYYY-MM-DD hh:mm:ss') или DEFAULT.

    Установка timestamp на постоянное значение приводит к сохранению этого значения до его повторной смены. Установка timestamp на DEFAULT приводит к тому, что его значением становится текущая дата и время на момент доступа. Максимальное значение соответствует '2038-01-19 03:14:07' по UTC, как и для типа данных TIMESTAMP.

    timestamp является DOUBLE, а не BIGINT, потому что его значение включает микросекунды.

    SET timestamp влияет на значение, возвращаемое функцией NOW(), но не функцией SYSDATE(). Это означает, что настройки отметки времени в двоичном журнале не влияют на вызовы функции SYSDATE(). Сервер можно запустить с опцией --sysdate-is-now, чтобы сделать функцию SYSDATE() синонимом функции NOW(), в этом случае SET timestamp влияет на обе функции.

  • tls_version

    Формат командной строки --tls-version=protocol_list
    Введено 5.7.10
    Переменная системы tls_version
    Область действия Глобальная
    Динамическая Нет
    Тип Строка
    Значение по умолчанию (≥ 5.7.28) TLSv1,TLSv1.1,TLSv1.2
    Значение по умолчанию (≤ 5.7.27)

    TLSv1,TLSv1.1,TLSv1.2 (OpenSSL)

    TLSv1,TLSv1.1 (yaSSL)

    Какие протоколы сервер разрешает для зашифрованных подключений. Значение — это список протоколов версий, разделенных запятыми. Протоколы, которые можно указать для этой переменной, зависят от используемой библиотеки SSL при компиляции MySQL. Разрешенные протоколы должны быть выбраны так, чтобы не оставлять «дыр» в списке. Подробнее см. Раздел 6.3.2, «Протоколы и шифры TLS зашифрованного подключения».

    Примечание

    Начиная с MySQL 5.7.35, протоколы подключения TLSv1 и TLSv1.1 устарели, и поддержка их может быть удалена в будущей версии MySQL. См. Устаревшие протоколы TLS.

    Установка этой переменной в пустую строку отключает зашифрованные подключения.

  • tmp_table_size

    Формат командной строки --tmp-table-size=#
    Системная переменная tmp_table_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 16777216
    Минимальное значение 1024
    Максимальное значение 18446744073709551615
    Единица измерения байты

    Максимальный размер внутренних временных таблиц в оперативной памяти. Эта переменная не применяется к таблицам, созданным пользователем. MEMORY

    Фактическое ограничение является меньшим из tmp_table_size и max_heap_table_size. Когда временная таблица в оперативной памяти превышает ограничение, MySQL автоматически преобразует ее во временную таблицу на диске. Параметр internal_tmp_disk_storage_engine определяет движок хранения, используемый для временных таблиц на диске.

    Увеличьте значение tmp_table_size (и max_heap_table_size, если необходимо) при выполнении многих сложных запросов GROUP BY и при наличии большого объёма оперативной памяти.

    Вы можете сравнить количество созданных внутренних временных таблиц на диске с общим количеством созданных внутренних временных таблиц, сравнив значения Created_tmp_disk_tables и Created_tmp_tables.

    См. также Раздел 8.4.4, «Использование внутренних временных таблиц в MySQL».

  • tmpdir

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

    Путь к каталогу для создания временных файлов. Это может быть полезно, если ваш стандартный каталог /tmp находится на разделе, слишком маленьком для хранения временных таблиц. Эта переменная может быть установлена в список нескольких путей, которые используются по кругу. Пути должны быть разделены двоеточиями (:) в Unix и точкой с запятой (;) в Windows.

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

    Дополнительную информацию о расположении временных файлов см. в Разделе B.3.3.5, «Где MySQL хранит временные файлы».

  • transaction_alloc_block_size

    Формат командной строки --transaction-alloc-block-size=#
    Системная переменная transaction_alloc_block_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 8192
    Минимальное значение 1024
    Максимальное значение 131072
    Единица измерения байты
    Размер блока 1024

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

  • Уровень изоляции транзакций

    Формат командной строки --transaction-isolation=name
    Системная переменная (≥ 5.7.20) transaction_isolation
    Область действия (≥ 5.7.20) Глобальная, Сеансовая
    Динамическая (≥ 5.7.20) Да
    Тип Перечисление
    Значение по умолчанию 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 устанавливает уровень изоляции для всех последующих сеансов. Существующие сеансы не затрагиваются.

    Для установки сеансового или уровня изоляции следующей транзакции используйте оператор 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 см. в разделе 13.3.6, «Оператор SET TRANSACTION».

    Примечание

    transaction_isolation был добавлен в MySQL 5.7.20 как синоним для tx_isolation, который теперь устарел и удалён в MySQL 8.0. Приложения должны быть адаптированы для использования transaction_isolation вместо tx_isolation.

  • transaction_prealloc_size

    Формат командной строки --transaction-prealloc-size=#
    Системная переменная transaction_prealloc_size
    Область действия Глобальная, Сеансовая
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 4096
    Минимальное значение 1024
    Максимальное значение 131072
    Единица измерения байты
    Размер блока 1024

    Для каждой транзакции существует пул памяти, из которого производятся различные выделения памяти, связанные с транзакцией. Начальный размер пула в байтах составляет transaction_prealloc_size. Для каждого выделения, которое не может быть выполнено из пула, поскольку в нём недостаточно памяти, пул увеличивается на transaction_alloc_block_size байт. Когда транзакция завершается, пул обрезается до transaction_prealloc_size байт.

    Сделав transaction_prealloc_size достаточно большим для хранения всех операторов в одной транзакции, вы можете избежать многих вызовов malloc().

  • transaction_read_only

    Формат командной строки --transaction-read-only[={OFF|ON}]
    Системная переменная (≥ 5.7.20) transaction_read_only
    Область видимости (≥ 5.7.20) Глобальная, сессии
    Динамическая (≥ 5.7.20) Да
    Тип Булево
    Значение по умолчанию 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, см. Раздел 13.3.6, «Оператор SET TRANSACTION».

    Примечание

    transaction_read_only была добавлена в MySQL 5.7.20 как синоним для tx_read_only, которая теперь устарела и удалена в MySQL 8.0. Приложения должны быть настроены на использование transaction_read_only вместо tx_read_only.

  • tx_isolation

    Устарело 5.7.20
    Системная переменная tx_isolation
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Перечисление
    Значение по умолчанию REPEATABLE-READ
    Допустимые значения

    READ-UNCOMMITTED

    READ-COMMITTED

    REPEATABLE-READ

    SERIALIZABLE

    Уровень изоляции транзакций по умолчанию. По умолчанию используется REPEATABLE-READ.

    Примечание

    transaction_isolation была добавлена в MySQL 5.7.20 как синоним для tx_isolation, которая теперь устарела и удалена в MySQL 8.0. Приложения должны быть настроены на использование transaction_isolation вместо tx_isolation. См. описание transaction_isolation для получения подробной информации.

  • tx_read_only

    Устарело 5.7.20
    Системная переменная tx_read_only
    Область видимости Глобальная, сессии
    Динамическая Да
    Тип Булево
    Значение по умолчанию OFF

    Режим доступа к транзакции по умолчанию. Значение может быть OFF (чтение/запись, по умолчанию) или ON (только чтение).

    Примечание

    transaction_read_only была добавлена в MySQL 5.7.20 как синоним для tx_read_only, которая теперь устарела и удалена в MySQL 8.0. Приложения должны быть настроены на использование transaction_read_only вместо tx_read_only. См. описание transaction_read_only для получения подробной информации.

  • unique_checks

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

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

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

  • updatable_views_with_limit

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

    Эта переменная управляет возможностью обновления представления, когда представление не содержит все столбцы первичного ключа, определенного в основной таблице, если оператор обновления содержит LIMIT предложение. (Такие обновления часто генерируются инструментами графического интерфейса.) Обновление — это оператор UPDATE или DELETE. Первичный ключ здесь означает PRIMARY KEY или индекс UNIQUE, в котором ни один столбец не может содержать NULL.

    Переменная может принимать два значения:

    • 1 или YES: Выдавать только предупреждение (а не сообщение об ошибке). Это значение по умолчанию.

    • 0 или NO: Запретить обновление.

  • validate_password_xxx

    Плагин validate_password реализует набор переменных системы с именами вида validate_password_xxx. Эти переменные влияют на проверку паролей этим плагином; см. Раздел 6.4.3.2, “Параметры и переменные плагина проверки паролей”.

  • version

    Номер версии сервера. Значение также может включать суффикс, указывающий информацию о сборке или конфигурации сервера. -log указывает, что включен один или несколько общих журналов, журналов медленных запросов или двоичных журналов. -debug указывает, что сервер был собран с поддержкой отладки.

  • version_comment

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

    Программа конфигурации CMake имеет параметр COMPILATION_COMMENT, который позволяет указать комментарий при построении MySQL. Эта переменная содержит значение этого комментария. См. Раздел 2.8.7, “Параметры конфигурации исходного кода MySQL”.

  • version_compile_machine

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

    Тип двоичного файла сервера.

  • version_compile_os

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

    Тип операционной системы, на которой был построен MySQL.

  • wait_timeout

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

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

    При запуске потока значение сеанса wait_timeout инициализируется из значения глобальной переменной wait_timeout или из значения глобальной переменной interactive_timeout, в зависимости от типа клиента (как определено опцией подключения CLIENT_INTERACTIVE). См. также interactive_timeout.

  • warning_count

    Количество ошибок, предупреждений и заметок, возникших в результате последнего оператора, который сгенерировал сообщения. Эта переменная только для чтения. См. Раздел 13.7.5.40, “Оператор SHOW WARNINGS”.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/server-system-variables.html

Spec-Zone.ru

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