safe_mysqld
, оболочка mysqld
Mysqld_multi
, программа для управления множеством серверов MySQLmyisampack
, MySQL-генератор сжатых таблиц (только для чтения)mysqld-max
, расширенный сервер mysqld
Buy this Reference Manual in softcover from Barnes & Noble!
Mysqld_multi
, программа для управления множеством серверов MySQLПрограмма mysqld_multi
предназначена для управления несколькими процессами mysqld
, работающих на различных сокетах Unix и портах TCP/IP.
Программа будет искать группу(группы) [mysqld#]
в `my.cnf' (или заданную(ые) при помощи --config-file=...
), где # -любое положительное число, начиная с 1. Эти группы должны быть такими же, как и обычная группа [mysqld
] (например содержать опции для mysqld
; см. в руководстве более подробную информацию), но с такими портом, сокетом и т.д., которые требуются для каждого отдельного процесса mysqld
. Номер в имени группы имеет другую функцию; он может использоваться для запуска или остановки некоторых конкретных серверов mysqld
в этой программе или для создания отчетов. В данном разделе представлена дополнительная информация об использовании и опциях mysqld_multi
.
Использование: mysqld_multi [OPTIONS] {start|stop|report} [GNR,GNR,GNR...] или mysqld_multi [OPTIONS] {start|stop|report} [GNR-GNR,GNR,GNR-GNR,...]
GNR здесь означает номер группы. Можно запускать, останавливать или создавать отчеты о любом GNR, или о нескольких из них одновременно (см. --example
) В качестве разделителей в списке GNR применяются запятые, комбинации создаются при помощи тире. Последнее означает, что будут задействованы все номера GNR из диапазона GNR1-GNR2. Если не задан аргумент GNR, то все группы будут либо запущены, либо остановлены, либо будет выведен отчет об этих группах. Обратите внимание, что в списке GNR не должно быть никаких пропусков (пробелов, символов табуляции или пустых строк). Любые данные после пропуска будут игнорироваться.
mysqld_multi поддерживает следующие опции:
--config-file=...
config file
). Примечание: данный файл не влияет на собственные опции этой программы (группа [mysqld_multi]
), а только на группы [mysqld#]
. Без этой опции поиск всех данных будет осуществляться только в обычном файле `my.cnf'.
--example
--help
--log=...
--mysqladmin=...
mysqladmin
, используемый для завершения работы сервера.
--mysqld=...
mysqld
, который будет использоваться. Обратите внимание: в этой опции можно также указывать safe_mysqld
. Опции передаются mysqld
. Необходимо только удостовериться, что в переменной окружения PATH имеется mysqld
или что установлен safe_mysqld
.
--no-log
stdout
вместо журнала. По умолчанию журналы включены.
--password=...
mysqladmin
.
--tcp-ip
--user=...
mysqladmin
.
--version
Некоторые примечания относительно mysqld_multi:
mysqld
(например, при помощи mysqladmin
), имеет один пароль и имя пользователя для всех директорий данных, к которым производится доступ (имеется в виду - к базе данных mysql
). Убедитесь также, что пользователь имеет привилегию Shutdown_priv
! Если имеется несколько директорий с данными и несколько различных баз данных mysql
с различными паролями для пользователя root
в MySQL, можно создать некоего общего пользователя multi_admin
для всех, с одинаковым паролем (см. ниже). Сделать это можно так:
shell> mysql -u root -S /tmp/mysql.sock -proot_password -e "GRANT SHUTDOWN ON *.* TO multi_admin@localhost IDENTIFIED BYSee section 4.2.6 Как работает система привилегий. Эти действия нужно выполнять для каждого
mysqld
для каждой имеющейся директории данных (для этого нужно выбрать другой сокет -S=...
).
mysqld
используется сценарий safe_mysqld
(например, --mysqld=safe_mysqld
). Преимущество использования safe_mysqld
вместо mysqld
заключается в том, что safe_mysqld
``бережет'' каждый процесс mysqld
и перезапустит его, если mysqld
-процесс умрет по сигналу 9 или подобному (например, в случае ошибки сегментации - хотя, конечно, уж этой ошибки MySQL в принципе совершать не должен;). Пожалуйста, обратите внимание: может оказаться, что сценарий safe_mysqld
требуется запускать из определенного каталога. Это означает, что прежде чем запустить mysqld_multi
, прийдется перейти в нужный каталог. Если при запуске возникнут проблемы, пожалуйста, просмотрите сценарий safe_mysqld
. Обратите внимание на следующие строки:
-------------------------------------------------------------------------- MY_PWD=`pwd` Check if we are starting this relative (for the binary release) if test -d /data/mysql -a -f ./share/mysql/english/errmsg.sys -a -x ./bin/mysqld -------------------------------------------------------------------------- See section 4.7.2Этот тест может пройти успешно, однако возможны и проблемы.safe_mysqld
, оболочкаmysqld
.
mysqld
с одной и тожй же директорией данных. Используйте различные директории с данными, если Вы четко не уверены в своих действиях!mysqld
.mysqld
были преднамеренно не включены в пример. В файле конфигурации могут быть ``промежутки'' - это увеличивает гибкость. Порядок, в котором запускаются или завершают работу демоны mysqld
, зависит от порядка, в котором они указаны в файле конфигурации.[mysqld# <==
).mysqld
можно использовать опцию --user
, но для этого сценарий mysqld_multi
должен быть запущен от root
. Наличие опции в файле конфигурации не имеет значения; вы получите предупреждение только в случаях, если не являетесь суперпользователем и демон mysqlds
запущен под вашим аккаунтом Unix. Важно: удостоверьтесь, что для pid-файла
и директории с данными имеется доступ для чтения+записи(+выполнения - для директории с данными) для того пользователя Unix, который запускает определенный процесс mysqld
. Не используйте для этого аккаунт root
в Unix, если Вы не уверены в своих действиях!mysqld
, и что осознаете то, почему могут быть нужны отдельные процессы mysqld
. Запуск нескольких демонов mysqld
с одной директорией данных не увеличит производительность в многопоточной системе!See section 4.1.4 Запуск нескольких серверов MySQL на одном компьютере.
Пример файла конфигурации для mysqld_multi
.
# Этот файл может находиться в вашей домашней директории (~/.my.cnf) или /etc/my.cnf # Version 2.1 by Jani Tolonen [mysqld_multi] mysqld = /usr/local/bin/safe_mysqld 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
See section 4.1.2 Файлы параметров `my.cnf'.
Add your own comment.