MySQL Router это исполняемый файл, который, как правило, работает на той же самой машине, где приложение, которое использует его. В этой главе описываются применение включая доступные параметры, как запустить приложение, и как использовать журналирование.
Есть много вариантов, доступных для управления, выполняя mysqlrouter. См. описание mysqlrouter.
MySQL Router требует конфигурационный файл. Хотя роутер ищет
предопределенный список путей по умолчанию для конфигурационного файла,
можно запустить его, передав конфигурационный файл опцией
--config
.
Процесс формирования MySQL Router для автозапуска подобен шагам, необходимым для сервера MySQL, которые описаны в Starting and Stopping MySQL Automatically.
Например, используя systemd:
shell>sudo systemctl start mysqlrouter.service
shell>sudo systemctl enable mysqlrouter.service
Старт MySQL Router производит несколько записей в журнале, например, соединяясь с кластером InnoDB:
shell>mysqlrouter --config=/path/to/file/my_router.conf
^C shell>less /path/to/log/mysqlrouter.log
2017-04-07 16:30:49 INFO[0x7000022fc000] [routing:devCluster_default_ro] started: listening on 0.0.0.0:6447; read-only 2017-04-07 16:30:49 INFO[0x70000237f000] [routing:devCluster_default_rw] started: listening on 0.0.0.0:6446; read-write 2017-04-07 16:30:49 INFO[0x700002402000] [routing:devCluster_default_x_ro] started: listening on 0.0.0.0:64470; read-only 2017-04-07 16:30:49 INFO[0x700002485000] [routing:devCluster_default_x_rw] started: listening on 0.0.0.0:64460; read-write 2017-04-07 16:30:49 INFO[0x700002279000] Starting Metadata Cache 2017-04-07 16:30:49 INFO[0x700002279000] Connections using ssl_mode 'PREFERRED' 2017-04-07 16:30:49 INFO[0x700002279000] Connected with metadata server running on 127.0.0.1:3310 2017-04-07 16:30:49 INFO[0x700002279000] Changes detected in cluster 'devCluster' after metadata refresh 2017-04-07 16:30:49 INFO[0x700002279000] Metadata for cluster 'devCluster' has 1 replicasets: 2017-04-07 16:30:49 INFO[0x700002279000] 'default' (3 members, single-master) 2017-04-07 16:30:49 INFO[0x700002279000] localhost:3310 / 33100 - role=HA mode=RW 2017-04-07 16:30:49 INFO[0x700002279000] localhost:3320 / 33200 - role=HA mode=RO 2017-04-07 16:30:49 INFO[0x700002279000] localhost:3330 / 33300 - role=HA mode=RO 2017-04-07 16:30:49 INFO[0x700002714000] Connected with metadata server running on 127.0.0.1:3310
Регистрация показывает, что MySQL Router слушает на четырех портах, перечисляет активные стратегии направления по имени, информацию о кластере InnoDB и прочее.
Например, первая строка перечисляет активные стратегии направления под
именем routing:devCluster_default_ro
, слушающую
порт 6447
в режиме
read-only
.
Соответствующая секция в конфигурационном файле MySQL Router:
[routing:devCluster_default_ro] bind_address=0.0.0.0 bind_port=6447 destinations=metadata-cache://devCluster/default?role=SECONDARY mode=read-only protocol=classic
Посмотрите, как имя, порт и способ были взяты непосредственно из конфигурационного файла. Таким образом можно быстро определить, какие стратегии направления активны. Это могло быть особенно полезно, управляя несколькими экземплярами MySQL Router, или если много конфигурационных файлов загружается.
В Windows MySQL Router может установить, удалить или начать обслуживание.
По умолчанию сервисное название MySQLRouter
. См.
--service
и связанные параметры командной
строки для служб Windows.
Самонастройка MySQL Router с опцией
--directory
производит скрипты bash для
запуска и остановки MySQL Router, которые выглядят подобными следующему:
// *** start.sh *********************** // #!/bin/bash basedir=/opt/myrouter ROUTER_PID=$basedir/mysqlrouter.pid /usr/bin/mysqlrouter -c $basedir/mysqlrouter.conf & disown %- // *** stop.sh *********************** // if [ -f /opt/myrouter/mysqlrouter.pid ]; then kill -HUP `cat /opt/myrouter/mysqlrouter.pid` rm -f /opt/myrouter/mysqlrouter.pid fi
Эта функция может быть удобной для развития и тестирования вашего
приложения и развертывания MySQL Router. Чтобы использовать регистрацию,
включите в конфигурационном файле опцию
level
в секции
[logger]
:
[logger] level = INFO
Установите местоположение файла журнала опцией
logging_folder
, определенной как путь к
каталогу в секции [DEFAULT]
в конфигурационном
файле. Файл журнала называется mysqlrouter.log
:
[DEFAULT] # Logs are sent to /path/to/folder/mysqlrouter.log logging_folder = /path/to/folder [logger] level = DEBUG
Установка logging_folder
к пустой строке посылает сообщения на консоль (stdout).
Два общих уровня регистрации INFO
(по
уомлчанию) и DEBUG
:
INFO
: включает информационные сообщения,
как показано выше, это режим по умолчанию.DEBUG
: включает сообщения, произведенные в
исходном коде для использования в диагностике. Режим
DEBUG
представляет многословную информацию
относительно внутренних работ. В то время как это может не представлять
интереса для применения, использование режима
DEBUG
может быть полезным, если вы сталкиваетесь
с проблемой, или когда роутер не ведет себя, как вы ожидаете.Следующий пример показывает то, на что сообщения похожи для уровня
журналирования DEBUG
, сравните сообщения
INFO
и DEBUG
:
2017-04-07 18:25:56 INFO[0x700009673000] Connections using ssl_mode 'PREFERRED' 2017-04-07 18:25:56 INFO[0x700009673000] Connected with metadata server running on 127.0.0.1:3310 2017-04-07 18:25:56 DEBUG [0x700009673000] Updating metadata information for cluster 'devCluster' 2017-04-07 18:25:56 DEBUG [0x700009673000] Updating replicaset status from GR for 'default' 2017-04-07 18:25:56 DEBUG [0x700009673000] Replicaset 'default' has 3 members in metadata, 3 in status table 2017-04-07 18:25:56 DEBUG [0x700009673000] End updating replicaset for 'default' 2017-04-07 18:25:56 INFO[0x700009673000] Changes detected in cluster 'devCluster' after metadata refresh 2017-04-07 18:25:56 INFO[0x700009673000] Metadata for cluster 'devCluster' has 1 replicasets: