Spec-Zone .ru
спецификации, руководства, описания, API

4.2.3.5. Используя Опции, чтобы Установить Переменные программы

У многих программ MySQL есть внутренние переменные, которые могут быть установлены во времени выполнения, используя SET оператор. См. Раздел 13.7.4,"SET Синтаксис", и Раздел 5.1.5, "Используя Системные Переменные".

Большинство этих переменных программы также может быть установлено при запуске сервера при использовании того же самого синтаксиса, который применяется к определению опций программы. Например, у mysql есть a max_allowed_packet переменная, которая управляет максимальным размером ее коммуникационного буфера. Установить max_allowed_packet переменная для mysql к значению 16 МБ, используйте любую из следующих команд:

shell> mysql
        --max_allowed_packet=16777216shell> mysql
        --max_allowed_packet=16M

Первая команда определяет значение в байтах. Второе определяет значение в мегабайтах. Для переменных, которые берут числовое значение, значение может быть дано с суффиксом K, M, или G (или верхний регистр или нижний регистр), чтобы указать на множитель 1024, 10242 или 10243. (Например, когда использующийся установить max_allowed_packet, суффиксы указывают на модули килобайтов, мегабайтов, или гигабайтов.)

В файле опции переменные настройки даются без ведущих тире:

[mysql]max_allowed_packet=16777216

Или:

[mysql]max_allowed_packet=16M

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

[mysqld]key_buffer_size=512M[mysqld]key-buffer-size=512M

Переменная может быть определена при записи этого полностью или как любой однозначный префикс. Например, max_allowed_packet переменная может быть установлена для mysql как --max_a, но не как --max потому что последний неоднозначен:

shell> mysql --max=1000000mysql: ambiguous option '--max=1000000' (max_allowed_packet, max_join_size)

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

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

shell> mysql --max_allowed_packet=16Mshell> mysql --max_allowed_packet=16*1024*1024

Наоборот, вторая из следующих строк является законной во времени выполнения, но первой, не:

mysql> SET GLOBAL
        max_allowed_packet=16M;mysql> SET GLOBAL
        max_allowed_packet=16*1024*1024;