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

4.2.3.3. Используя Файлы Опции

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

Чтобы определить, читает ли программа файлы опции, вызовите ее с --help опция. (Для mysqld использовать --verbose и --help.), Если файлы опции чтений программы, сообщение справки указывает, какие файлы оно ищет и какие группы опции оно распознает.

.mylogin.cnf файл, который содержит опции пути входа в систему, создается mysql_config_editor утилитой. См. Раздел 4.6.6, "mysql_config_editor — MySQL Configuration Utility". "Путь входа в систему" является группой опции, которая разрешает только ограниченный набор опций: host, user, и password. Клиентские программы определяют который путь входа в систему читать из .mylogin.cnf использование --login-path опция.

Чтобы определить альтернативное имя файла, установите MYSQL_TEST_LOGIN_FILE переменная окружения. Эта переменная используется mysql-test-run.pl тестирование утилиты, но также и распознается mysql_config_editor и клиентами MySQL, такими как mysql, mysqladmin, и т.д.

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

Имя файла Цель
%PROGRAMDATA%\MySQL\MySQL Server 5.7\my.ini, %PROGRAMDATA%\MySQL\MySQL Server 5.7\my.cnf Глобальные опции
%WINDIR%\my.ini, %WINDIR%\my.cnf Глобальные опции
C:\my.ini, C:\my.cnf Глобальные опции
INSTALLDIR\my.ini, INSTALLDIR\my.cnf Глобальные опции
defaults-extra-file Файл, определенный с --defaults-extra-file=path, если любой
%APPDATA%\MySQL\.mylogin.cnf Опции пути входа в систему

%PROGRAMDATA% представляет каталог файловой системы, который содержит данные приложения для всех пользователей на узле. Этот путь значения по умолчанию к C:\ProgramData на Microsoft Windows Vista и больше, и C:\Documents and Settings\All Users\Application Data на более старых версиях Microsoft Windows.

%WINDIR% представляет расположение Вашего каталога Windows. Это обычно C:\WINDOWS. Можно определить его точное расположение от значения WINDIR переменная окружения используя следующую команду:

C:\> echo %WINDIR%

INSTALLDIR представляет каталог установки MySQL. Это обычно C:\PROGRAMDIR\MySQL\MySQL 5.7 Server где PROGRAMDIR представляет каталог программ (обычно Program Files на англоязычных версиях Windows), когда MySQL 5.7 был установлен, используя мастера конфигурации и установка. См. Раздел 2.3.3, "Устанавливая MySQL на Microsoft Windows Используя MySQL Installer".

%APPDATA% представляет значение каталога данных Приложения Windows. Можно определить его точное расположение от значения APPDATA переменная окружения используя следующую команду:

C:\> echo %APPDATA%

На Unix, Linux и Mac OS X, опциях запуска чтения программ MySQL от следующих файлов, в указанном порядке (главные элементы используются сначала).

Имя файла Цель
/etc/my.cnf Глобальные опции
/etc/mysql/my.cnf Глобальные опции
SYSCONFDIR/my.cnf Глобальные опции
$MYSQL_HOME/my.cnf Специфичные для сервера опции
defaults-extra-file Файл, определенный с --defaults-extra-file=path, если любой
~/.my.cnf Специфичные для пользователя опции
~/.mylogin.cnf Опции пути входа в систему

~ представляет корневой каталог текущего пользователя (значение $HOME).

SYSCONFDIR представляет каталог, определенный с SYSCONFDIR опция к CMake, когда MySQL был создан. По умолчанию это etc каталог, расположенный под скомпилированным - в каталоге установки.

MYSQL_HOME переменная окружения, содержащая путь к каталогу в который специфичное для сервера my.cnf файл находится. Если MYSQL_HOME не устанавливается и Вы запускаете сервер, используя mysqld_safe программу, mysqld_safe пытается установить MYSQL_HOME следующим образом:

В MySQL 5.7, использовании DATADIR как расположение для my.cnf осуждается.

Как правило, DATADIR /usr/local/mysql/data для двоичной установки или /usr/local/var для исходной установки. Отметьте, что это - расположение каталога данных, которое было определено во время конфигурации, не тот, определенный с --datadir опция, когда mysqld запускается. Использование --datadir во времени выполнения не имеет никакого эффекта на то, где сервер ищет файлы опции, потому что это ищет их прежде, чем обработать любые опции.

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

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

Отметить

На платформах Unix MySQL игнорирует конфигурационные файлы, которые являются мировыми перезаписываемыми. Это является намеренным как меры безопасности.

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

