Spec-Zone.ru › MariaDB

mysqld_multi

MariaDB начиная с 10.4.6

Начиная с MariaDB 10.4.6, mariadbd-multi является символической ссылкой на mysqld_multi.

MariaDB начиная с 10.5.2

Начиная с MariaDB 10.5.2, mariadbd-multi — это имя сервера, а mysqld_multi — символическая ссылка.

Перед использованием mysqld_multi убедитесь, что вы понимаете значения параметров, передаваемых серверам mysqld, и почему вам нужно иметь отдельные процессы mysqld. Будьте осторожны, используя несколько серверов mysqld с одним каталогом данных. Используйте отдельные каталоги данных, если вы не знаете, что делаете. Запуск нескольких серверов с одним каталогом данных не даст вам дополнительной производительности в многопоточной системе.

Сценарий запуска mysqld_multi находится в дистрибутивах MariaDB на Linux и Unix. Это оболочка, предназначенная для управления несколькими процессами mysqld на одном хосте. Для работы нескольких процессов mysqld на одном хосте эти процессы должны:

  • Использовать разные файлы сокетов Unix для локальных подключений.
  • Использовать разные порты TCP/IP для сетевых подключений.
  • Использовать разные каталоги данных.
  • Использовать разные файлы идентификаторов процессов (указанные параметром --pid-file), если используется mysqld_safe для запуска mysqld.

mysqld_multi может запускать или останавливать серверы, или сообщать об их текущем статусе.

Использование mysqld_multi

Команда для использования mysqld_multi и общий синтаксис:

mysqld_multi [options] {start|stop|report} [GNR[,GNR] ...]

start, stop, и report указывают, какую операцию выполнить.

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

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

Например:

Эта команда запускает один сервер, используя группу опций [mysqld17]:

mysqld_multi start 17

Эта команда останавливает несколько серверов, используя группы опций [mysqld8] и [mysqld10] по [mysqld13]:

mysqld_multi stop 8,10-13

Параметры

mysqld_multi поддерживает следующие параметры:

