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 имеет види не обязательно должен быть зарегистрирован где-либо, чтобы использоваться. Этот UPN отправляется сервером в начале рукопожатия аутентификации.user_id@computer_nameЭта переменная управляет отправкой сервером UPN в начальном запросе. По умолчанию переменная включена. По соображениям безопасности её можно отключить, чтобы избежать отправки имени учётной записи сервера клиенту как открытого текста. Если переменная отключена, сервер всегда отправляет байт
0x00в первом запросе, клиент не указываетtargetName, и в результате используется аутентификация NTLM.Если сервер не может получить свой UPN (что происходит в основном в средах, которые не поддерживают аутентификацию Kerberos), UPN не отправляется сервером, и используется аутентификация NTLM.
-
Формат командной строки --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[={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[={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[={OFF|ON}]Устаревший Да Системная переменная avoid_temporal_upgradeОбласть действия Глобальная Динамический Да Тип Булево Значение по умолчанию OFFЭта переменная управляет тем, будет ли
ALTER TABLEнеявно обновлять временные столбцы, обнаруженные в формате до 5.6.4 (TIME,DATETIMEиTIMESTAMPстолбцы без поддержки точности дробной секунды). Для обновления таких столбцов требуется перестроение таблицы, что предотвращает использование быстрых изменений, которые могли бы применяться к операции.Эта переменная по умолчанию отключена. Её включение приводит к тому, что
ALTER TABLEне перестраивает временные столбцы, и тем самым может воспользоваться возможными быстрыми изменениями.Эта переменная устарела; ожидается её удаление в будущих версиях MySQL.
-
Формат командной строки --back-log=#Системная переменная back_logОбласть действия Глобальная Динамический Нет Тип Целое число Значение по умолчанию -1(указывает на автоматическое изменение размера; не присваивайте это литеральное значение)Минимальное значение 1Максимальное значение 65535Количество ожидающих запросов подключений, которые может иметь MySQL. Это становится актуальным, когда основной поток MySQL получает очень много запросов подключения очень быстро. Затем требуется некоторое время (хотя и очень короткое) для основного потока, чтобы проверить соединение и запустить новый поток. Значение
back_logуказывает, сколько запросов может быть в очереди в течение этого короткого времени, прежде чем MySQL временно перестанет отвечать на новые запросы. Необходимо увеличить это значение только в том случае, если ожидается большое количество подключений в короткий промежуток времени.Другими словами, это значение — размер очереди подключения для входящих соединений TCP/IP. Ваша операционная система имеет собственное ограничение на размер этой очереди. Более подробную информацию можно найти в руководстве по системному вызову Unix
listen(). Проверьте документацию вашей ОС для максимального значения этой переменной.back_logне может быть установлено выше, чем предел вашей операционной системы.Значение по умолчанию основано на следующей формуле, ограниченной значением 900:
50 + (max_connections / 5)
-
Формат командной строки --basedir=dir_nameСистемная переменная basedirОбласть действия Глобальная Динамический Нет Тип Имя каталога Значение по умолчанию configuration-dependent defaultПуть к каталогу установки MySQL.
-
Формат командной строки --big-tables[={OFF|ON}]Системная переменная big_tablesОбласть действия Глобальная, Сеанс Динамический Да Тип Булево Значение по умолчанию OFFПри включении сервер хранит все временные таблицы на диске, а не в памяти. Это предотвращает большинство ошибок
The tableдляtbl_nameis fullSELECTопераций, требующих большой временной таблицы, но также замедляет запросы, для которых таблицы в памяти были бы достаточны.Значение по умолчанию для новых соединений —
OFF(использовать временные таблицы в памяти). Обычно включать эту переменную не нужно, так как сервер может автоматически обрабатывать большие наборы результатов, используя память для небольших временных таблиц и переходя к диску по мере необходимости. -
Формат командной строки --bind-address=addrСистемная переменная bind_addressОбласть действия Глобальная Динамический Нет Тип Строка Значение по умолчанию *Сервер MySQL прослушивает один сетевой сокет для подключений TCP/IP. Этот сокет привязан к одному адресу, но возможно, что адрес отображается на нескольких сетевых интерфейсах. Чтобы указать адрес, задайте
bind_address=при запуске сервера, гдеaddraddr— 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Область видимости Глобальная, сессии Динамическая Да Тип Строка Значение по умолчанию aes-128-ecbЭта переменная управляет режимом блочного шифрования для алгоритмов на основе блоков, таких как AES. Она влияет на шифрование для
AES_ENCRYPT()иAES_DECRYPT().block_encryption_modeпринимает значение в форматеaes-, гдеkeylen-modekeylen— это длина ключа в битах, а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Область видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 8388608Минимальное значение 0Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295Единица измерения байт/поток MyISAMиспользует специальный кэш древовидной структуры, чтобы ускорить массовую вставку дляINSERT ... SELECT,INSERT ... VALUES (...), (...), ...иLOAD DATAпри добавлении данных в незаполненные таблицы. Эта переменная ограничивает размер дерева кэша в байтах на поток. Установка значения 0 отключает эту оптимизацию. Значение по умолчанию — 8 МБ. -
Системная переменная 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Область видимости Глобальная, сессии Динамическая Да Тип Строка Значение по умолчанию utf8Кодировка символов, используемая для литералов, указанных без спецификатора кодировки, и для преобразования числа в строку. Информацию о спецификаторах см. в Разделе 10.3.8, «Спецификаторы кодировки символов».
-
Системная переменная 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=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Область действия Глобальная, Сессия Динамическая Да Тип Строка Значение по умолчанию utf8Набор символов, используемый для возврата результатов запроса клиенту. Это включает данные результата, такие как значения столбцов, метаданные результата, такие как имена столбцов, и сообщения об ошибках.
-
Формат командной строки --character-set-server=nameПеременная сервера character_set_serverОбласть действия Глобальная, Сессия Динамическая Да Тип Строка Значение по умолчанию latin1Набор символов по умолчанию сервера. См. Раздел 10.15, «Настройка набора символов». Если вы задаете эту переменную, вам также следует установить
collation_server, чтобы указать сортировку для набора символов. -
Переменная сервера character_set_systemОбласть действия Глобальная Динамическая Нет Тип Строка Значение по умолчанию utf8Набор символов, используемый сервером для хранения идентификаторов. Значение всегда равно
utf8. -
Формат командной строки --character-sets-dir=dir_nameПеременная сервера character_sets_dirОбласть действия Глобальная Динамическая Нет Тип Имя каталога Каталог, в котором установлены наборы символов. См. Раздел 10.15, «Настройка набора символов».
-
Формат командной строки --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не имеет значения, потому что столбцы имеют свою собственную сортировку, которая имеет более высокую сортировочную приоритетность (см. Раздел 10.8.4, «Сортировка приведения типов в выражениях»). -
Переменная сервера 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=nameПеременная сервера collation_serverОбласть действия Глобальная, Сессия Динамическая Да Тип Строка Значение по умолчанию latin1_swedish_ciСортировка по умолчанию сервера. См. Раздел 10.15, «Настройка набора символов».
-
Формат командной строки --completion-type=#Системная переменная completion_typeОбласть действия Глобальная, Сеансовая Динамическая Да Тип Перечисление Значение по умолчанию NO_CHAINДопустимые значения NO_CHAINCHAINRELEASE012Тип завершения транзакции. Эта переменная может принимать значения, показанные в следующей таблице. Переменная может быть назначена, используя либо имена значений, либо соответствующие целочисленные значения.
Значение Описание 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[=value]Системная переменная concurrent_insertОбласть действия Глобальная Динамическая Да Тип Перечисление Значение по умолчанию AUTOДопустимые значения NEVERAUTOALWAYS012Если
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Область действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 10Минимальное значение 2Максимальное значение 31536000Единица измерения секунды Количество секунд, в течение которого сервер mysqld ожидает пакет подключения перед ответом с
Bad handshake. Значение по умолчанию составляет 10 секунд.Увеличение значения
connect_timeoutможет помочь, если клиенты часто сталкиваются с ошибками типаLost connection to MySQL server at '.XXX', system error:errno -
Системная переменная core_fileОбласть действия Глобальная Динамическая Нет Тип Булево Значение по умолчанию OFFСледует ли записывать файл core, если сервер неожиданно завершает работу. Эта переменная устанавливается опцией
--core-file. -
Формат командной строки --datadir=dir_nameСистемная переменная datadirОбласть действия Глобальная Динамическая Нет Тип Имя каталога Путь к каталогу данных сервера MySQL. Относительные пути разрешаются относительно текущего каталога. Если вы ожидаете, что сервер будет запускаться автоматически (то есть в контекстах, для которых вы не можете предположить, каков текущий каталог), лучше указать значение
datadirкак абсолютный путь. -
Эта переменная не используется. Она устарела и удалена в MySQL 8.0.
-
Эта переменная не используется. Она устарела и удалена в MySQL 8.0.
-
Формат командной строки --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 необходимо настроить MySQL с помощью параметра
-DWITH_DEBUG=ONCMake (см. Раздел 2.8.7, «Параметры конфигурации исходного кода MySQL»); в противном случае эта переменная системы недоступна.Глобальное значение переменной только для чтения и указывает, включен ли модуль. По умолчанию Debug Sync отключен, и значение
debug_syncравноOFF. Если сервер запущен с--debug-sync-timeout=, гдеNN— значение таймаута больше 0, Debug Sync включён, и значениеdebug_syncравноON - current signal, за которым следует имя сигнала. ТакжеNстановится значением таймаута по умолчанию для отдельных точек синхронизации.Сеансовое значение может быть прочитано любым пользователем и имеет такое же значение, как и глобальная переменная. Сеансовое значение может быть установлено для управления точками синхронизации.
Установка сеансового значения этой переменной — ограниченная операция. Сеансовый пользователь должен иметь достаточные привилегии для установки ограниченных сеансовых переменных. См. Раздел 5.1.8.1, «Привилегии переменных системы».
Описание модуля Debug Sync и как использовать точки синхронизации см. в документации MySQL Server Doxygen.
-
Формат командной строки --default-authentication-plugin=plugin_nameПеременная системы default_authentication_pluginОбласть действия Глобальная Динамическая Нет Тип Перечисление Значение по умолчанию mysql_native_passwordДопустимые значения mysql_native_passwordsha256_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Область действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию (≥ 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=nameПеременная системы default_storage_engineОбласть действия Глобальная, Сеанс Динамическая Да Тип Перечисление Значение по умолчанию InnoDBПо умолчанию движок хранения для таблиц. См. Главу 15, Альтернативные движки хранения. Эта переменная устанавливает движок хранения только для постоянных таблиц. Чтобы установить движок хранения для
TEMPORARYтаблиц, установите переменную системыdefault_tmp_storage_engine.Чтобы узнать, какие движки хранения доступны и включены, используйте оператор
SHOW ENGINESили запрос к таблицеINFORMATION_SCHEMAENGINES.Если вы отключите движок хранения по умолчанию при запуске сервера, вы должны установить движок по умолчанию для постоянных и
TEMPORARYтаблиц на другой движок, иначе сервер не сможет запуститься. -
Формат командной строки --default-tmp-storage-engine=nameПеременная системы default_tmp_storage_engineОбласть действия Глобальная, Сеанс Динамическая Да Тип Перечисление Значение по умолчанию InnoDBПо умолчанию движок хранения для
TEMPORARYтаблиц (созданных с помощьюCREATE TEMPORARY TABLE). Чтобы установить движок хранения для постоянных таблиц, установите переменную системыdefault_storage_engine. Также см. обсуждение этой переменной в отношении возможных значений.Если вы отключите движок хранения по умолчанию при запуске сервера, вы должны установить движок по умолчанию для постоянных и
TEMPORARYтаблиц на другой движок, иначе сервер не сможет запуститься. -
Формат командной строки --default-week-format=#Переменная системы default_week_formatОбласть действия Глобальная, Сеанс Динамическая Да Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 7Значение режима по умолчанию для использования функции
WEEK(). См. Раздел 12.7, “Функции даты и времени”. -
Формат командной строки --delay-key-write[={OFF|ON|ALL}]Переменная системы delay_key_writeОбласть действия Глобальная Динамическая Да Тип Перечисление Значение по умолчанию ONДопустимые значения OFFONALLЭта переменная определяет, как использовать отложенные записи ключей. Она применяется только к
MyISAMтаблицам. Отложенные записи ключей приводят к тому, что буферы ключей не сбрасываются между записями. См. также Раздел 15.2.1, “Параметры запуска MyISAM”.Эта переменная может принимать одно из следующих значений для влияния на обработку параметра
DELAY_KEY_WRITEтаблицы, который можно использовать в операторахCREATE TABLE.Вариант Описание OFFDELAY_KEY_WRITEигнорируется.ONMySQL учитывает любой параметр 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Область действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 100Минимальное значение 1Максимальное значение (64-разрядные платформы) 18446744073709551615Максимальное значение (32-разрядные платформы) 4294967295Эта переменная системы устарела (потому что
DELAYEDвставки не поддерживаются); ожидается, что она будет удалена в будущей версии. -
Формат командной строки --delayed-insert-timeout=#Устарело Да Переменная системы delayed_insert_timeoutОбласть действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 300Минимальное значение 1Максимальное значение 31536000Единица измерения секунды Эта переменная системы устарела (потому что
DELAYEDвставки не поддерживаются); ожидается, что она будет удалена в будущей версии. -
Формат командной строки --delayed-queue-size=#Устарело Да Переменная системы delayed_queue_sizeОбласть действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 1000Минимальное значение 1Максимальное значение (64-разрядные платформы) 18446744073709551615Максимальное значение (32-разрядные платформы) 4294967295Эта переменная системы устарела (потому что
DELAYEDвставки не поддерживаются); ожидается, что она будет удалена в будущей версии.
-
Формат командной строки --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Область действия Глобальная, сеанс Динамическая Да Тип Целое число Значение по умолчанию 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[={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Область Глобальная, Сеанс Динамическая Да Тип Целое число Значение по умолчанию 200Минимальное значение 0Максимальное значение 4294967295Эта переменная указывает количество диапазонов равенства в условии сравнения по равенству, когда оптимизатору следует переключиться с использования индексных погружений на индексную статистику при оценке количества удовлетворяющих строк. Она применяется к оценке выражений, имеющих один из этих эквивалентных форм, где оптимизатор использует не уникальный индекс для поиска значений
col_name:col_nameIN(val1, ...,valN)col_name=val1OR ... ORcol_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. -
Количество ошибок, возникших в результате последней команды, сгенерировавшей сообщения. Эта переменная является только для чтения. См. Раздел 13.7.5.17, «Выполнение команды SHOW ERRORS».
-
Формат командной строки --event-scheduler[=value]Системная переменная event_schedulerОбласть Глобальная Динамическая Да Тип Перечисление Значение по умолчанию OFFДопустимые значения OFFONDISABLEDЭта переменная включает или отключает, а также запускает или останавливает Планировщик событий. Возможные состояния —
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'может быть недействительным. Имейте в виду, что режим SQLTRADITIONALвключает строгий режим и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Область действия Сеанс Динамическая Нет Тип Строка Имя внешнего пользователя, используемого во время процесса аутентификации, заданное плагином, используемым для аутентификации клиента. С помощью родной (встроенной) аутентификации MySQL или если плагин не задаёт значение, эта переменная равна
NULL. См. Раздел 6.2.14, «Пользователи-прокси». -
Формат командной строки --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Область видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 31536000Единица измерения секунды Если это значение установлено в ненулевое, все таблицы закрываются каждые
flush_timeсекунды для освобождения ресурсов и синхронизации несохраненных данных на диск. Этот параметр лучше всего использовать только на системах с минимальными ресурсами.ПримечаниеЕсли включен
flush, значениеflush_timeне имеет значения, и измененияflush_timeне влияют на поведение сброса. -
Системная переменная 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=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Область видимости Глобальная Динамическая Нет Тип Целое число Значение по умолчанию 84Минимальное значение 10Максимальное значение 84Максимальная длина слова, которое должно быть включено в индекс
MyISAMFULLTEXT.ПримечаниеИндексы
FULLTEXTдля таблицMyISAMдолжны быть перестроены после изменения этой переменной. ИспользуйтеREPAIR TABLE.tbl_nameQUICK -
Формат командной строки --ft-min-word-len=#Системная переменная ft_min_word_lenОбласть видимости Глобальная Динамическая Нет Тип Целое число Значение по умолчанию 4Минимальное значение 1Максимальное значение 82Минимальная длина слова, которое должно быть включено в индекс
MyISAMFULLTEXT.ПримечаниеИндексы
FULLTEXTдля таблицMyISAMдолжны быть перестроены после изменения этой переменной. ИспользуйтеREPAIR TABLE.tbl_nameQUICK -
Формат командной строки --ft-query-expansion-limit=#Системная переменная ft_query_expansion_limitОбласть видимости Глобальная Динамическая Нет Тип Целое число Значение по умолчанию 20Минимальное значение 0Максимальное значение 1000Количество лучших совпадений для использования в полнотекстовых поисках, выполняемых с использованием
WITH QUERY EXPANSION. -
Формат командной строки --ft-stopword-file=file_nameСистемная переменная ft_stopword_fileОбласть видимости Глобальная Динамическая Нет Тип Имя файла Файл, из которого следует читать список стоп-слов для полнотекстовых поисков в таблицах
MyISAM. Сервер ищет файл в каталоге данных, если только не указано абсолютное имя пути для указания другого каталога. Используются все слова из файла; комментарии не учитываются. По умолчанию используется встроенный список стоп-слов (как определено в файлеstorage/myisam/ft_static.c). Установка этой переменной в пустую строку ('') отключает фильтрацию стоп-слов. См. также Раздел 12.9.4, «Стоп-слова полнотекстового поиска».ПримечаниеИндексы
FULLTEXTдля таблицMyISAMдолжны быть перестроены после изменения этой переменной или содержимого файла стоп-слов. ИспользуйтеREPAIR TABLE.tbl_nameQUICK
-
Формат командной строки --general-log[={OFF|ON}]Системная переменная general_logОбласть видимости Глобальная Динамическая Да Тип Булево Значение по умолчанию OFFВключен ли общий лог запросов. Значение может быть 0 (или
OFF) для отключения лога или 1 (илиON) для включения лога. Назначение для вывода лога контролируется системной переменнойlog_output; если это значение равноNONE, записи в лог не записываются, даже если лог включен. -
Формат командной строки --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Область видимости Глобальная, Сессии Динамическая Да Тип Целое число Значение по умолчанию 1024Минимальное значение 4Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295Максимально допустимая длина результата в байтах для функции
GROUP_CONCAT(). Значение по умолчанию равно 1024. -
YESесли библиотека сжатияzlibдоступна серверу,NOесли нет. Если нет, функцииCOMPRESS()иUNCOMPRESS()использовать нельзя. -
YESесли системный вызовcrypt()доступен серверу,NOесли нет. Если нет, функциюENCRYPT()использовать нельзя.ПримечаниеФункция
ENCRYPT()устарела в MySQL 5.7, будет удалена в будущей версии MySQL и больше не должна использоваться. (Для одностороннего хеширования рассмотрите возможность использованияSHA2()вместо этого.) Следовательно,have_cryptтакже устарела; ожидайте, что она будет удалена в будущей версии. -
YESесли mysqld поддерживает динамическую загрузку плагинов,NOесли нет. Если значение равноNO, вы не можете использовать такие параметры, как--plugin-loadдля загрузки плагинов при запуске сервера, или операторINSTALL PLUGINдля загрузки плагинов во время выполнения. -
YESесли сервер поддерживает пространственные типы данных,NOесли нет. -
Эта переменная является синонимом для
have_ssl. -
YESесли доступна возможность профилирования операторов,NOесли нет. Если доступна, системная переменнаяprofilingуправляет тем, включена ли эта возможность или отключена. См. Раздел 13.7.5.31, «Оператор SHOW PROFILES».Эта переменная устарела; ожидайте, что она будет удалена в будущей версии MySQL.
-
YESесли mysqld поддерживает кэш запросов,NOесли нет.ПримечаниеКэш запросов устарел начиная с MySQL 5.7.20 и удален в MySQL 8.0. Устаревание включает
have_query_cache. -
YESесли индексыRTREEдоступны,NOесли нет. (Они используются для пространственных индексов в таблицахMyISAM.) -
Системная переменная have_sslОбласть видимости Глобальная Динамическая Нет Тип Строка Допустимые значения YES(доступна поддержка SSL)DISABLED(поддержка SSL была скомпилирована в сервер, но сервер не был запущен с необходимыми параметрами для его включения)YESесли mysqld поддерживает SSL-подключения,DISABLEDесли сервер был скомпилирован с поддержкой SSL, но не был запущен с соответствующими параметрами шифрования соединения. Для получения дополнительной информации см. Раздел 2.8.6, «Настройка поддержки библиотеки SSL». -
Системная переменная have_statement_timeoutОбласть видимости Глобальная Динамическая Нет Тип Булево Доступна ли функция тайм-аута выполнения оператора (см. Подсказки оптимизатора времени выполнения оператора). Значение может быть
NO, если фоновый поток, используемый этой функцией, не может быть инициализирован. -
YESесли поддержка символических ссылок включена,NOесли нет. Это необходимо в Unix для поддержки параметров таблицDATA DIRECTORYиINDEX DIRECTORY. Если сервер запущен с параметром--skip-symbolic-links, значение равноDISABLED.Эта переменная не имеет значения в Windows.
-
Формат командной строки --host-cache-size=#Переменная системы host_cache_sizeОбласть действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию -1(указывает на автоматическое изменение размера; не присваивайте это литеральное значение)Минимальное значение 0Максимальное значение 65536Сервер MySQL поддерживает кэш хостов в оперативной памяти, содержащий информацию о имени и IP-адресе клиента, и используется для избежания запросов к DNS (Domain Name System); см. Раздел 5.1.11.2, «DNS-запросы и кэш хостов».
Переменная
host_cache_sizeуправляет размером кэша хостов, а также размером таблицы Performance Schemahost_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Область действия Глобальная Динамическая Нет Тип Строка Сервер устанавливает эту переменную в имя хоста сервера при запуске.
-
Эта переменная является синонимом для переменной
last_insert_id. Она существует для совместимости с другими системами баз данных. Вы можете прочитать её значение с помощьюSELECT @@identity, и установить с помощьюSET identity. -
Устаревший 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=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Область действия Глобальная, сеанс Динамическая Да Тип Целое число Значение по умолчанию 28800Минимальное значение 1Максимальное значение 31536000Единица измерения секунды Количество секунд, которое сервер ожидает активности по интерактивному подключению перед его закрытием. Интерактивный клиент определяется как клиент, который использует опцию
CLIENT_INTERACTIVEдля . Смотрите такжеwait_timeout. -
internal_tmp_disk_storage_engineФормат командной строки --internal-tmp-disk-storage-engine=#Переменная системы internal_tmp_disk_storage_engineОбласть действия Глобальная Динамическая Да Тип Перечисление Значение по умолчанию INNODBДопустимые значения MYISAMINNODBДвижок хранения для временных внутренних таблиц на диске (см. Раздел 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Область действия Глобальная, сеанс Динамическая Да Тип Целое число Значение по умолчанию 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[={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Область действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 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Область действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 300Минимальное значение 100Максимальное значение (64-битные платформы) 18446744073709551516Максимальное значение (32-битные платформы) 4294967196Размер блока 100Это значение управляет понижением буферов из горячего подсписка кэша ключей в теплый подсписок. Более низкие значения вызывают понижение быстрее. Минимальное значение равно 100. Значение по умолчанию равно 300. См. Раздел 8.10.2, «Кэш ключей MyISAM».
-
Формат командной строки --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Область действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 100Минимальное значение 1Максимальное значение 100Точка разделения между горячим и теплым подсписками списка буфера кэша ключей. Значение представляет собой процент списка буфера, который используется для теплого подсписка. Допустимые значения находятся в диапазоне от 1 до 100. Значение по умолчанию равно 100. См. Раздел 8.10.2, «Кэш ключей MyISAM».
-
Системная переменная large_files_supportОбласть действия Глобальная Динамическая Нет Тип Булево Поддерживает ли mysqld опции поддержки больших файлов.
-
Формат командной строки --large-pages[={OFF|ON}]Системная переменная large_pagesОбласть видимости Глобальная Динамическая Нет Специфичная для платформы Linux Тип Булево Значение по умолчанию OFFВключена ли поддержка больших страниц (через опцию
--large-pages). См. Раздел 8.12.4.3, «Включение поддержки больших страниц». -
Системная переменная large_page_sizeОбласть видимости Глобальная Динамическая Нет Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 65535Единица измерения байты Если поддержка больших страниц включена, это показывает размер страниц памяти. Большие страницы памяти поддерживаются только в Linux; на других платформах значение этой переменной всегда равно 0. См. Раздел 8.12.4.3, «Включение поддержки больших страниц».
-
Значение, которое будет возвращено из
LAST_INSERT_ID(). Это хранится в бинарном журнале, когда вы используетеLAST_INSERT_ID()в операторе, который обновляет таблицу. Установка этой переменной не обновляет значение, возвращаемое функцией C API. -
Формат командной строки --lc-messages=nameСистемная переменная lc_messagesОбласть видимости Глобальная, Сессии Динамическая Да Тип Строка Значение по умолчанию en_USЛокаль, используемая для сообщений об ошибках. Значение по умолчанию —
en_US. Сервер преобразует аргумент в имя языка и объединяет его со значениемlc_messages_dirдля определения местоположения файла сообщений об ошибках. См. Раздел 10.12, «Установка языка сообщений об ошибках». -
Формат командной строки --lc-messages-dir=dir_nameСистемная переменная lc_messages_dirОбласть видимости Глобальная Динамическая Нет Тип Имя каталога Каталог, в котором расположены сообщения об ошибках. Сервер использует это значение вместе со значением
lc_messagesдля определения местоположения файла сообщений об ошибках. См. Раздел 10.12, «Установка языка сообщений об ошибках». -
Формат командной строки --lc-time-names=valueСистемная переменная lc_time_namesОбласть видимости Глобальная, Сессии Динамическая Да Тип Строка Эта переменная указывает локаль, которая управляет языком, используемым для отображения названий и сокращений дней и месяцев. Эта переменная влияет на вывод функций
DATE_FORMAT(),DAYNAME()иMONTHNAME(). Имена локалей — это значения в стиле POSIX, такие как'ja_JP'или'pt_BR'. Значение по умолчанию —'en_US'независимо от настроек локали вашей системы. Для получения дополнительной информации см. Раздел 10.16, «Поддержка локали сервера MySQL». -
Системная переменная licenseОбласть видимости Глобальная Динамическая Нет Тип Строка Значение по умолчанию GPLТип лицензии сервера.
-
Формат командной строки --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Область видимости Глобальная, Сессии Динамическая Да Тип Целое число Значение по умолчанию 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Область действия Глобальная Динамическая Нет Тип Булево Значение по умолчанию OFF -
Формат командной строки --log-error[=file_name]Переменная системы log_errorОбласть действия Глобальная Динамическая Нет Тип Имя файла Назначение вывода лога ошибок. Если назначение — консоль, значение —
stderr. В противном случае, назначение — файл, и значениеlog_errorявляется именем файла. См. Раздел 5.4.2, «Лог ошибок». -
Формат командной строки --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=nameПеременная системы log_outputОбласть действия Глобальная Динамическая Да Тип Множество Значение по умолчанию FILEДопустимые значения TABLEFILENONEНазначение или назначения для вывода лога запросов и лога медленных запросов. Значение — список одного или нескольких слов, разделенных запятыми, выбранных из
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[={OFF|ON}]Переменная системы log_queries_not_using_indexesОбласть действия Глобальная Динамическая Да Тип Булево Значение по умолчанию OFFПри включении этой переменной при включенном логе медленных запросов, регистрируются запросы, ожидающие получения всех строк. См. Раздел 5.4.5, «Лог медленных запросов». Это не обязательно означает, что индекс не используется. Например, запрос, использующий полный сканирование индекса, использует индекс, но будет залогирован, так как индекс не ограничивает количество строк.
-
Формат командной строки --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[={OFF|ON}]Переменная системы log_syslogОбласть действия Глобальная Динамическая Да Тип Булево Значение по умолчанию (Unix) OFFЗначение по умолчанию (Windows) ONЗаписывать ли вывод лога ошибок в системный лог. На Windows это журнал событий, а на Unix и Unix-подобных системах —
syslog. Значение по умолчанию зависит от платформы:На Windows вывод в журнал событий включен по умолчанию.
На Unix и Unix-подобных системах вывод в
syslogвыключен по умолчанию.
Независимо от значения по умолчанию,
log_syslogможно явно установить для управления выводом на любой поддерживаемой платформе.Управление выводом в системный лог отличается от отправки вывода ошибок в файл или на консоль. Вывод ошибок можно направлять в файл или на консоль дополнительно к или вместо системного лога по желанию. См. Раздел 5.4.2, «Лог ошибок».
-
Формат командной строки --log-syslog-facility=valueПеременная системы log_syslog_facilityОбласть действия Глобальная Динамическая Да Тип Строка Значение по умолчанию daemonУровень журнала ошибок, записываемый в
syslog(какой тип программы отправляет сообщение). Эта переменная не работает, если переменная системыlog_syslogне включена. См. Раздел 5.4.2.3, «Журналирование ошибок в системный журнал».Допустимые значения могут варьироваться в зависимости от операционной системы; обратитесь к документации вашей системы
syslog.Эта переменная отсутствует в Windows.
-
Формат командной строки --log-syslog-include-pid[={OFF|ON}]Переменная системы log_syslog_include_pidОбласть действия Глобальная Динамическая Да Тип Булево Значение по умолчанию ONВключать ли идентификатор процесса сервера в каждой строке журнала ошибок, записываемой в
syslog. Эта переменная не работает, если переменная системыlog_syslogне включена. См. Раздел 5.4.2.3, «Журналирование ошибок в системный журнал».Эта переменная отсутствует в Windows.
-
Формат командной строки --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Область действия Глобальная Динамическая Да Тип Перечисление Значение по умолчанию UTCДопустимые значения UTCSYSTEMЭта переменная управляет часовым поясом временных меток в сообщениях, записываемых в журнал ошибок, а также в сообщениях журнала запросов и журнала медленных запросов, записываемых в файлы. Она не влияет на часовой пояс сообщений общего журнала запросов и журнала медленных запросов, записываемых в таблицы (
mysql.general_log,mysql.slow_log). Строки, извлечённые из этих таблиц, можно преобразовать из локального часового пояса системы в любой желаемый часовой пояс с помощьюCONVERT_TZ()или установкой системной переменной сессииtime_zone.Разрешенные значения
log_timestamps—UTC(по умолчанию) иSYSTEM(локальный часовой пояс системы).Временные метки записываются в формате ISO 8601/RFC 3339:
плюс хвостовое значениеYYYY-MM-DDThh:mm:ss.uuuuuuZ, обозначающее время по Гринвичу (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Область действия Глобальная Динамический Да Тип Целое число Значение по умолчанию 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Область действия Глобальная, Сеанс Динамический Да Тип Числовой Значение по умолчанию 10Минимальное значение 0Максимальное значение 31536000Единица измерения секунды Если выполнение запроса занимает более этого количества секунд, сервер увеличивает переменную состояния
Slow_queries. Если журнал медленных запросов включён, запрос записывается в файл журнала медленных запросов. Это значение измеряется в реальном времени, а не во времени выполнения на процессоре, поэтому запрос, находящийся ниже порога на малонагруженном сервере, может превышать порог на сильно загруженном. Минимальное и значение по умолчанию дляlong_query_timeсоставляют 0 и 10 соответственно. Максимальное значение — 31536000, что соответствует 365 дням в секундах. Значение можно указывать с точностью до микросекунд. См. Раздел 5.4.5, «Журнал медленных запросов».Более низкие значения этой переменной приводят к тому, что больше операторов считаются длительными, что приводит к увеличению требуемого места для журнала медленных запросов. Для очень низких значений (менее одной секунды) журнал может быстро увеличиться в объеме. Увеличение числа операторов, считаемых длительными, может также привести к ложным срабатываниям предупреждения «“избыточное количество длительных процессов”» в MySQL Enterprise Monitor, особенно если включена репликация Group Replication. По этим причинам очень низкие значения следует использовать только в тестовых средах или, в производственных, только на непродолжительное время.
-
Формат командной строки --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Область действия Глобальная Динамический Нет Тип Булево Эта переменная описывает чувствительность к регистру имён файлов в файловой системе, где находится каталоги данных.
OFFозначает, что имена файлов чувствительны к регистру,ONозначает, что они нечувствительны к регистру. Эта переменная является только для чтения, так как она отражает атрибут файловой системы, и её установка не повлияет на файловую систему.
-
Формат командной строки --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_nametbl_name. При использованииMyISAMдоступ к именам таблиц с разным регистром может привести к повреждению индекса.Если вы попытаетесь запустить сервер с
--lower_case_table_names=0на файловой системе, нечувствительной к регистру, будет выведено сообщение об ошибке, и сервер завершит работу.Настройка этой переменной влияет на поведение опций фильтрации репликации относительно чувствительности к регистру. Более подробная информация приведена в разделе 16.2.5 «Как серверы оценивают правила фильтрации репликации».
-
Формат командной строки --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Область действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 100Минимальное значение 1Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295После
max_connect_errorsпоследовательных запросов на подключение с одного хоста, прерванных без успешного подключения, сервер блокирует этот хост от дальнейших подключений. Если подключение с хоста установлено успешно менее чем заmax_connect_errorsпопыток после прерывания предыдущего подключения, счетчик ошибок для хоста сбрасывается до нуля. Чтобы разблокировать заблокированные хосты, очистите кэш хостов; см. Очистка кэша хостов. -
Формат командной строки --max-connections=#Переменная системы max_connectionsОбласть действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 151Минимальное значение 1Максимальное значение 100000Максимальное допустимое количество одновременных подключений клиентов. Эффективное максимальное значение — меньшее из эффективного значения
open_files_limit- 810и значения, фактически установленного дляmax_connections.Дополнительная информация приведена в разделе 5.1.11.1 «Интерфейсы подключений».
-
Формат командной строки --max-delayed-threads=#Устаревший Да Переменная системы max_delayed_threadsОбласть действия Глобальная, сеанс Динамическая Да Тип Целое число Значение по умолчанию 20Минимальное значение 0Максимальное значение 16384Эта переменная системы устарела (потому что
DELAYEDвставки не поддерживаются); ожидается ее удаление в будущих версиях.
-
Формат командной строки --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Область действия Глобальная, Сессия Динамическая Да Тип Целое Значение по умолчанию 64Минимальное значение 0Максимальное значение 65535Максимальное количество сообщений об ошибках, предупреждениях и информационных сообщениях, хранимых для отображения операторами
SHOW ERRORSиSHOW WARNINGS. Это совпадает с количеством областей условий в области диагностики и, следовательно, с количеством условий, которые можно проверить с помощью оператораGET DIAGNOSTICS. -
Формат командной строки --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Область видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 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Область видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 1024Минимальное значение 4Максимальное значение 8388608Единица измерения байты Пороговое значение размера значений индекса, определяющее, какой алгоритм
filesortиспользовать. См. Раздел 8.2.1.14, «Оптимизация ORDER BY». -
Формат командной строки --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Область видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 16382Минимальное значение 0Максимальное значение 1048576Эта переменная ограничивает общее количество подготовленных операторов на сервере. Она может использоваться в средах, где существует потенциальная опасность атак типа «отказ в обслуживании», основанных на исчерпании памяти сервера путем подготовки огромного количества операторов. Если значение установлено ниже текущего количества подготовленных операторов, существующие операторы не затрагиваются и могут использоваться, но новые операторы не могут быть подготовлены, пока текущее количество не станет меньше предела. Установка значения 0 отключает подготовленные операторы.
-
Формат командной строки --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Область видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 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Область видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 255Количество раз, которое любая хранимая процедура может быть вызвана рекурсивно. Значение по умолчанию для этого параметра равно 0, что полностью отключает рекурсию в хранимых процедурах. Максимальное значение равно 255.
Рекурсия хранимых процедур увеличивает потребность в пространстве стека потока. Если вы увеличите значение
max_sp_recursion_depth, может потребоваться увеличить размер стека потока, увеличив значениеthread_stackпри запуске сервера. -
Эта переменная не используется. Она устарела и удалена в MySQL 8.0.
-
Формат командной строки --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Область видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию (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Область видимости Глобальная Динамическая Нет Тип Целое число Значение по умолчанию 1024Минимальное значение 1Максимальное значение 1048576Единица измерения байты Размер кэша блокировок метаданных. Сервер использует этот кэш, чтобы избежать создания и уничтожения объектов синхронизации. Это особенно полезно в системах, где такие операции являются дорогостоящими, например, в Windows XP.
В MySQL 5.7.4 изменения в реализации блокировки метаданных делают эту переменную ненужной, поэтому она устарела; ожидается, что она будет удалена в будущей версии MySQL.
-
Формат командной строки --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Область видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295Запросы, которые просматривают меньше этого количества строк, не регистрируются в журнале медленных запросов.
-
Формат командной строки --multi-range-count=#Устарело Да Системная переменная multi_range_countОбласть видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 256Минимальное значение 1Максимальное значение 4294967295Эта переменная не оказывает никакого влияния. Она устарела и удалена в MySQL 8.0.
-
Формат командной строки --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Область действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию (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Область действия Глобальная Динамическая Нет Тип Целое число Значение по умолчанию (64-битные платформы) 18446744073709551615Значение по умолчанию (32-битные платформы) 4294967295Минимальное значение 7Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295Единицы измерения байты Максимальное количество памяти для использования при отображении в памяти сжатых файлов
MyISAM. Если используются многие сжатые таблицыMyISAM, значение можно уменьшить, чтобы снизить вероятность проблем с подкачкой памяти. -
Формат командной строки --myisam-recover-options[=list]Системная переменная myisam_recover_optionsОбласть действия Глобальная Динамическая Нет Тип Перечисление Значение по умолчанию OFFДопустимые значения OFFDEFAULTBACKUPFORCEQUICKУстановите режим восстановления хранилища
MyISAM. Значение переменной — любая комбинация значенийOFF,DEFAULT,BACKUP,FORCEилиQUICK. Если вы указываете несколько значений, разделяйте их запятыми. Указание переменной без значения при запуске сервера эквивалентно указаниюDEFAULT, а указание явного значения""отключает восстановление (то же самое, что и значениеOFF). Если восстановление включено, каждый раз, когда mysqld открывает таблицуMyISAM, он проверяет, помечена ли таблица как аварийная или не была закрыта должным образом. (Последний вариант работает только при отключённом внешнем блокировании). Если это так, mysqld выполняет проверку таблицы. Если таблица повреждена, mysqld пытается её восстановить.Следующие параметры влияют на работу восстановления.
Параметр Описание OFFВосстановления нет. DEFAULTВосстановление без резервной копии, принудительной проверки или быстрого контроля. BACKUPЕсли файл данных был изменён во время восстановления, сохраните резервную копию файла какtbl_name.MYD.tbl_name-datetime.BAKFORCEВыполнять восстановление даже если мы потеряем более одной строки из файла .MYD.QUICKНе проверять строки в таблице, если нет блоков удаления. Перед тем, как сервер автоматически восстанавливает таблицу, он записывает в журнал ошибок заметку о восстановлении. Если вы хотите иметь возможность восстанавливаться от большинства проблем без вмешательства пользователя, вам следует использовать параметры
BACKUP,FORCE. Это принудительно выполняет восстановление таблицы даже если будут удалены некоторые строки, но сохраняет старый файл данных как резервную копию, чтобы вы могли позже проверить, что произошло. -
Формат командной строки --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Область действия Глобальная, сессия Динамическая Да Тип Целое число Значение по умолчанию 8388608Минимальное значение 4096Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295Единицы измерения байты Размер буфера, который выделяется при сортировке индексов
MyISAMво времяREPAIR TABLEили при создании индексов с помощьюCREATE INDEXилиALTER TABLE.
-
Формат командной строки --myisam-stats-method=nameСистемная переменная myisam_stats_methodОбласть видимости Глобальная, сессии Динамическая Да Тип Перечисление Значение по умолчанию nulls_unequalДопустимые значения nulls_unequalnulls_equalnulls_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[={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[={OFF|ON}]Системная переменная named_pipeОбласть видимости Глобальная Динамическая Нет Специфично для платформы Windows Тип Булево Значение по умолчанию OFF(Только Windows.) Указывает, поддерживает ли сервер соединения через именованные каналы.
-
Формат командной строки --named-pipe-full-access-group=valueВведена в версии 5.7.25 Системная переменная named_pipe_full_access_groupОбласть видимости Глобальная Динамическая Нет Специфично для платформы Windows Тип Строка Значение по умолчанию empty stringДопустимые значения empty stringvalid 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Область видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 16384Минимальное значение 1024Максимальное значение 1048576Единица измерения байты Размер блока 1024Каждый поток клиента связан с буфером соединения и буфером результатов. Оба начинаются с размера, заданного
net_buffer_length, но динамически увеличиваются доmax_allowed_packetбайт по мере необходимости. Буфер результатов уменьшается доnet_buffer_lengthпосле каждого оператора SQL.Обычно эту переменную изменять не следует, но если у вас очень мало памяти, вы можете установить её в ожидаемую длину операторов, отправляемых клиентами. Если операторы превышают эту длину, буфер соединения автоматически увеличивается. Максимальное значение, до которого можно установить
net_buffer_length, составляет 1 МБ.Значение сессии этой переменной доступно только для чтения.
-
Формат командной строки --net-read-timeout=#Системная переменная net_read_timeoutОбласть видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 30Минимальное значение 1Максимальное значение 31536000Единица измерения секунды Количество секунд ожидания дополнительных данных от соединения перед прерыванием чтения. Когда сервер читает с клиента,
net_read_timeoutявляется значением тайм-аута, определяющим, когда следует прервать операцию. Когда сервер записывает на клиент,net_write_timeoutявляется значением тайм-аута, определяющим, когда следует прервать операцию. См. такжеslave_net_timeout. -
Формат командной строки --net-retry-count=#Системная переменная net_retry_countОбласть видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 10Минимальное значение 1Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295Если чтение или запись на коммуникационном порту прерываются, повторить попытку столько раз, прежде чем сдаться. Это значение должно быть достаточно большим на FreeBSD, поскольку внутренние прерывания отправляются всем потокам.
-
Формат командной строки --net-write-timeout=#Системная переменная net_write_timeoutОбласть действия Глобальная, Сеанс Динамическая Да Тип Целое число Значение по умолчанию 60Минимальное значение 1Максимальное значение 31536000Единица измерения секунды Количество секунд ожидания записи блока в соединение перед прерыванием записи. См. также
net_read_timeout. -
Формат командной строки --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[={OFF|ON}]Системная переменная offline_modeОбласть действия Глобальная Динамическая Да Тип Булево Значение по умолчанию OFFПризнак того, находится ли сервер в «режиме офлайн».
Подключенные клиенты, не имеющие привилегии
SUPER, будут отключены при следующем запросе с соответствующей ошибкой. Отключение включает завершение выполняемых запросов и освобождение блокировок. Такие клиенты также не могут инициировать новые подключения, и получат соответствующую ошибку.Подключенные клиенты, имеющие привилегию
SUPER, не будут отключены и смогут инициировать новые подключения для управления сервером.Потоки репликации разрешены для продолжения применения данных на сервер.
Только пользователи с привилегией
SUPERмогут управлять режимом офлайн. Для перевода сервера в режим офлайн, измените значение системной переменнойoffline_modeсOFFнаON. Для возобновления нормальной работы, изменитеoffline_modeсONнаOFF. В режиме офлайн клиенты, которым доступ закрыт, получат ошибку. -
Формат командной строки --old[={OFF|ON}]Системная переменная oldОбласть действия Глобальная Динамическая Нет Тип Булево Значение по умолчанию OFFold— переменная совместимости. Она отключена по умолчанию, но может быть включена при запуске для возврата сервера к поведению, характерному для более ранних версий.При включении
old, область действия подсказок индекса меняется на ту, что использовалась до MySQL 5.1.17. То есть, подсказки индекса безFORусловия применяются только к использованию индексов для извлечения строк, а не к разрешениюORDER BYилиGROUP BYусловий. (См. Раздел 8.9.4, «Подсказки индексов».) Будьте внимательны при включении в настройке репликации. При использовании двоичного протоколирования на основе инструкций, разное поведение у источника и реплик может привести к ошибкам репликации. -
Формат командной строки --old-alter-table[={OFF|ON}]Системная переменная old_alter_tableОбласть действия Глобальная, Сеанс Динамическая Да Тип Булево Значение по умолчанию OFFПри включении этой переменной сервер не использует оптимизированный метод обработки операции
ALTER TABLE. Он возвращается к использованию временной таблицы, копирования данных и переименования временной таблицы в исходную, как в MySQL 5.0 и более ранних версиях. Для получения дополнительной информации об операцииALTER TABLEсм. Раздел 13.1.8, «Операция ALTER TABLE».
-
Формат командной строки --old-passwords=valueУстарело Да Переменная системы old_passwordsОбласть действия Глобальная, Сеанс Динамическая Да Тип Перечисление Значение по умолчанию 0Допустимые значения 02ПримечаниеЭта переменная системы устарела в 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Область действия Глобальная Динамическая Нет Тип Целое число Значение по умолчанию 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Область действия Глобальная, Сеанс Динамическая Да Тип Целое число Значение по умолчанию 1Минимальное значение 0Максимальное значение 1Управляет эвристиками, применяемыми во время оптимизации запросов для удаления менее перспективных частичных планов из пространства поиска оптимизатора. Значение 0 отключает эвристики, поэтому оптимизатор выполняет исчерпывающий поиск. Значение 1 заставляет оптимизатор удалять планы, основанные на количестве строк, полученных промежуточными планами.
-
Формат командной строки --optimizer-search-depth=#Переменная системы optimizer_search_depthОбласть действия Глобальная, Сеанс Динамическая Да Тип Целое число Значение по умолчанию 62Минимальное значение 0Максимальное значение 62Максимальная глубина поиска, выполняемого оптимизатором запросов. Большие значения, чем количество отношений в результирующем наборе запроса, приводят к лучшим планам запросов, но занимают больше времени на создание плана выполнения запроса. Значения, меньшие, чем количество отношений в результирующем наборе запроса, возвращают план выполнения быстрее, но полученный план может быть далёк от оптимального. Если значение установлено в 0, система автоматически выбирает разумное значение.
-
Формат командной строки --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=valueСистемная переменная optimizer_traceОбласть видимости Глобальная, сессии Динамическая Да Тип Строка Эта переменная управляет трассировкой оптимизатора. Для получения подробной информации см. Раздел 8.15, «Трассировка оптимизатора».
-
Формат командной строки --optimizer-trace-features=valueСистемная переменная optimizer_trace_featuresОбласть видимости Глобальная, сессии Динамическая Да Тип Строка Эта переменная включает или отключает выбранные функции трассировки оптимизатора. Для получения подробной информации см. Раздел 8.15, «Трассировка оптимизатора».
-
Формат командной строки --optimizer-trace-limit=#Системная переменная optimizer_trace_limitОбласть видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 1Минимальное значение 0Максимальное значение 2147483647Максимальное количество трассировок оптимизатора для отображения. Для получения подробной информации см. Раздел 8.15, «Трассировка оптимизатора».
-
Формат командной строки --optimizer-trace-max-mem-size=#Системная переменная optimizer_trace_max_mem_sizeОбласть видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 16384Минимальное значение 0Максимальное значение 4294967295Единица измерения байты Максимальный суммарный размер сохраненных трассировок оптимизатора. Для получения подробной информации см. Раздел 8.15, «Трассировка оптимизатора».
-
Формат командной строки --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=#Введено 5.7.12 Системная переменная parser_max_mem_sizeОбласть видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию (64-разрядные платформы) 18446744073709551615Значение по умолчанию (32-разрядные платформы) 4294967295Минимальное значение 10000000Максимальное значение (64-разрядные платформы) 18446744073709551615Максимальное значение (32-разрядные платформы) 4294967295Единица измерения байты Максимальный объем памяти, доступный парсеру. Значение по умолчанию не устанавливает ограничений на доступную память. Значение может быть уменьшено для защиты от ситуаций нехватки памяти, вызванных анализом длинных или сложных операторов SQL.
-
Формат командной строки --pid-file=file_nameСистемная переменная pid_fileОбласть видимости Глобальная Динамическая Нет Тип Имя файла Имя пути к файлу, в котором сервер записывает свой идентификатор процесса. Сервер создает файл в каталоге данных, если только не указано абсолютное имя пути для указания другого каталога. Если вы указываете эту переменную, вы должны указать значение. Если вы не указываете эту переменную, MySQL использует значение по умолчанию
, гдеhost_name.pidhost_name— имя хост-машины.Файл идентификатора процесса используется другими программами, такими как mysqld_safe, для определения идентификатора процесса сервера. В Windows эта переменная также влияет на имя файла журнала ошибок по умолчанию. См. Раздел 5.4.2, «Журнал ошибок».
-
Формат командной строки --plugin-dir=dir_nameСистемная переменная plugin_dirОбласть видимости Глобальная Динамическая Нет Тип Имя каталога Значение по умолчанию BASEDIR/lib/pluginИмя пути каталога плагинов.
Если каталог плагинов доступен для записи сервером, пользователь может записать исполняемый код в файл в этом каталоге с помощью
SELECT ... INTO DUMPFILE. Это можно предотвратить, сделавplugin_dirдоступным только для чтения сервером или установивsecure_file_privв каталог, где записиSELECTмогут быть выполнены безопасно. -
Формат командной строки --port=port_numСистемная переменная portОбласть видимости Глобальная Динамическая Нет Тип Целое число Значение по умолчанию 3306Минимальное значение 0Максимальное значение 65535Номер порта, на котором сервер прослушивает TCP/IP-подключения. Эта переменная может быть установлена с помощью параметра
--port. -
Формат командной строки --preload-buffer-size=#Системная переменная preload_buffer_sizeОбласть видимости Глобальная, Сессия Динамическая Да Тип Целое число Значение по умолчанию 32768Минимальное значение 1024Максимальное значение 1073741824Единица измерения байты Размер буфера, который выделяется при предварительной загрузке индексов.
-
Если установлено в 0 или
OFF(значение по умолчанию), профилирование операторов отключено. Если установлено в 1 илиON, профилирование операторов включено, и операторыSHOW PROFILEиSHOW PROFILESобеспечивают доступ к информации о профилировании. См. Раздел 13.7.5.31, «Оператор SHOW PROFILES».Эта переменная устарела; ожидается, что она будет удалена в будущей версии MySQL.
-
Количество операторов, для которых следует сохранять информацию о профилировании, если включен
profiling. Значение по умолчанию — 15. Максимальное значение — 100. Установка значения 0 фактически отключает профилирование. См. Раздел 13.7.5.31, «Оператор SHOW PROFILES».Эта переменная устарела; ожидается, что она будет удалена в будущей версии MySQL.
-
Системная переменная protocol_versionОбласть видимости Глобальная Динамическая Нет Тип Целое число Значение по умолчанию 10Минимальное значение 0Максимальное значение 4294967295Версия протокола клиент/сервер, используемая сервером MySQL.
-
Системная переменная proxy_userОбласть видимости Сессия Динамическая Нет Тип Строка Если текущий клиент является прокси для другого пользователя, эта переменная — имя учетной записи пользователя-прокси. В противном случае эта переменная равна
NULL. См. Раздел 6.2.14, «Пользователи-прокси». -
Системная переменная 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Область видимости Сессия Динамическая Да Тип Целое число Значение по умолчанию 2147483647Минимальное значение 0Максимальное значение 2147483647Эта переменная предназначена для внутреннего использования сервером.
ПредупреждениеИзменение значения сессии системной переменной
pseudo_thread_idизменяет значение, возвращаемое функциейCONNECTION_ID(). -
Формат командной строки --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=#Устарело 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=#Устарело 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=#Устарело 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=#Устарело 5.7.20 Переменная системы query_cache_typeОбласть действия Глобальная, Сессия Динамическая Да Тип Перечисление Значение по умолчанию 0Допустимые значения 012Устанавливает тип кэша запросов. Установка значения
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[={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Область видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию 8192Минимальное значение 8192Максимальное значение (64-битные платформы) 18446744073709550592Максимальное значение (32-битные платформы) 4294966272Единица измерения байты Размер блока 1024Размер в байтах постоянного буфера, используемого для синтаксического анализа и выполнения операторов. Этот буфер не освобождается между операторами. Если вы выполняете сложные запросы, большее значение
query_prealloc_sizeможет помочь улучшить производительность, поскольку оно может уменьшить необходимость сервера в выделении памяти во время выполнения операций запроса. Следует помнить, что это не обязательно полностью исключает выделение памяти; сервер может по-прежнему выделять память в некоторых ситуациях, например, для операций, связанных с транзакциями, или для хранимых программ. -
Системная переменная rand_seed1Область видимости Сессия Динамическая Да Тип Целое число Значение по умолчанию N/AМинимальное значение 0Максимальное значение 4294967295Переменные
rand_seed1иrand_seed2существуют только как переменные сессии и могут быть установлены, но не прочитаны. Переменные (но не их значения) отображаются в выводеSHOW VARIABLES.Цель этих переменных — поддержка репликации функции
RAND(). Для операторов, которые вызываютRAND(), источник передает два значения реплике, где они используются для инициализации генератора случайных чисел. Реплика использует эти значения для установки переменных сессииrand_seed1иrand_seed2так, чтобыRAND()на реплике генерировала то же значение, что и на источнике. -
См. описание для
rand_seed1. -
Формат командной строки --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Область видимости Глобальная, сессии Динамическая Да Тип Целое число Значение по умолчанию (≥ 5.7.12) 8388608Значение по умолчанию (≤ 5.7.11) 1536000Минимальное значение 0Максимальное значение 18446744073709551615Единица измерения байты Предел потребления памяти для оптимизатора диапазона. Значение 0 означает “без ограничения.” Если план выполнения, рассматриваемый оптимизатором, использует метод доступа к диапазону, но оптимизатор оценивает, что объем памяти, необходимый для этого метода, превысит лимит, он отказывается от плана и рассматривает другие планы. Для получения дополнительной информации см. Ограничение использования памяти для оптимизации диапазона.
-
Системная переменная rbr_exec_modeОбласть видимости Сессия Динамическая Да Тип Перечисление Значение по умолчанию STRICTДопустимые значения STRICTIDEMPOTENTДля внутреннего использования mysqlbinlog. Эта переменная переключает сервер между режимом
IDEMPOTENTи режимомSTRICT. РежимIDEMPOTENTприводит к подавлению ошибок дубликата ключа и отсутствия ключа в операторахBINLOG, генерируемых mysqlbinlog. Этот режим полезен при воспроизведении бинарного журнала на основе строк на сервере, который вызывает конфликты с существующими данными. mysqlbinlog устанавливает этот режим, когда вы указываете опцию--idempotent, записывая следующее в вывод:SET SESSION RBR_EXEC_MODE=IDEMPOTENT;
-
Формат командной строки --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[={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Область действия Глобальная, Сеанс Динамическая Да Тип Целое число Значение по умолчанию 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[={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[={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=dir_nameПеременная системы secure_file_privОбласть действия Глобальная Динамический Нет Тип Строка Значение по умолчанию platform specificДопустимые значения empty stringdirnameNULLЭта переменная используется для ограничения эффекта операций импорта и экспорта данных, таких как те, которые выполняются операторами
LOAD DATAиSELECT ... INTO OUTFILE, а также функциейLOAD_FILE(). Эти операции разрешены только пользователям, имеющим привилегиюFILE.secure_file_privможет быть установлена следующим образом:Если пустая, переменная не оказывает влияния. Это не безопасная настройка.
Если задана именем каталога, сервер ограничивает операции импорта и экспорта работой только с файлами в этом каталоге. Каталог должен существовать; сервер его не создаёт.
Если установлено значение
NULL, сервер отключает операции импорта и экспорта.
Значение по умолчанию зависит от платформы и значения опции
INSTALL_LAYOUTCMake, как показано в следующей таблице. Чтобы явно указать значение по умолчанию дляsecure_file_priv, если вы строите из исходного кода, используйте опциюINSTALL_SECURE_FILE_PRIVDIRCMake.INSTALL_LAYOUTЗначениеЗначение по умолчанию для secure_file_privSTANDALONE,WINNULL(>= 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_EMBEDDEDDIRCMake. Значение по умолчанию для этой опции —NULL.Сервер проверяет значение
secure_file_privпри запуске и записывает предупреждение в журнал ошибок, если значение небезопасно. Значение не является безопасным, если оно пустое, или если это каталог данных или его подкаталог, или каталог, доступный всем пользователям. Еслиsecure_file_privустановлено на несуществующий путь, сервер записывает сообщение об ошибке в журнал ошибок и завершает работу. -
Формат командной строки --session-track-gtids=valueПеременная системы session_track_gtidsОбласть действия Глобальная, Сессия Динамический Да Тип Перечисление Значение по умолчанию OFFДопустимые значения OFFOWN_GTIDALL_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[={OFF|ON}]Переменная системы session_track_schemaОбласть действия Глобальная, Сессия Динамический Да Тип Булево Значение по умолчанию ONУправляет тем, отслеживает ли сервер, когда схема по умолчанию (база данных) устанавливается в текущей сессии, и уведомляет ли клиент о доступности имени схемы.
Если отслеживание имени схемы включено, уведомление о имени происходит каждый раз, когда устанавливается схема по умолчанию, даже если новое имя схемы совпадает со старым.
Для получения дополнительной информации об отслеживании состояния сессии см. Раздел 5.1.15, «Отслеживание состояния сессии клиента сервером».
-
Формат командной строки --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Допустимые значения OFFSTATECHARACTERISTICSУправляет тем, отслеживает ли сервер состояние и характеристики транзакций в текущей сессии и уведомляет ли клиент о предоставлении этой информации. Допускаются следующие значения
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[={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[={OFF|ON}]Переменная системы shared_memoryОбласть действия Глобальная Динамическая Нет Специфично для платформы Windows Тип Булево Значение по умолчанию OFF(Только Windows.) Разрешает ли сервер подключения через общую память.
-
Формат командной строки --shared-memory-base-name=nameПеременная системы shared_memory_base_nameОбласть действия Глобальная Динамическая Нет Специфично для платформы Windows Тип Строка Значение по умолчанию MYSQL(Только Windows.) Имя общей памяти для подключений через общую память. Это полезно при запуске нескольких экземпляров MySQL на одном физическом компьютере. Имя по умолчанию —
MYSQL. Имя чувствительно к регистру.Эта переменная применяется только в том случае, если сервер запущен с переменной системы
shared_memoryдля поддержки подключений через общую память.
-
Формат командной строки --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 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отображают строки из таблиц схемы Performanceglobal_variables,session_variables,global_statusиsession_status.Начиная с MySQL 5.7.9, эти таблицы имеют всеобщее право доступа для чтения и доступны без привилегии
SELECT, что означает, чтоSELECTне требуется для использования инструкцийSHOW. До MySQL 5.7.9 привилегияSELECTнеобходима для доступа к этим таблицам схемы Performance, либо непосредственно, либо косвенно через инструкцииSHOW. Несколько статусных переменных
Slave_доступны изxxxSHOW STATUS, когдаshow_compatibility_56имеет значениеON. Когдаshow_compatibility_56имеет значениеOFF, некоторые из этих переменных недоступны изSHOW STATUS. Информация, которую они предоставляют, доступна в связанных с репликацией таблицах схемы Performance, как описано позже.show_compatibility_56не влияет на доступ к системным переменным с использованием обозначения@@:@@GLOBAL.,var_name@@SESSION.,var_name@@.var_nameshow_compatibility_56не влияет на встроенный сервер, который в любом случае производит вывод, совместимый с 5.6.
В следующих описаниях подробно рассматривается влияние установки
show_compatibility_56на значениеONилиOFFв контекстах, где эта переменная применима.Влияние show_compatibility_56 на операторы SHOW
Оператор
SHOW GLOBAL VARIABLES:ON: Вывод MySQL 5.6.OFF: Вывод отображает строки из таблицыglobal_variablesPerformance Schema.
Оператор
SHOW [SESSION | LOCAL] VARIABLES:ON: Вывод MySQL 5.6.OFF: Вывод отображает строки из таблицыsession_variablesPerformance Schema. (В MySQL 5.7.6 и 5.7.7 выводOFFне полностью отражает все значения переменных системы, действующие для текущей сессии; он не включает строки для глобальных переменных, у которых нет аналогов в сессии. Эта проблема исправлена в MySQL 5.7.8.)
Оператор
SHOW GLOBAL STATUS:ON: Вывод MySQL 5.6.-
OFF: Вывод отображает строки из таблицыglobal_statusPerformance Schema, а также счётчики выполнения операторовCom_.xxxOFFвывод не включает строк для переменных сессии, у которых нет глобального аналога, в отличие от выводаON.
Оператор
SHOW [SESSION | LOCAL] STATUS:ON: Вывод MySQL 5.6.OFF: Вывод отображает строки из таблицыsession_statusPerformance Schema, а также счётчики выполнения операторовCom_. (В MySQL 5.7.6 и 5.7.7 выводxxxOFFне полностью отражает все значения переменных состояния, действующих для текущей сессии; он не включает строки для глобальных переменных, у которых нет аналогов в сессии. Эта проблема исправлена в 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_переменных состояния в таблицах переменных состояния. Для получения глобальных и по-сессионных счётчиков выполнения операторов используйте таблицыxxxevents_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_переменных состояния доступны изxxxSHOW STATUS.-
OFF: Некоторые из этих переменных реплики не доступны дляSHOW STATUSили таблиц переменных состояния Performance Schema. Информация, которую они предоставляют, доступна в таблицах Performance Schema, связанных с репликацией. Следующая таблица показывает, какиеSlave_переменные состояния становятся недоступными вxxxSHOW STATUS, и их расположение в таблицах Performance Schema репликации.Переменная состояния Расположение в Performance Schema Slave_heartbeat_periodтаблица replication_connection_configuration, столбецHEARTBEAT_INTERVALSlave_last_heartbeatтаблица replication_connection_status, столбецLAST_HEARTBEAT_TIMESTAMPSlave_received_heartbeatsтаблица replication_connection_status, столбецCOUNT_RECEIVED_HEARTBEATSSlave_retried_transactionsтаблица replication_applier_status, столбецCOUNT_TRANSACTIONS_RETRIESSlave_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[={OFF|ON}]Введено 5.7.22 Системная переменная show_create_table_verbosityОбласть Глобальная, Сессия Динамическая Да Тип Булево Значение по умолчанию OFFSHOW CREATE TABLEобычно не отображает опцию таблицыROW_FORMAT, если формат строки является форматом по умолчанию. Включение этой переменной заставляетSHOW CREATE TABLEотображатьROW_FORMATнезависимо от того, является ли это форматом по умолчанию. -
Формат командной строки --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 SchemaCOLUMNSаналогичным образом затронут.Эта переменная устарела; ожидается, что она будет удалена в будущих выпусках MySQL.
-
Формат командной строки --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[={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[={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Область видимости Глобальная Динамическая Нет Тип Булево Значение по умолчанию OFFЭто предотвращает использование оператора
SHOW DATABASES, если у пользователей нет привилегииSHOW DATABASES. Это может повысить безопасность, если у вас есть опасения по поводу возможности пользователей видеть базы данных, принадлежащие другим пользователям. Его эффект зависит от привилегииSHOW DATABASES: Если значение переменной равноON, операторSHOW DATABASESразрешен только пользователям, имеющим привилегиюSHOW DATABASES, и оператор отображает все имена баз данных. Если значение равноOFF,SHOW DATABASESразрешен всем пользователям, но отображает имена только тех баз данных, для которых у пользователя есть привилегияSHOW DATABASESили другая привилегия.ВниманиеПоскольку глобальная привилегия считается привилегией для всех баз данных, любая глобальная привилегия позволяет пользователю видеть все имена баз данных с помощью
SHOW DATABASESили путем проверки таблицыINFORMATION_SCHEMASCHEMATA. -
Формат командной строки --slow-launch-time=#Системная переменная slow_launch_timeОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 2Минимальное значение 0Максимальное значение 31536000Единица измерения секунды Если создание потока занимает больше времени, чем указанное количество секунд, сервер увеличивает значение переменной состояния
Slow_launch_threads. -
Формат командной строки --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=file_nameСистемная переменная slow_query_log_fileОбласть видимости Глобальная Динамическая Да Тип Имя файла Значение по умолчанию host_name-slow.logИмя файла журнала медленных запросов. Значение по умолчанию —
, но начальное значение может быть изменено с помощью параметраhost_name-slow.log--slow_query_log_file. -
Формат командной строки --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Область действия Глобальная, сеансовая Динамическая Да Тип Целое число Значение по умолчанию 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Область действия Глобальная, сеансовая Динамическая Да Тип Булево Значение по умолчанию OFFЕсли эта переменная включена, то после оператора, успешно вставившего автоматически сгенерированное
AUTO_INCREMENTзначение, вы можете найти это значение, выполнив оператор следующего вида:SELECT * FROM
tbl_nameWHEREauto_colIS 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Область действия Глобальная, сеансовая Динамическая Да Тип Булево Значение по умолчанию ONЕсли установлено значение
OFF, MySQL прерывает операторыSELECT, которые, вероятно, будут выполняться очень долго (то есть операторы, для которых оптимизатор оценивает, что количество проверяемых строк превышает значениеmax_join_size). Это полезно, когда был выдан нежелательный операторWHERE. Значение по умолчанию для нового соединения равноON, что допускает все операторыSELECT.Если вы установили переменную системы
max_join_sizeна значение, отличное отDEFAULT,sql_big_selectsустанавливается наOFF. -
Переменная системы sql_buffer_resultОбласть действия Глобальная, сеансовая Динамическая Да Тип Булево Значение по умолчанию OFFЕсли включено,
sql_buffer_resultпринудительно помещает результаты от операторовSELECTво временные таблицы. Это помогает MySQL раньше освободить блокировки таблиц и может быть полезно в тех случаях, когда требуется много времени для отправки результатов клиенту. Значение по умолчанию —OFF. -
Переменная системы sql_log_offОбласть действия Глобальная, сеансовая Динамическая Да Тип Булево Значение по умолчанию OFFДопустимые значения OFF(включить логирование)ON(отключить логирование)Эта переменная управляет отключением логирования в общий журнал запросов для текущего сеанса (при условии, что сам общий журнал запросов включен). Значение по умолчанию —
OFF(то есть включить логирование). Чтобы отключить или включить общий журнал запросов для текущего сеанса, установите сеансовую переменнуюsql_log_offна значениеONилиOFF.Установка сеансового значения этой переменной системы — это ограниченная операция. Пользователь сеанса должен иметь соответствующие привилегии для изменения ограниченных сеансовых переменных. См. раздел 5.1.8.1 «Привилегии на переменные системы».
-
Формат командной строки --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_DATESANSI_QUOTESERROR_FOR_DIVISION_BY_ZEROHIGH_NOT_PRECEDENCEIGNORE_SPACENO_AUTO_CREATE_USERNO_AUTO_VALUE_ON_ZERONO_BACKSLASH_ESCAPESNO_DIR_IN_CREATENO_ENGINE_SUBSTITUTIONNO_FIELD_OPTIONSNO_KEY_OPTIONSNO_TABLE_OPTIONSNO_UNSIGNED_SUBTRACTIONNO_ZERO_DATENO_ZERO_IN_DATEONLY_FULL_GROUP_BYPAD_CHAR_TO_FULL_LENGTHPIPES_AS_CONCATREAL_AS_FLOATSTRICT_ALL_TABLESSTRICT_TRANS_TABLESТекущий режим SQL сервера, который может быть динамически установлен. Для получения подробной информации см. Раздел 5.1.10, «Режимы SQL сервера».
ПримечаниеПрограммы установки MySQL могут настраивать режим SQL во время процесса установки. Если режим SQL отличается от значения по умолчанию или от того, что вы ожидаете, проверьте наличие параметра в файле параметров, который сервер считывает при запуске.
-
Системная переменная sql_notesОбласть видимости Глобальная, сеанса Динамическая Да Тип Булево Значение по умолчанию ONЕсли включено (по умолчанию), диагностика уровня
Noteувеличиваетwarning_count, и сервер записывает их. Если отключено, диагностикаNoteне увеличиваетwarning_count, и сервер не записывает их. mysqldump включает вывод для отключения этой переменной, чтобы перезагрузка файла дампа не создавала предупреждений для событий, которые не влияют на целостность операции перезагрузки. -
Системная переменная 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Область видимости Глобальная, сеанса Динамическая Да Тип Булево Значение по умолчанию OFFЕсли эта переменная включена,
UPDATEиDELETEоператоры, которые не используют ключ в предложенииWHEREили предложенииLIMIT, выдают ошибку. Это позволяет отлавливатьUPDATEиDELETEоператоры, где ключи используются неправильно и которые, вероятно, изменят или удалят большое количество строк. Значение по умолчанию —OFF.Для клиента mysql,
sql_safe_updatesможет быть включен с помощью опции--safe-updates. Для получения дополнительной информации см. Использование безопасного режима обновлений (--safe-updates). -
Системная переменная sql_select_limitОбласть видимости Глобальная, сеанса Динамическая Да Тип Целое число Значение по умолчанию 18446744073709551615Минимальное значение 0Максимальное значение 18446744073709551615Максимальное количество строк для возврата из операторов
SELECT. Для получения дополнительной информации см. Использование безопасного режима обновлений (--safe-updates).Значение по умолчанию для нового соединения — это максимальное количество строк, разрешенных сервером для каждой таблицы. Типичные значения по умолчанию — (232)−1 или (264)−1. Если вы изменили лимит, значение по умолчанию можно восстановить, присвоив значение
DEFAULT.Если
SELECTимеет предложениеLIMIT, тоLIMITимеет приоритет над значениемsql_select_limit. -
Системная переменная sql_warningsОбласть видимости Глобальная, сеанса Динамическая Да Тип Булево Значение по умолчанию OFFЭта переменная управляет тем, создают ли операторы
INSERTс одной строкой информационную строку, если возникают предупреждения. Значение по умолчанию —OFF. Установите значение вON, чтобы создать информационную строку. -
Формат командной строки --ssl-ca=file_nameСистемная переменная ssl_caОбласть видимости Глобальная Динамическая Нет Тип Имя файла Значение по умолчанию NULLИмя пути файла сертификата Центра сертификации (CA) в формате PEM. Файл содержит список доверенных центров сертификации SSL.
-
Формат командной строки --ssl-capath=dir_nameСистемная переменная ssl_capathОбласть видимости Глобальная Динамическая Нет Тип Имя каталога Значение по умолчанию NULLИмя пути каталога, содержащего доверенные файлы сертификатов Центра сертификации SSL (CA) в формате PEM. Поддержка этой возможности зависит от библиотеки SSL, используемой для компиляции MySQL; см. Раздел 6.3.4, «Возможности, зависящие от библиотеки SSL».
-
Формат командной строки --ssl-cert=file_nameСистемная переменная ssl_certОбласть действия Глобальная Динамическая Нет Тип Имя файла Значение по умолчанию NULLПуть к файлу с общедоступным сертификатом SSL-сервера в формате PEM.
Если сервер запускается с
ssl_cert, использующим ограниченный шифр или категорию шифров, сервер запускается без поддержки шифрованных подключений. Для получения информации об ограничениях шифров см. Конфигурация шифров соединения. -
Формат командной строки --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=file_nameСистемная переменная ssl_crlОбласть действия Глобальная Динамическая Нет Тип Имя файла Значение по умолчанию NULLПуть к файлу, содержащему списки отзыва сертификатов в формате PEM. Поддержка возможностей отзыва списков зависит от используемой библиотеки SSL для компиляции MySQL. См. Раздел 6.3.4, «Возможности, зависящие от библиотек SSL».
-
Формат командной строки --ssl-crlpath=dir_nameСистемная переменная ssl_crlpathОбласть действия Глобальная Динамическая Нет Тип Имя каталога Значение по умолчанию NULLПуть к каталогу, содержащему файлы списков отзыва сертификатов в формате PEM. Поддержка возможностей отзыва списков зависит от используемой библиотеки SSL для компиляции MySQL. См. Раздел 6.3.4, «Возможности, зависящие от библиотек SSL».
-
Формат командной строки --ssl-key=file_nameСистемная переменная ssl_keyОбласть действия Глобальная Динамическая Нет Тип Имя файла Значение по умолчанию NULLПуть к файлу с закрытым ключом SSL-сервера в формате PEM. Для повышения безопасности используйте сертификат с размером ключа RSA не менее 2048 бит.
Если файл ключа защищен паролем, сервер запросит у пользователя пароль. Пароль необходимо ввести в интерактивном режиме; он не может быть сохранен в файле. Если пароль неверный, программа продолжает работу так, как будто не смогла прочитать ключ.
-
Формат командной строки --stored-program-cache=#Системная переменная stored_program_cacheОбласть действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 256Минимальное значение 16Максимальное значение 524288Устанавливает мягкий верхний предел для числа кэшированных хранимых процедур на соединение. Значение этой переменной указано в терминах количества хранимых процедур, хранящихся в каждом из двух кэшей, поддерживаемых сервером MySQL для соответственно хранимых процедур и хранимых функций.
При каждом выполнении хранимой процедуры этот размер кэша проверяется до разбора первой или стартовой команды в процедуре; если число процедур одного типа (хранимые процедуры или хранимые функции в зависимости от выполняемой процедуры) превышает предел, указанный в этой переменной, соответствующий кэш сбрасывается, и выделенная ранее память для кэшированных объектов освобождается. Это позволяет безопасно сбросить кэш, даже если между хранимыми процедурами существуют зависимости.
-
Формат командной строки --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[={OFF|ON}]Устаревшая Да Системная переменная sync_frmОбласть действия Глобальная Динамическая Да Тип Булево Значение по умолчанию ONЕсли эта переменная установлена в 1, при создании любой невременной таблицы её файл
.frmсинхронизируется с диском (с использованиемfdatasync()). Это медленнее, но безопаснее в случае сбоя. Значение по умолчанию — 1.Эта переменная устарела в MySQL 5.7 и удалена в MySQL 8.0 (когда файлы
.frmустарели).
-
Переменная сервера 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Область действия Глобальная Динамическая Да Тип Целое Значение по умолчанию -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Область действия Глобальная Динамическая Да Тип Целое Значение по умолчанию 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Область действия Глобальная Динамическая Нет Тип Целое Значение по умолчанию 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Область видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию -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=nameСистемная переменная thread_handlingОбласть видимости Глобальная Динамическая Нет Тип Перечисление Значение по умолчанию one-thread-per-connectionДопустимые значения no-threadsone-thread-per-connectionloaded-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Область видимости Глобальная Динамическая Нет Тип Целое число Значение по умолчанию 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Область видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 1000Минимальное значение 0Максимальное значение 4294967294Единица измерения миллисекунды Эта переменная влияет на операторы, ожидающие выполнения в очереди низкого приоритета. Значение представляет собой количество миллисекунд, прежде чем ожидающий оператор будет перемещен в очередь высокого приоритета. Значение по умолчанию — 1000 (1 секунда).
Эта переменная доступна только в том случае, если включен плагин пула потоков. См. раздел 5.5.3, «Пул потоков MySQL Enterprise».
-
Формат командной строки --thread-pool-size=#Переменная системы thread_pool_sizeОбласть действия Глобальная Динамическая Нет Тип Целое число Значение по умолчанию 16Минимальное значение 1Максимальное значение 64Количество потоковых групп в пуле потоков. Это важнейший параметр, контролирующий производительность пула потоков. Он влияет на то, сколько инструкций может выполняться одновременно. Если указано значение, выходящее за пределы допустимого диапазона, плагин пула потоков не загружается, и сервер записывает сообщение в журнал ошибок.
Эта переменная доступна только в том случае, если плагин пула потоков включен. См. Раздел 5.5.3, «Пул потоков MySQL Enterprise».
-
Формат командной строки --thread-pool-stall-limit=#Переменная системы thread_pool_stall_limitОбласть действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 6Минимальное значение 4Максимальное значение 600Единица измерения миллисекунды * 10 Эта переменная влияет на выполнение инструкций. Значение — это количество времени, которое уходит на выполнение инструкции после ее запуска, прежде чем она будет определена как зависшая, после чего пул потоков разрешает группе потоков начать выполнение другой инструкции. Значение измеряется в единицах по 10 миллисекунд, поэтому значение по умолчанию 6 соответствует 60 мс. Короткие значения ожидания позволяют потокам быстрее запускаться. Короткие значения также лучше для предотвращения тупиковых ситуаций. Большие значения ожидания полезны для рабочих нагрузок, включающих длительные инструкции, чтобы избежать запуска слишком большого количества новых инструкций во время выполнения текущих.
Эта переменная доступна только в том случае, если плагин пула потоков включен. См. Раздел 5.5.3, «Пул потоков MySQL Enterprise».
-
Формат командной строки --thread-stack=#Переменная системы thread_stackОбласть действия Глобальная Динамическая Нет Тип Целое число Значение по умолчанию (64-битные платформы) 262144Значение по умолчанию (32-битные платформы) 196608Минимальное значение 131072Максимальное значение (64-битные платформы) 18446744073709550592Максимальное значение (32-битные платформы) 4294966272Единица измерения байты Размер блока 1024Размер стека для каждого потока. Значение по умолчанию достаточно для нормальной работы. Если размер стека потока слишком мал, это ограничивает сложность SQL-запросов, которые может обработать сервер, глубину рекурсии хранимых процедур и другие действия, потребляющие память.
-
Эта переменная не используется. Она устарела и удалена в MySQL 8.0.
-
Переменная системы time_zoneОбласть действия Глобальная, сеанс Динамическая Да Тип Строка Значение по умолчанию SYSTEMМинимальное значение -12:59Максимальное значение +13:00Текущая временная зона. Эта переменная используется для инициализации временной зоны для каждого подключенного клиента. По умолчанию начальное значение равно
'SYSTEM'(что означает «использовать значениеsystem_time_zone»). Значение можно явно указать при запуске сервера с помощью опции--default-time-zone. См. Раздел 5.1.13, «Поддержка временных зон сервера MySQL».ПримечаниеЕсли установлено значение
SYSTEM, каждый вызов функции MySQL, требующий расчета временной зоны, выполняет системный вызов для определения текущей системной временной зоны. Этот вызов может быть защищен глобальным мьютексом, что может привести к конкуренции. -
Переменная системы 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=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Область действия Глобальная, Сеанс Динамическая Да Тип Целое число Значение по умолчанию 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=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Область действия Глобальная, Сеанс Динамическая Да Тип Целое число Значение по умолчанию 8192Минимальное значение 1024Максимальное значение 131072Единица измерения байты Размер блока 1024Размер в байтах, на который необходимо увеличить пул памяти на транзакцию, которому требуется память. Смотрите описание
transaction_prealloc_size.
-
Формат командной строки --transaction-isolation=nameСистемная переменная (≥ 5.7.20) transaction_isolationОбласть действия (≥ 5.7.20) Глобальная, Сеансовая Динамическая (≥ 5.7.20) Да Тип Перечисление Значение по умолчанию REPEATABLE-READДопустимые значения READ-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READSERIALIZABLEУровень изоляции транзакции. По умолчанию используется
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 SESSIONvar_name=value; SETvar_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Область действия Глобальная, Сеансовая Динамическая Да Тип Целое число Значение по умолчанию 4096Минимальное значение 1024Максимальное значение 131072Единица измерения байты Размер блока 1024Для каждой транзакции существует пул памяти, из которого производятся различные выделения памяти, связанные с транзакцией. Начальный размер пула в байтах составляет
transaction_prealloc_size. Для каждого выделения, которое не может быть выполнено из пула, поскольку в нём недостаточно памяти, пул увеличивается наtransaction_alloc_block_sizeбайт. Когда транзакция завершается, пул обрезается доtransaction_prealloc_sizeбайт.Сделав
transaction_prealloc_sizeдостаточно большим для хранения всех операторов в одной транзакции, вы можете избежать многих вызововmalloc().
-
Формат командной строки --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 SESSIONvar_name=value; SETvar_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. -
-
Устарело 5.7.20 Системная переменная tx_isolationОбласть видимости Глобальная, сессии Динамическая Да Тип Перечисление Значение по умолчанию REPEATABLE-READДопустимые значения READ-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READSERIALIZABLEУровень изоляции транзакций по умолчанию. По умолчанию используется
REPEATABLE-READ.Примечаниеtransaction_isolationбыла добавлена в MySQL 5.7.20 как синоним дляtx_isolation, которая теперь устарела и удалена в MySQL 8.0. Приложения должны быть настроены на использованиеtransaction_isolationвместоtx_isolation. См. описаниеtransaction_isolationдля получения подробной информации. -
Устарело 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Область видимости Глобальная, сессии Динамическая Да Тип Булево Значение по умолчанию ONЕсли установлено значение 1 (по умолчанию), выполняются проверки уникальности для вторичных индексов в таблицах
InnoDB. Если установлено значение 0, механизмам хранения разрешается предполагать, что дубликаты ключей отсутствуют во входных данных. Если вы точно знаете, что ваши данные не содержат нарушений уникальности, вы можете установить это значение в 0, чтобы ускорить импорт больших таблиц вInnoDB.Установка этой переменной в 0 не требует от механизмов хранения игнорировать дубликаты ключей. Механизм все еще может проверять их и выдавать ошибки дублирования ключей, если он обнаруживает их.
-
Формат командной строки --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_. Эти переменные влияют на проверку паролей этим плагином; см. Раздел 6.4.3.2, “Параметры и переменные плагина проверки паролей”.xxx -
Номер версии сервера. Значение также может включать суффикс, указывающий информацию о сборке или конфигурации сервера.
-logуказывает, что включен один или несколько общих журналов, журналов медленных запросов или двоичных журналов.-debugуказывает, что сервер был собран с поддержкой отладки. -
Переменная системы version_commentОбласть действия Глобальная Динамическая Нет Тип Строка Программа конфигурации CMake имеет параметр
COMPILATION_COMMENT, который позволяет указать комментарий при построении MySQL. Эта переменная содержит значение этого комментария. См. Раздел 2.8.7, “Параметры конфигурации исходного кода MySQL”. -
Переменная системы version_compile_machineОбласть действия Глобальная Динамическая Нет Тип Строка Тип двоичного файла сервера.
-
Переменная системы version_compile_osОбласть действия Глобальная Динамическая Нет Тип Строка Тип операционной системы, на которой был построен MySQL.
-
Формат командной строки --wait-timeout=#Переменная системы wait_timeoutОбласть действия Глобальная, Сеанс Динамическая Да Тип Целое число Значение по умолчанию 28800Минимальное значение 1Максимальное значение (Windows) 2147483Максимальное значение (Другие) 31536000Единицы измерения секунды Количество секунд, которое сервер ожидает активности по неинтерактивному подключению перед его закрытием.
При запуске потока значение сеанса
wait_timeoutинициализируется из значения глобальной переменнойwait_timeoutили из значения глобальной переменнойinteractive_timeout, в зависимости от типа клиента (как определено опцией подключенияCLIENT_INTERACTIVE). См. такжеinteractive_timeout. -
Количество ошибок, предупреждений и заметок, возникших в результате последнего оператора, который сгенерировал сообщения. Эта переменная только для чтения. См. Раздел 13.7.5.40, “Оператор SHOW WARNINGS”.
© 2025 Oracle
Licensed under the GPLv2 License.