Синтаксис для того, чтобы определить опции в файле опции подобен синтаксису командной строки (см. Раздел 4.2.3.1, "Используя Опции на Командной строке"). Однако, в файле опции, Вы опускаете продвижение двух тире с имени опции, и Вы определяете только одну опцию на строку. Например, --quick и --host=localhost на командной строке должен быть определен как quick и host=localhost на отдельных строках в файле опции. Определить опцию формы --loose-opt_name в файле опции запишите это как loose-opt_name.

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

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

Можно использовать escape-последовательности"\b", "\t", "\n", "\r", "\\", и"\s"в значениях опции, чтобы представить клавишу Backspace, вкладку, новую строку, возврат каретки, наклонную черту влево, и пробелы. Правила выхода в файлах опции:

Предыдущие правила означают, что литеральная наклонная черта влево может быть дана как"\\", или как"\"если это не сопровождается допустимым символом escape-последовательности.

Правила для escape-последовательностей в файлах опции отличаются немного от правил для escape-последовательностей в строковых литералах в SQL-операторах. В последнем контексте, если"x"не допустимый символ escape-последовательности,"\x"становится"x"вместо"\x". См. Раздел 9.1.1, "Строковые литералы".

Правила выхода для значений файла опции являются особенно подходящими для путей Windows, которые используют"\"как разделитель пути. Разделитель в пути Windows должен быть записан как"\\"если это сопровождается символом escape-последовательности. Это может быть записано как"\\"или"\"если это не. Альтернативно,"/"может использоваться в путях Windows и будет обработан как"\". Предположите, что Вы хотите определить основной каталог C:\Program Files\MySQL\MySQL Server 5.7 в файле опции. Это может быть сделано несколько путей. Некоторые примеры:

basedir="C:\Program Files\MySQL\MySQL Server 5.7"basedir="C:\\Program Files\\MySQL\\MySQL Server 5.7"basedir="C:/Program Files/MySQL/MySQL Server 5.7"basedir=C:\\Program\sFiles\\MySQL\\MySQL\sServer\s5.7

Если название группы опции является тем же самым как названием программы, опции в группе применяются определенно к той программе. Например, [mysqld] и [mysql] группы применяются к mysqld серверу и mysql клиентской программе, соответственно.

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

Вот типичный глобальный файл опции:

[client]port=3306socket=/tmp/mysql.sock[mysqld]port=3306socket=/tmp/mysql.sockkey_buffer_size=16Mmax_allowed_packet=8M[mysqldump]quick

Предыдущее использование файла опции var_name=value синтаксис для строк, которые устанавливают key_buffer_size и max_allowed_packet переменные.

Вот типичный пользовательский файл опции:

[client]# The following password will be sent to all standard MySQL clientspassword="my_password"[mysql]no-auto-rehashconnect_timeout=2[mysqlhotcopy]interactive-timeout

Если Вы хотите создать группы опции, которые должны быть считаны mysqld серверами из определенного ряда выпуска MySQL только, можно сделать это при использовании групп с именами [mysqld-5.6], [mysqld-5.7], и т.д. Следующая группа указывает что --new опция должна использоваться только серверами MySQL с 5.7.x номера версий:

[mysqld-5.7]new

Возможно использовать !include директивы в файлах опции, чтобы включать другие файлы опции и !includedir искать определенные каталоги файлы опции. Например, чтобы включать /home/mydir/myopt.cnf файл, используйте следующее направляющее:

!include /home/mydir/myopt.cnf

Искать /home/mydir каталог и читал файлы опции, найденные там, использует это направляющее:

!includedir /home/mydir

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

Отметить

В настоящий момент любые файлы, которые будут найдены и, включали использование !includedir направляющий на операционных системах Unix должен иметь имена файлов, заканчивающиеся в .cnf. На Windows, это направляющие проверки на файлы с .ini или .cnf расширение.

Запишите содержание включенного файла опции как любой другой файл опции. Таким образом, это должно содержать группы опций, каждый, которому предшествует a [group] строка, которая указывает на программу, к которой применяются опции.

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

!include /home/mydir/myopt.cnf

И предположите это /home/mydir/myopt.cnf похож на это:

[mysqladmin]force[mysqld]key_buffer_size=16M

Если my.cnf обрабатывается mysqld, только [mysqld] группа в /home/mydir/myopt.cnf используется. Если файл обрабатывается mysqladmin, только [mysqladmin] группа используется. Если файл обрабатывается какой-либо другой программой, никакими опциями в /home/mydir/myopt.cnf используются.

!includedir направляющий обрабатывается так же за исключением того, что все файлы опции в именованном каталоге читаются.