Параметр Описание
--example Приведите пример файла конфигурации с дополнительной информацией.
--help Отобразить справку и выйти.
--log=filename Указать путь и имя файла журнала. Если файл существует, вывод журнала добавляется в него.
--mysqladmin=prog_name Бинарник mariadb-admin для остановки серверов. Может быть указан в группах [mysqld#].
--mysqld=prog_name Бинарник mysqld для использования. Обратите внимание, что вы также можете указать mysqld_safe как значение для этого параметра. Если вы используете mysqld_safe для запуска сервера, вы можете включить параметры mysqld или ledir в соответствующей группе параметров [mysqldN]. Эти параметры указывают имя сервера, который должен запустить mysqld_safe, и имя каталога, где расположен сервер. Пример:
[mysqld38]
mysqld = mysqld-debug
ledir = /opt/local/mysql/libexec.
--no-log Вывести в стандартный вывод вместо файла журнала. По умолчанию файл журнала включён.
--password=password Пароль учетной записи MariaDB для использования при вызове mariadb-admin. Обратите внимание, что значение пароля является обязательным для этого параметра, в отличие от других программ MariaDB.
--silent Беззвучный режим; отключение предупреждений.
--tcp-ip Подключение к серверу MariaDB через порт TCP/IP вместо сокета UNIX. Это влияет на остановку и получение отчётов. Если файл сокета отсутствует, сервер может по-прежнему работать, но к нему можно получить доступ только через порт TCP/IP. По умолчанию подключение выполняется через сокет UNIX. Этот параметр влияет на операции остановки и получения отчётов.
--user=username Имя пользователя учетной записи MariaDB для использования при вызове mariadb-admin.
--verbose Более подробный режим.
--version Отобразить информацию о версии и выйти.
--wsrep-new-cluster Настройка кластера. Добавлено в MariaDB 10.1.15.

Файлы опций

Помимо чтения опций из командной строки, mysqld_multi также может читать опции из файлов опций. Если неизвестный параметр предоставлен mysqld_multi в файле опций, то он игнорируется.

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

Параметр Описание
--print-defaults Вывести список аргументов программы и выйти.
--no-defaults Не читать параметры по умолчанию из файла опций.
--defaults-file=# Читать только параметры по умолчанию из данного файла #.
--defaults-extra-file=# Читать этот файл после чтения глобальных файлов.
--defaults-group-suffix=# В дополнение к группам параметров по умолчанию, также читать группы параметров с этим суффиксом.

Группы параметров

mysqld_safe считывает параметры из следующих групп параметров из файлов опций:

Группа Описание
[mysqld_multi] Параметры, считываемые mysqld_multi, которые включают как сервер MariaDB, так и сервер MySQL.

mysqld_multi также ищет в файлах опций группы параметров с именами, подобными [mysqldN], где N может быть любым положительным целым числом. Это число упоминается в дальнейшем как номер группы параметров или GNR:

Группа Описание
[mysqldN] Параметры, считываемые экземпляром mysqld, управляемым mysqld_multi, которые включают как сервер MariaDB, так и сервер MySQL. N относится к экземпляру GNR.

Значения GNR различают группы параметров друг от друга и используются в качестве аргументов к mysqld_multi для указания, какие серверы вы хотите запустить, остановить или получить отчёт о статусе. Значение GNR должно быть числом в конце имени группы параметров в файле опций. Например, GNR для группы параметров с именем [mysqld17] равно 17.

Параметры, перечисленные в этих группах параметров, такие же, как вы бы использовали в обычных группах параметров сервера для настройки mysqld. Однако при использовании нескольких серверов необходимо, чтобы каждый из них использовал своё значение для параметров, таких как файл сокета Unix и номер порта TCP/IP.

Группа параметров [mysqld_multi] может использоваться для параметров, необходимых для самого mysqld_multi. Группы параметров [mysqldN] могут использоваться для параметров, передаваемых конкретным экземплярам mysqld.

Обычные группы параметров сервера также могут использоваться для общих параметров, которые читаются всеми экземплярами:

Группа Описание
[mysqld] Параметры, считываемые mysqld, которые включают как сервер MariaDB, так и сервер MySQL.
[server] Параметры, считываемые сервером MariaDB.
[mysqld-X.Y] Параметры, считываемые конкретной версией mysqld, которые включают как сервер MariaDB, так и сервер MySQL. Например, [mysqld-5.5].
[mariadb] Параметры, считываемые сервером MariaDB.
[mariadb-X.Y] Параметры, считываемые конкретной версией сервера MariaDB.
[client-server] Параметры, считываемые всеми клиентами MariaDB и сервером MariaDB. Это полезно для параметров, таких как сокет и порт, которые общие между сервером и клиентами.
[galera] Параметры, считываемые сервером MariaDB, совместимым с Galera. Доступны на системах, скомпилированных с поддержкой Galera.

Для примера настройки файла опций используйте эту команду:

mysqld_multi --example

Аутентификация и привилегии

Убедитесь, что учетная запись MariaDB, используемая для остановки процессов mysqld (с помощью утилиты mariadb-admin), имеет одинаковое имя пользователя и пароль для каждого сервера. Также убедитесь, что у этой учетной записи есть привилегия 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´;

Измените параметры подключения соответствующим образом при подключении к каждому серверу. Обратите внимание, что часть имени учетной записи, относящаяся к имени хоста, должна позволять вам подключаться как multi_admin с хоста, на котором вы хотите запустить mysqld_multi.

Учетная запись пользователя

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

Не запускайте процесс mysqld как Unix-учетную запись root, если вы не знаете, что делаете.

Пример

Следующий пример показывает, как вы можете настроить файл опций для использования с mysqld_multi. Порядок запуска или остановки программ mysqld зависит от порядка их появления в файле опций. Номера групп не обязательно должны образовывать непрерывную последовательность. Первая и пятая группы [mysqldN] были намеренно опущены из примера, чтобы проиллюстрировать, что в файле опций могут быть «пропуски». Это дает вам больше гибкости.

           # 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_safe
           mysqladmin = /usr/local/bin/mysqladmin
           user       = multi_admin
           password   = multipass
           [mysqld2]
           socket     = /tmp/mysql.sock2
           port       = 3307
           pid-file   = /usr/local/mysql/var2/hostname.pid2
           datadir    = /usr/local/mysql/var2
           language   = /usr/local/share/mysql/english
           user       = john
           [mysqld3]
           socket     = /tmp/mysql.sock3
           port       = 3308
           pid-file   = /usr/local/mysql/var3/hostname.pid3
           datadir    = /usr/local/mysql/var3
           language   = /usr/local/share/mysql/swedish
           user       = monty
           [mysqld4]
           socket     = /tmp/mysql.sock4
           port       = 3309
           pid-file   = /usr/local/mysql/var4/hostname.pid4
           datadir    = /usr/local/mysql/var4
           language   = /usr/local/share/mysql/estonia
           user       = tonu
           [mysqld6]
           socket     = /tmp/mysql.sock6
           port       = 3311
           pid-file   = /usr/local/mysql/var6/hostname.pid6
           datadir    = /usr/local/mysql/var6
           language   = /usr/local/share/mysql/japanese
           user       = jani
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/mysqld_multi/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API