mysqld
Buy this Reference Manual in softcover from Barnes & Noble!
Начиная с версии 3.22 MySQL может считывать принятые по умолчанию параметры запуска для сервера и клиентов из файлов параметров.
В Unix считывание принятых по умолчанию параметров MySQL производится из следующих файлов:
Имя файла | Назначение |
/etc/my.cnf |
Общие параметры |
DATADIR/my.cnf |
Параметры для сервера |
defaults-extra-file |
Файл, указанный при помощи -defaults-extra-file=# |
~/.my.cnf |
Параметры для пользователя |
DATADIR
является каталогом данных MySQL (обычно `/usr/local/mysql/data' для бинарной установки или `/usr/local/var' для установки из исходных текстов). Обратите внимание, что это тот каталог, который был задан во время настройки, а не указанный при помощи --datadir
при запуске mysqld
! (--datadir
не оказывает влияния на просмотр файлов параметров сервером, так как их просмотр происходит до обработки аргументов командной строки).
В Windows считывание принятых по умолчанию параметров MySQL производится из следующих файлов:
Имя файла | Назначение |
windows-system-directory\my.ini |
Общие параметры |
C:\my.cnf |
Общие параметры |
Обратите внимание на то, что в Windows все пути необходимо указывать при помощи /
вместо \.
Если необходимо использовать \,
то его нужно указать дважды, так как \
является знаком перехода в MySQL.
MySQL пытается прочитать файлы параметров в указанном выше порядке. Если существует несколько таких файлов, то параметр, указанный в файле, идущем позже, имеет преимущество над таким же параметром, указанным в файле, расположенном ранее. Параметры, указанные в командной строке, обладают более высоким приоритетом по отношению к параметрам, указанным в любом из файлов параметров. Некоторые параметры можно задавать при помощи переменных окружения. Параметры, указанные в командной строке или в файлах параметров, обладают преимуществом по отношению к переменным окружения (see section F Переменные окружения).
Приводим список программ, поддерживающих файлы параметров: mysql
, mysqladmin
, mysqld
, mysqld_safe
, mysql.server
, mysqldump
, mysqlimport
, mysqlshow
, mysqlcheck
, myisamchk
и myisampack
.
Любой параметр, который может быть задан в командной строке при запуске программы MySQL, может быть также задан в файле параметров (без предваряющего двойного слэша). Чтобы получить список доступных параметров, следует запустить программу с параметром --help
.
Файлы параметров могут содержать строки следующего вида:
#comment
[group]
option
--option
в командной строке.option=value
--option=value
в командной строке.set-variable = variable=value
--set-variable variable=value
в командной строке. Данный синтаксис необходимо использовать для задания переменных mysqld
.Группа client
обеспечивает возможность задавать параметры, относящиеся ко всем клиентам MySQL (кроме самого mysqld
). Эта группа великолепно подходит для указания пароля, используемого при подсоединении к серверу (но при этом следует убедиться, что разрешение на чтение и запись этого файла есть только у вас).
Обратите внимание на то, что для параметров и значений все введенные перед ними и после них пробелы автоматически удаляются. В строках значений можно использовать такие экранирующие секвенции: `\b', `\t', `\n', `\r', `\\' и `\s' (`\s' - это пробел).
Пример типичного глобального файла параметров:
[client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 socket=/tmp/mysql.sock set-variable = key_buffer_size=16M set-variable = max_allowed_packet=1M [mysqldump] quick
Пример типичного файла параметров пользователя:
[client] # Указанный пароль будет направлен всем стандартным клиентам MySQL password=my_password [mysql] no-auto-rehash set-variable = connect_timeout=2 [mysqlhotcopy] interactive-timeout
Если у вас дистрибутив исходного кода, то примеры конфигурационных файлов с именами `my-xxxx.cnf' можно найти в каталоге `support-files'. В случае бинарного дистрибутива следует обратиться к каталогу `DIR/support-files', где DIR
- имя каталога установки MySQL (обычно `/usr/local/mysql'). На данный момент там приведены примеры файлов конфигурации для малых, средних, больших и очень больших систем. Чтобы поэкспериментировать с файлом, можно скопировать `my-xxxx.cnf' в свой домашний каталог (переименуйте копию в `.my.cnf').
Все поддерживающие файлы параметров клиенты MySQL принимают следующие параметры:
Параметр | Описание |
--no-defaults | Не читать информацию из файлов параметров. |
--print-defaults | Вывести имя программы и все параметры, которые ей передаются. |
--defaults-file=full-path-to-default-file | Использовать только указанный файл конфигурации. |
--defaults-extra-file=full-path-to-default-file | Прочитать этот файл конфигурации после глобального файла конфигурации, но перед файлом конфигурации пользователя. |
Обратите внимание на то, что указанные выше параметры должны идти первыми в командной строке! Однако параметр --print-defaults
может использоваться сразу после команд --defaults-xxx-file
.
Примечание для разработчиков: обработка файла параметров происходит следующим образом: все совпадающие параметры (т.е. параметры в соответствующих группах) обрабатываются перед любыми аргументами командной строки. Этот алгоритм хорошо подходит для программ, которые в случае, если один и тот же параметр указывается несколько раз, используют последний экземпляр параметра. Если же вы работаете со старой программой, которая считывает заданные несколько раз параметры указанным образом, но не читает файлы параметров, необходимо добавить только две строки, чтобы у нее появилась эта возможность. Чтобы увидеть, как это делается, достаточно ознакомиться с исходным кодом любого стандартного клиента MySQL.
В скриптах оболочки для анализа файлов config
можно использовать команду `my_print_defaults':
shell> my_print_defaults client mysql --port=3306 --socket=/tmp/mysql.sock --no-auto-rehash
Приведенные выше выходные данные содержат все параметры для групп client
и mysql
.
Posted by on Sunday October 13 2002, @9:30am | [Delete] [Edit] |
The windows version (at least) includes 4 versions
to play with my-huge,large,medium and small.cnf
(nothing to explain what the difference is between
them though!!!!)
Posted by [name withheld] on Friday November 29 2002, @9:22pm | [Delete] [Edit] |
Correction to the above obviously misinformed
answer: All the information on discerning the
information between .cnf files is in the .cnf
files themself. Just view them with your stand
text editor and there are comments right at the
beginning explaining when and why to use the
specific .cnf file.
Posted by [name withheld] on Saturday November 30 2002, @2:23pm | [Delete] [Edit] |
Actually, the first comment is correct: there are
four my-xxx.cnf files, and all are empty.
This "problem" is with an rpm installation of
mysql 3.23.53a on RH 8.0. Has happened to me
on earlier versions of RH and mysql (7.0 and
3.23.xx, respectively). Is there a reason for
this?
Posted by Simon Green on Monday December 9 2002, @1:53am | [Delete] [Edit] |
my.cnf can now also be in /etc/mysql/my.cnf
Add your own comment.