Spec-Zone .ru
спецификации, руководства, описания, API
|
mysqld_multi разрабатывается, чтобы управлять несколькими процессами mysqld, которые прислушиваются к соединениям на различных файлах сокета Unix и портах TCP/IP. Это может запустить или остановить серверы, или сообщить об их текущем статусе.
mysqld_multi ищет названные группы [mysqld
в N
]my.cnf
(или в файле,
названном --config-file
N
может быть любое положительное целое число. Это число
упоминается в следующем обсуждении как групповое число опции, или GNR
.
Групповые числа отличают группы опции от друг друга и используются в качестве параметров mysqld_multi, чтобы определить, какие серверы Вы хотите
запустить, остановитесь, или получите отчет о состоянии для. Опции, перечисленные в этих группах, являются тем
же самым, что Вы использовали бы в [mysqld]
группа, используемая для того, чтобы
начать mysqld. (См., например, Раздел
2.10.1.2, "Запускаясь и MySQL Stopping Автоматически".) Однако, при использовании многократных
серверов, необходимо что каждое использование его собственное значение для опций, таких как файл сокета Unix и
номер порта TCP/IP. Для получения дополнительной информации по которому опции должны быть уникальными на сервер
в многократной серверной среде, видеть Раздел
5.6, "Выполняя Экземпляры MySQL Multiple на Одной Машине".
Чтобы вызвать mysqld_multi, используйте следующий синтаксис:
shell> mysqld_multi [options
]
{start|stop|reload|report} [GNR
[,GNR
] ...]
start
, stop
, reload
(остановите и перезапустите), и report
укажите который работа выполнить. (reload
доступно с MySQL 5.6.3.) Можно выполнить определяемую работу для
единственного сервера или многократных серверов, в зависимости от GNR
список, который следует за именем опции. Если нет никакого списка, mysqld_multi выполняет работу для всех серверов в файле
опции.
Каждый GNR
значение представляет групповое число опции или диапазон
групповых чисел. Значение должно быть числом в конце названия группы в файле опции. Например, GNR
для названной группы [mysqld17]
17
. Чтобы определить диапазон чисел, разделите первые и последние числа тире. GNR
значение 10-13
представляет
группы [mysqld10]
через [mysqld13]
. Многократные
группы или групповые диапазоны могут быть определены на командной строке, разделенной запятыми. Не должно быть
никаких пробельных символов (пробелы или вкладки) в GNR
список;
что-либо после пробельного символа игнорируется.
Эта команда запускает единственную группу опции использования сервера [mysqld17]
:
shell> mysqld_multi start 17
Эта команда останавливает несколько серверов, используя группы опции [mysqld8]
и
[mysqld10]
через [mysqld13]
:
shell> mysqld_multi stop
8,10-13
Для примера того, как Вы могли бы установить файл опции, используйте эту команду:
shell> mysqld_multi --example
mysqld_multi ищет файлы опции следующим образом:
С --no-defaults
, никакие файлы опции не читаются.
С --defaults-file=
,
только именованный файл читается. file_name
Иначе, файлы опции в стандартном списке расположений
читаются, включая любой файл, названный --defaults-extra-file=
опция, если Вам дают. (Если опция дается многократно, последнее значение используется.)file_name
Чтение файлов опции разыскивается [mysqld_multi]
и [mysqld
группы опции. N
][mysqld_multi]
группа может привыкнуть для опций к mysqld_multi непосредственно. [mysqld
группы могут использоваться
для опций, которые передают к определенным mysqld экземплярам. N
]
[mysqld]
или [mysqld_safe]
группы могут использоваться
для общих опций, считанных всеми экземплярами mysqld
или mysqld_safe. Можно определить a --defaults-file=
опция,
чтобы использовать различный конфигурационный файл для того экземпляра, когда file_name
[mysqld]
или [mysqld_safe]
группы от того файла
будут использоваться для того экземпляра.
mysqld_multi поддерживает следующие опции.
Выведите на экран сообщение справки и выход.
Выведите на экран демонстрационный файл опции.
Определите имя файла журнала. Если файл существует, вывод журнала добавляется к нему.
mysqladmin двоичный файл, который будет использоваться, чтобы остановить серверы.
mysqld двоичный файл, который будет использоваться.
Отметьте, что можно определить mysqld_safe как значение для этой опции также.
Если Вы используете mysqld_safe, чтобы запустить сервер, можно
включать mysqld
или ledir
опции в
соответствии [mysqld
группа
опции. Эти опции указывают на имя сервера, который mysqld_safe должен запустить и путь каталога,
где сервер располагается. (См. описания для этих опций в Разделе
4.3.2, "mysqld_safe — MySQL Server Startup
Script".) Пример: N
]
[mysqld38]mysqld = mysqld-debugledir = /opt/local/mysql/libexec
Информация о журнале печати к stdout
вместо к файлу журнала. По
умолчанию вывод идет в файл журнала.
Пароль MySQL считает, чтобы использовать, вызывая mysqladmin. Отметьте, что значение пароля не является дополнительным для этой опции, в отличие от этого для других программ MySQL.
Тихий режим; отключите предупреждения.
Соединитесь с каждым сервером MySQL через порт TCP/IP вместо файла сокета Unix. (Если файл сокета
отсутствует, сервер мог бы все еще работать, но доступный только через порт TCP/IP.) По умолчанию
соединения делаются, используя файл сокета Unix. Эта опция влияет stop
и report
операции.
Имя пользователя MySQL считает, чтобы использовать, вызывая mysqladmin.
Будьте более многословны.
Выведите на экран информацию о версии и выход.
Некоторые примечания о mysqld_multi:
Самый важный: Перед использованием mysqld_multi убедиться, что Вы понимаете значения опций, которые передают к mysqld серверам и почему Вы хотели бы иметь отдельные процессы mysqld. Остерегайтесь опасностей использовать многократные mysqld серверы с тем же самым каталогом данных. Используйте отдельные каталоги данных, если Вы не знаете то, что Вы делаете. Запуск многократных серверов с тем же самым каталогом данных не дает Вам дополнительную производительность в поточной системе. См. Раздел 5.6, "Выполняя Экземпляры MySQL Multiple на Одной Машине".
Удостоверьтесь, что каталог данных для каждого сервера полностью доступен для учетной
записи Unix, что определенный процесс mysqld запускается как. Не используйте Unix root
учтите это, если Вы не знаете то, что Вы делаете. См. Раздел
6.1.5, "Как к MySQL Run как Нормальный Пользователь".
Удостоверьтесь, что у учетной записи MySQL, используемой для того, чтобы остановить
mysqld серверы (с mysqladmin программой), есть то же самое имя
пользователя и пароль для каждого сервера. Кроме того, удостоверьтесь, что учетная запись имеет SHUTDOWN
полномочие. Если у серверов, которыми Вы хотите управлять, есть различные имена пользователей или пароли
для административных учетных записей, Вы могли бы хотеть создать учетную запись на каждом сервере, у
которого есть то же самое имя пользователя и пароль. Например, Вы могли бы установить общее multi_admin
учетная запись, выполняя следующие команды для каждого
сервера:
shell>mysql -u root -S /tmp/mysql.sock -p
Enter password:mysql>GRANT SHUTDOWN ON *.*
->TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';
См. Раздел 6.2, "MySQL Access Privilege
System". Необходимо сделать это для каждого mysqld сервера. Измените параметры соединения
соответственно, соединяясь с каждым. Отметьте, что часть имени хоста имени учетной записи должна
разрешить Вам соединяться как multi_admin
от узла, где Вы хотите
выполнить mysqld_multi.
Файл сокета Unix и номер порта TCP/IP должны отличаться для каждого mysqld. (Альтернативно, если у узла есть многократные
сетевые адреса, можно использовать --bind-address
заставить различные серверы слушать различные
интерфейсы.)
--pid-file
опция очень важна, если Вы используете mysqld_safe, чтобы запустить mysqld (например, --mysqld=mysqld_safe
) У каждого mysqld должен быть свой собственный файл ID процесса.
Преимущество использования mysqld_safe вместо mysqld состоит в том, что mysqld_safe контролирует свой процесс mysqld и перезапускает это, если процесс завершается
из-за сигнала, отправленного, используя kill -9
или по другим причинам,
таким как отказ сегментации. Пожалуйста, отметьте, что mysqld_safe сценарий мог бы потребовать, чтобы Вы
запустили его с определенного места. Это означает, что Вам, возможно, придется изменить расположение на
определенный каталог прежде, чем выполнить mysqld_multi. Если у Вас есть проблемы, запускаясь,
пожалуйста, см. mysqld_safe сценарий. Проверьте особенно строки:
----------------------------------------------------------------MY_PWD=`pwd`# Check if we are starting this relative (for the binary release)if test -d $MY_PWD/data/mysql -a \ -f ./share/mysql/english/errmsg.sys -a \ -x ./bin/mysqld----------------------------------------------------------------
Тест, выполняемый этими строками, должен быть успешным, или Вы могли бы встретиться с проблемами. См. Раздел 4.3.2, "mysqld_safe — MySQL Server Startup Script".
Вы могли бы хотеть использовать --user
опция для mysqld, но сделать это Вы должны выполнить mysqld_multi
сценарий как суперпользователь Unix (root
). Наличие опции в файле опции не
имеет значения; Вы только получаете предупреждение, если Вы не суперпользователь, и процессы mysqld запускаются в соответствии с Вашей
собственной учетной записью Unix.
Следующий пример показывает, как Вы могли бы установить файл опции для использования с mysqld_multi. Порядок, в котором mysqld программы запускаются или останавливаются, зависит от
порядка, в котором они появляются в файле опции. Групповые числа не должны сформировать неповрежденную
последовательность. Первое и пятое [mysqld
группы были преднамеренно опущены от примера, чтобы
иллюстрировать, что у Вас могут быть "разрывы" в
файле опции. Это дает Вам больше гибкости. N
]
# This file should probably be in your home dir (~/.my.cnf)# or /etc/my.cnf# Version 2.1 by Jani Tolonen[mysqld_multi]mysqld = /usr/local/bin/mysqld_safemysqladmin = /usr/local/bin/mysqladminuser = multi_adminpassword = multipass[mysqld2]socket = /tmp/mysql.sock2port = 3307pid-file = /usr/local/mysql/var2/hostname.pid2datadir = /usr/local/mysql/var2language = /usr/local/share/mysql/englishuser = john[mysqld3]socket = /tmp/mysql.sock3port = 3308pid-file = /usr/local/mysql/var3/hostname.pid3datadir = /usr/local/mysql/var3language = /usr/local/share/mysql/swedishuser = monty[mysqld4]socket = /tmp/mysql.sock4port = 3309pid-file = /usr/local/mysql/var4/hostname.pid4datadir = /usr/local/mysql/var4language = /usr/local/share/mysql/estoniauser = tonu[mysqld6]socket = /tmp/mysql.sock6port = 3311pid-file = /usr/local/mysql/var6/hostname.pid6datadir = /usr/local/mysql/var6language = /usr/local/share/mysql/japaneseuser = jani