6.10.3 Развёртывание MySQL Router
Рекомендуемое развёртывание MySQL Router — на том же хосте, что и приложение. При использовании развёртывания в песочнице всё работает на одном хосте. Поэтому вы разворачиваете MySQL Router на том же хосте. При развёртывании в продакшене рекомендуется развернуть один экземпляр MySQL Router на каждом компьютере, используемом для размещения одного из ваших клиентских приложений. Также возможно развернуть MySQL Router на общем компьютере, через который подключаются ваши экземпляры приложения. Более подробную информацию можно найти в .
Для инициализации MySQL Router на основе InnoDB Cluster или InnoDB ReplicaSet вам необходима строка подключения в формате URI к онлайн-экземпляру. Запустите команду mysqlrouter и укажите опцию , где instance — строка подключения в формате URI к онлайн-экземпляру. MySQL Router подключится к экземпляру и воспользуется включенным плагином кэширования метаданных для получения метаданных, включающих список адресов экземпляров серверов и их роли. Например:
$> mysqlrouter --bootstrap icadmin@ic-1:3306 --account=mysqlrouter
От вас потребуется ввести пароль экземпляра и ключ шифрования для MySQL Router. Этот ключ используется для шифрования пароля экземпляра, используемого MySQL Router для подключения к кластеру. Также будут отображены порты, которые вы можете использовать для подключений клиентов. Дополнительные опции, связанные с инициализацией, см. в .
На данном этапе MySQL Router ещё не запущен, поэтому он не будет перенаправлять подключения. Инициализация — это отдельный процесс.
Процесс инициализации MySQL Router создаёт файл mysqlrouter.conf, содержащий настройки, основанные на метаданных, полученных из адреса, переданного в опцию , в приведённом выше примере icadmin@ic-1:3306. Основываясь на полученных метаданных, MySQL Router автоматически настраивает файл mysqlrouter.conf, включая раздел metadata_cache.
Опция автоматически настраивает MySQL Router для отслеживания и хранения активных адресов серверов метаданных MySQL по пути, настроенному параметром . Это гарантирует, что при перезапуске MySQL Router ему будут известны текущие адреса серверов метаданных MySQL. Дополнительную информацию см. в документации по .
Сгенерированная конфигурация MySQL Router создаёт TCP-порты, которые вы используете для подключения к кластеру. По умолчанию создаются порты для связи с кластером как по классическому протоколу MySQL, так и по протоколу X. Для использования протокола X экземпляры сервера должны иметь установленный и настроенный плагин X, что является стандартным для MySQL 8.0 и более поздних версий. Доступные по умолчанию TCP-порты:
6446— для сеансов чтения-записи по классическому протоколу MySQL, которые MySQL Router перенаправляет на первичные экземпляры сервера.6447— для сеансов только чтения по классическому протоколу MySQL, которые MySQL Router перенаправляет на один из вторичных экземпляров сервера.64460— для сеансов чтения-записи по протоколу X, которые MySQL Router перенаправляет на первичные экземпляры сервера.64470— для сеансов только чтения по протоколу X, которые MySQL Router перенаправляет на один из вторичных экземпляров сервера.
В зависимости от вашей конфигурации MySQL Router номера портов могут отличаться от указанных выше. Например, если вы используете опцию , или переменную . Точные порты перечислены при запуске MySQL Router.
Способ перенаправления входящих подключений зависит от используемой базовой топологии. Например, при использовании кластера с одним первичным экземпляром MySQL Router по умолчанию публикует порт для протокола X и классический порт MySQL, к которым клиенты подключаются для сеансов чтения-записи и которые перенаправляются на единственный первичный экземпляр кластера. В кластере с несколькими первичными экземплярами сеансы чтения-записи перенаправляются на один из первичных экземпляров по принципу круговой очереди. Например, первое подключение к порту 6446 перенаправляется на экземпляр ic-1. Второе подключение к порту 6446 перенаправляется на экземпляр ic-2 и так далее.
Для входящих подключений только для чтения MySQL Router перенаправляет подключения на один из вторичных экземпляров также по принципу круговой очереди. Чтобы изменить это поведение, см. опцию .
После инициализации и настройки запустите MySQL Router. Если вы использовали системную установку с опцией , то выполните:
$> mysqlrouter &
Если вы установили MySQL Router в каталог с использованием опции , используйте скрипт start.sh, расположенный в каталоге, куда вы его установили.
В качестве альтернативы, настройте службу для автоматического запуска MySQL Router при загрузке системы, см. . Теперь вы можете подключить MySQL-клиента, например, MySQL Shell, к одному из входящих портов MySQL Router, как описано выше, и увидеть, как клиент прозрачно подключается к одному из экземпляров сервера.
$> mysqlsh --uri root@localhost:6442
Чтобы проверить, к какому экземпляру вы подключены, выполните запрос SQL к переменной статуса . Например:
mysql-js> \sql
Switching to SQL mode... Commands end with ;
mysql-sql> select @@port;
+--------+
| @@port |
+--------+
| 3310 |
+--------+
Или, например, используя:
mysql-js> \sql
Switching to SQL mode... Commands end with ;
mysql-sql> SHOW VARIABLES WHERE Variable_name = 'port';
+--------+
| @@port |
+--------+
| 3310 |
+--------+
© 2025 Oracle
Licensed under the GPLv2 License.