Spec-Zone.ru › MySQL Router 9.2

3.1 Настройка MySQL Router

Вот краткий пример, демонстрирующий, как можно развернуть MySQL Router для использования кластера InnoDB с помощью настройки. Для дополнительной информации см. --bootstrap и другие параметры настройки.

В этом примере создается автономная инстанция MySQL Router с использованием параметра --directory, включены сокеты, используется --account для настройки имени пользователя MySQL Router, и устанавливается --account-create в значение always, чтобы выполнять настройку только в случае, если учетная запись еще не существует. В этом примере предполагается, что уже существует кластер InnoDB с именем myCluster.

$> mysqlrouter --bootstrap root@localhost:3310 --directory /tmp/myrouter
  --conf-use-sockets --account routerfriend --account-create always

Please enter MySQL password for root:

# Bootstrapping MySQL Router instance at '/tmp/myrouter'...

Please enter MySQL password for routerfriend:

- Creating account(s)
- Verifying account (using it to run SQL queries that would be run by Router)
- Storing account in keyring
- Adjusting permissions of generated files
- Creating configuration /tmp/myrouter/mysqlrouter.conf

# MySQL Router configured for the InnoDB Cluster 'myCluster'

After this MySQL Router has been started with the generated configuration

    $ mysqlrouter -c /tmp/myrouter/mysqlrouter.conf

the cluster 'myCluster' can be reached by connecting to:

## MySQL Classic protocol

- Read/Write Connections: localhost:6446, /tmp/myrouter/mysql.sock
- Read/Only Connections:  localhost:6447, /tmp/myrouter/mysqlro.sock

## MySQL X protocol

- Read/Write Connections: localhost:6448, /tmp/myrouter/mysqlx.sock
- Read/Only Connections:  localhost:6449, /tmp/myrouter/mysqlxro.sock

На этом этапе процесс настройки создал файл mysqlrouter.conf с необходимыми файлами в указанном каталоге, и результат показывает, как запустить эту инстанцию MySQL Router. Сгенерированный каталог MySQL Router выглядит примерно так:

$> ls -l | awk '{print $9}'

data/
log/
mysqlrouter.conf
mysqlrouter.key
run/
start.sh
stop.sh

Сгенерированный конфигурационный файл MySQL Router (mysqlrouter.conf) выглядит примерно так:

# File automatically generated during MySQL Router bootstrap
[DEFAULT]
logging_folder=/tmp/myrouter/log
runtime_folder=/tmp/myrouter/run
data_folder=/tmp/myrouter/data
keyring_path=/tmp/myrouter/data/keyring
master_key_path=/tmp/myrouter/mysqlrouter.key
connect_timeout=15
read_timeout=30
dynamic_state=/tmp/myrouter/data/state.json

[logger]
level = INFO

[metadata_cache:myCluster]
cluster_type=gr
router_id=1
user=routerfriend
metadata_cluster=myCluster
ttl=0.5
auth_cache_ttl=-1
auth_cache_refresh_interval=2
use_gr_notifications=0

[routing:myCluster_rw]
bind_address=0.0.0.0
bind_port=6446
socket=/tmp/myrouter/mysql.sock
destinations=metadata-cache://myCluster/?role=PRIMARY
routing_strategy=first-available
protocol=classic

[routing:myCluster_ro]
bind_address=0.0.0.0
bind_port=6447
socket=/tmp/myrouter/mysqlro.sock
destinations=metadata-cache://myCluster/?role=SECONDARY
routing_strategy=round-robin-with-fallback
protocol=classic

[routing:myCluster_x_rw]
bind_address=0.0.0.0
bind_port=6448
socket=/tmp/myrouter/mysqlx.sock
destinations=metadata-cache://myCluster/?role=PRIMARY
routing_strategy=first-available
protocol=x

[routing:myCluster_x_ro]
bind_address=0.0.0.0
bind_port=6449
socket=/tmp/myrouter/mysqlx.sock
destinations=metadata-cache://myCluster/?role=SECONDARY
routing_strategy=round-robin-with-fallback
protocol=x

В этом примере MySQL Router настроен на четыре порта и четыре сокета. Порты добавляются по умолчанию, а сокеты были добавлены путем передачи параметра --conf-use-sockets. Кластер InnoDB с именем "myCluster" является источником метаданных, а destinations используют кэш метаданных кластера InnoDB для динамической настройки информации о хосте. Соответствующие параметры командной строки:

  • --conf-use-sockets: При необходимости включите сокеты UNIX для всех четырех типов соединений, как показано в примере.

  • --conf-skip-tcp: При необходимости отключите TCP-порты, параметр для передачи вместе с --conf-use-sockets, если вы хотите использовать только сокеты.

  • --conf-base-port: При необходимости измените диапазон портов вместо использования по умолчанию. Это задает порт для классических соединений чтения-записи (PRIMARY) и по умолчанию равен 6446.

  • --conf-bind-address: При необходимости измените значение bind_address для каждого маршрута.

Для демонстрации работы MySQL Router следующий клиент (приложение) подключается к порту 6446, но подключен к экземпляру MySQL на порту 3310.

$> mysql -u root -h 127.0.0.1 -P 6446 -p

...

mysql> select @@port;
+--------+
| @@port |
+--------+
|   3310 |
+--------+
1 row in set (0.00 sec)

Для получения дополнительных примеров см. Настройка среды MySQL Server Sandbox и .

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-router-8.4-en/mysql-router-deploying-bootstrapping.html

Spec-Zone.ru

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