Spec-Zone .ru
спецификации, руководства, описания, API
|
mysqld_safe является рекомендуемым способом запустить mysqld сервер на Unix. mysqld_safe добавляет некоторые функции безопасности, такие как перезапуск сервера, когда ошибка происходит и информация о времени выполнения журналирования с файлом журнала ошибок. Описание регистрации ошибок дается позже в этом разделе.
mysqld_safe пытается запустить исполнимую программу, названную
mysqld. Чтобы переопределить поведение значения по умолчанию
и определить явно имя сервера, Вы хотите выполнить, определить a --mysqld
или --mysqld-version
опция к mysqld_safe. Можно также использовать --ledir
указать на каталог, где mysqld_safe должен искать сервер.
Многие из опций к mysqld_safe являются тем же самым как опциями к mysqld. См. Раздел 5.1.3, "Опции Команды Сервера".
Опции, неизвестные mysqld_safe,
передают к mysqld, если они определяются на командной строке, но
игнорируются, если они определяются в [mysqld_safe]
группа файла опции. См. Раздел 4.2.3.3,
"Используя Файлы Опции".
mysqld_safe читает все опции из [mysqld]
, [server]
, и [mysqld_safe]
разделы в файлах опции. Например, если Вы определяете a [mysqld]
раздел как это, mysqld_safe будет находить и использовать --log-error
опция:
[mysqld]log-error=error.log
Для обратной совместимости, mysqld_safe также читает [safe_mysqld]
разделы, хотя следует переименовать такие разделы к [mysqld_safe]
в установках MySQL 5.7.
mysqld_safe поддерживает следующие опции. Это также читает файлы опции и поддерживает опции для того, чтобы обработать их описанный в Разделе 4.2.3.4, "Параметры командной строки, которые Влияют на Обработку Файла опции".
Таблица 4.1. mysqld_safe
Опции
Формат | Файл опции | Описание |
---|---|---|
- basedir=path | basedir | Путь к каталогу установки MySQL |
- core-file-size=size | базовый размер файла | Размер базового файла, который mysqld должен быть в состоянии создать |
- datadir=path | datadir | Путь к каталогу данных |
- defaults-extra-file=path | дополнительный файл значений по умолчанию | Имя файла опции, который будет считан в дополнение к обычным файлам опции |
- defaults-file=file_name | файл значений по умолчанию | Имя файла опции, который будет считан вместо обычных файлов опции |
- справка | Выведите на экран сообщение справки и выход | |
- ledir=path | ledir | Используйте эту опцию, чтобы указать на путь к каталогу, где сервер располагается |
- log-error=file_name | ошибка журнала | Запишите журнал ошибок в данный файл |
- malloc-lib = [имя lib] | malloc-lib | Альтернатива malloc библиотека, чтобы использовать для mysqld |
- mysqld=prog_name | mysqld | Имя программы сервера (в ledir каталоге), что Вы хотите запустить |
- mysqld-version=suffix | mysqld-версия | Эта опция подобна - mysqld опция, но Вы определяете только суффикс для названия программы сервера |
- nice=priority | хороший | Используйте хорошую программу, чтобы установить приоритет планирования сервера в данное значение |
- без значений по умолчанию | без значений по умолчанию | Не читайте файлы опции |
- open-files-limit=count | открытый предел файлов | Число файлов, которые mysqld должен быть в состоянии открыть |
- pid-file=file_name | pid-file=file_name | Путь файла ID процесса |
- plugin-dir=path | plugin-dir=path | Каталог, где плагины располагаются |
- port=number | порт | Номер порта, который сервер должен использовать, прислушиваясь к соединениям TCP/IP |
- skip-kill-mysqld | skip-kill-mysqld | Не пытайтесь уничтожить беспризорные процессы mysqld |
- пропустить-syslog | пропустить-syslog | Не делайте сообщений ошибки при записи к syslog; используйте файл журнала ошибок |
- socket=path | сокет | Файл сокета Unix, который сервер должен использовать, прислушиваясь к локальным соединениям |
- syslog | syslog | Ошибка при записи обменивается сообщениями к syslog |
- syslog-tag=tag | syslog-тег | Суффикс тега для сообщений, записанных syslog |
- timezone=timezone | часовой пояс | Установите переменную окружения часового пояса TZ в данное значение опции |
- пользователь = {user_name|user_id} | пользователь | Выполните mysqld сервер как пользователя, имеющего имя user_name или числовой идентификатор пользователя user_id |
Выведите на экран сообщение справки и выход.
Путь к каталогу установки MySQL.
Размер базового файла, который mysqld должен быть в состоянии создать. Значение опции передают к ulimit-c.
Путь к каталогу данных.
Имя файла опции, который будет считан в дополнение к обычным файлам опции. Это должно быть первой опцией на командной строке, если это используется. Если файл не будет существовать или будет иначе недоступен, то сервер выйдет с ошибкой.
Имя файла опции, который будет считан вместо обычных файлов опции. Это должно быть первой опцией на командной строке, если это используется.
Если mysqld_safe не может найти сервер, используйте эту опцию, чтобы указать на путь к каталогу, где сервер располагается.
Запишите журнал ошибок в данный файл. См. Раздел 5.2.2, "Журнал ошибок".
Имя библиотеки, чтобы использовать для выделения памяти вместо системы malloc()
библиотека. Любой библиотекой можно пользоваться, определяя ее путь, но есть форма ярлыка, чтобы
включить использованию tcmalloc
библиотека, которая поставляется с
двоичными дистрибутивами MySQL для Linux в MySQL 5.7.
--malloc-lib
опция работает, изменяя LD_PRELOAD
значение среды, чтобы влиять на динамическое подключение,
чтобы позволить загрузчику найти библиотеку выделения памяти, когда mysqld работает:
Если опция не дается, или дается без значения (--malloc-lib=
), LD_PRELOAD
не
изменяется и никакая попытка не предпринимается, чтобы использовать tcmalloc
.
Если опция дается как --malloc-lib=tcmalloc
, mysqld_safe ищет a tcmalloc
библиотека в /usr/lib
и затем в MySQL pkglibdir
расположение (например, /usr/local/mysql/lib
или независимо от
того, что является соответствующим). Если tmalloc
находится,
его путь добавляется к началу LD_PRELOAD
значение для mysqld. Если tcmalloc
не находится, mysqld_safe аварийные прекращения работы
с ошибкой.
Если опция дается как --malloc-lib=
, тот полный путь
добавляется к началу /path/to/some/library
LD_PRELOAD
значение. Если полный путь
указывает на несуществующий или нечитабельный файл, mysqld_safe аварийные прекращения работы
с ошибкой.
Для случаев, где mysqld_safe добавляет путь к LD_PRELOAD
, это добавляет путь к началу любого существующего
значения, которое уже имеет переменная.
Пользователи Linux могут использовать libtcmalloc_minimal.so
включенный в двоичные пакеты, добавляя эти строки к my.cnf
файл:
[mysqld_safe]malloc-lib=tcmalloc
Те строки также достаточны для пользователей на любой платформе, которые установили a tcmalloc
пакет в /usr/lib
. Использовать
определенное tcmalloc
библиотека, определите ее имя полного пути.
Пример:
[mysqld_safe]malloc-lib=/opt/lib/libtcmalloc_minimal.so
Имя программы сервера (в ledir
каталог), что Вы хотите запустить. Эта
опция необходима, если Вы используете двоичное распределение MySQL, но имеете каталог данных за
пределами двоичного распределения. Если mysqld_safe не может найти сервер, используйте
--ledir
опция, чтобы указать на путь к каталогу, где сервер
располагается.
Эта опция подобна --mysqld
опция, но Вы определяете только суффикс для названия
программы сервера. Базовое имя, как предполагается, является mysqld. Например, если Вы используете --mysqld-version=debug
,
mysqld_safe
запускает программу mysqld-отладки
в ledir
каталог. Если параметр --mysqld-version
пусто, mysqld_safe использует mysqld в ledir
каталог.
Используйте nice
программа, чтобы установить приоритет планирования
сервера в данное значение.
Не читайте файлы опции. Это должно быть первой опцией на командной строке, если это используется.
Число файлов, которые mysqld
должен быть в состоянии открыть. Значение опции передают к ulimit-n. Отметьте, что Вы должны запустить mysqld_safe
как root
для этого, чтобы работать должным образом!
Путь файла ID процесса.
Путь сменного каталога.
Номер порта, который сервер должен использовать, прислушиваясь к соединениям TCP/IP. Номер порта
должен быть 1024 или выше если сервер не запускается root
системный
пользователь.
Не пытайтесь уничтожить беспризорные процессы mysqld при запуске. Эта опция работает только над Linux.
Файл сокета Unix, который сервер должен использовать, прислушиваясь к локальным соединениям.
--syslog
сообщения об ошибках причин, которые будут отправлены syslog
на системах, которые поддерживают программу регистратора.
--skip-syslog
подавляет использование syslog
; сообщения пишутся файлу журнала ошибок.
Когда syslog
используется, daemon.err
приоритет/средство syslog используется для всех сообщений журнала.
Для того, чтобы зарегистрировать к syslog
, сообщения от mysqld_safe и mysqld пишутся с тегом mysqld_safe
и mysqld
, соответственно. Чтобы определить суффикс для тега,
использовать --syslog-tag=
,
который изменяет теги, чтобы быть tag
mysqld_safe-
и tag
mysqld-
. tag
Установите TZ
переменная окружения часового пояса к данному значению
опции. Консультируйтесь со своей документацией операционной системы для юридических форматов
спецификации часового пояса.
Выполните mysqld сервер как пользователя, имеющего имя user_name
или числовой идентификатор пользователя user_id
. ("Пользователь"
в этом контексте обращается к системной учетной записи, не пользователю MySQL, перечисленному в
таблицах предоставления.)
Если Вы выполняете mysqld_safe
с --defaults-file
или --defaults-extra-file
опция, чтобы назвать файл опции, опция должна быть
первой, данной на командной строке, или файл опции не будет использоваться. Например, эта команда не будет
использовать именованный файл опции:
mysql> mysqld_safe --port=port_num
--defaults-file=file_name
Вместо этого используйте следующую команду:
mysql> mysqld_safe --defaults-file=file_name
--port=port_num
mysqld_safe сценарий пишется так, чтобы он обычно мог запустить сервер, который был установлен или из источника или из двоичного распределения MySQL, даже при том, что эти типы дистрибутивов обычно устанавливают сервер в немного отличающихся расположениях. (См. Раздел 2.1.5, "Разметки Установки".) mysqld_safe ожидает одно из следующих условий быть истиной:
Сервер и базы данных могут быть найдены относительно рабочего каталога (каталог, из
которого mysqld_safe
вызывается). Для двоичных дистрибутивов mysqld_safe смотрит в соответствии со своим рабочим
каталогом для bin
и data
каталоги. Для
исходных дистрибутивов это ищет libexec
и var
каталоги. Это условие нужно соблюдать, если Вы выполняете mysqld_safe
из своего каталога установки MySQL (например, /usr/local/mysql
для
двоичного распределения).
Если сервер и базы данных не могут быть найдены относительно рабочего каталога, mysqld_safe пытается определить местоположение их
абсолютными путями. Типичные расположения /usr/local/libexec
и /usr/local/var
. Фактические расположения определяются от значений,
сконфигурированных в распределение в то время, когда оно было создано. Они должны быть корректными, если
MySQL устанавливается в расположении, определенном во время конфигурации.
Поскольку mysqld_safe пытается найти сервер и базы данных относительно его собственного рабочего каталога, можно установить двоичное распределение MySQL где угодно, пока Вы выполняете mysqld_safe из каталога установки MySQL:
shell>cd
shell>mysql_installation_directory
bin/mysqld_safe &
Если mysqld_safe перестал работать, даже когда вызвано из каталога
установки MySQL, можно определить --ledir
и --datadir
опции, чтобы указать на каталоги, в которых сервер и базы данных
располагаются на Вашей системе.
В MySQL 5.7 mysqld_safe пытается использовать сон и утилиты системы дат, чтобы определить, сколько времен это попыталось запуститься в эту секунду, и — если они присутствуют, и это больше, чем 5 раз — вынуждаются ожидать 1 целая секунда прежде, чем запуститься снова. Это предназначается, чтобы предотвратить чрезмерное использование ЦП в случае повторных отказов. (Ошибка #11761530, Ошибка #54035)
Когда Вы используете mysqld_safe, чтобы запустить mysqld, mysqld_safe устраивает ошибку (и заметьте), сообщения от себя и от mysqld, чтобы пойти к тому же самому месту назначения.
Есть несколько mysqld_safe опций для того, чтобы управлять местом назначения этих сообщений:
--syslog
:
Ошибка при записи обменивается сообщениями к syslog
на системах, которые
поддерживают программу регистратора.
--skip-syslog
:
Не делайте сообщений ошибки при записи к syslog
. Сообщения пишутся файлу
журнала ошибок значения по умолчанию (
в каталоге данных), или к
именованному файлу, если host_name
.err--log-error
опция дается.
--log-error=
: Ошибка
при записи обменивается сообщениями к именованному ошибочному файлу.file_name
Если ни одна из этих опций не дается, значение по умолчанию --skip-syslog
.
Если --syslog
и
--log-error
и
даются, предупреждение выпускается и --log-error
имеет приоритет.
Когда mysqld_safe пишет сообщение, уведомления идут к месту назначения
журналирования (syslog
или файл журнала ошибок) и stdout
. Ошибки идут к месту назначения журналирования и stderr
.
Обычно, недопустимо отредактировать mysqld_safe сценарий. Вместо этого сконфигурируйте mysqld_safe при использовании параметров командной строки или
опций в [mysqld_safe]
раздел a my.cnf
файл опции. В
редких случаях могло бы быть необходимо отредактировать mysqld_safe, чтобы заставить это запускать сервер должным
образом. Однако, если Вы делаете это, Ваша измененная версия mysqld_safe могла бы быть перезаписана, если Вы обновляете
MySQL в будущем, таким образом, следует сделать копию своей сокращенной версии, что можно переустановить.