Вы можете включить Database Proxy для ваших RDS for MySQL инстансов, чтобы запросы чтения и записи автоматически перенаправлялись через адрес прокси. Чтобы уменьшить нагрузку чтения на основной инстанс, запросы записи перенаправляются на основной инстанс, а запросы чтения — на read replicas в соответствии с политикой маршрутизации Database Proxy.
В этом разделе описывается, как использовать database proxy для реализации разделения чтения/записи. Процесс выглядит следующим образом:
Имейте в виду следующие замечания о database proxy:
в верхнем левом углу и выберите регион и проект.
в левом верхнем углу страницы и выберите Database > Relational Database Service.
Параметр | Описание |
|---|---|
Имя прокси | Имя прокси должно начинаться с буквы и состоять из 4–64 символов. Допускаются только буквы (с учётом регистра), цифры, дефисы (-) и подчёркивания (_). |
Роль |
|
Политика маршрутизации |
Вы можете изменить политику маршрутизации после создания прокси базы данных. Для получения подробной информации см. Configuring the Delay Threshold and Routing Policy. |
Разрешены чтения на первичном | Этот параметр доступен только когда выбран Load balancing.
|
Новый класс инстанса | Выберите спецификации для прокси‑инстанса в соответствии с требованиями сервиса. Вы можете изменить спецификации после создания прокси‑инстанса. Для получения подробной информации см. Changing the Instance Class of a Proxy Instance. Для получения подробной информации о метриках производительности см. Table 2. |
Подсеть | Выберите подсеть, в которой находится прокси. |
Прокси‑узлы | Введите целое число от 2 до 8. Вы можете изменить количество узлов после создания прокси‑инстанса. Для получения подробной информации см. Changing the Number of Proxy Nodes. Рекомендуется установить количество прокси‑узлов, равное количеству реплик чтения, по одному прокси‑узлу на одну реплику чтения. |
Установить вес чтения | Этот параметр доступен только если Weighted выбран. Выберите основной instance и read replica, которым вы хотите назначить веса. Правила настройки весов чтения
|
Выберите DB Instances для Load Balancing | Этот параметр доступен только когда Load balancing выбран. Выберите DB instances для Load Balancing. После выбора Load balancing proxy перенаправляет запросы чтения к узлам базы данных с меньшим количеством активных соединений. Вы можете изменить DB instances для Load Balancing после включения Database Proxy. Подробности см. в Configuring the Delay Threshold and Routing Policy. |
Вы можете просмотреть адрес разделения чтения/записи на странице Basic Information. Подключите приложение к DB instance, используя этот адрес, чтобы разделять запросы чтения и записи.
Адрес разделения чтения/записи и плавающий IP-адрес DB instance находятся в одной VPC и подсети и независимы друг от друга.
Прежде чем использовать прокси базы данных для подключения к экземпляру RDS for MySQL, убедитесь, что текущая учетная запись базы данных имеет разрешение на доступ к адресу прокси.
Вы можете выполнить следующие шаги, чтобы проверить и предоставить учетной записи разрешение на доступ к адресу прокси.
SELECT user,host FROM mysql.user;

Если адрес — %, host содержит все CIDR‑блоки.
Например, если вы хотите подключиться к экземпляру RDS for MySQL из диапазона IP‑адресов, начинающегося с 192.168.0, используя пользователя root, вы можете установить host учетной записи в значение 192.168.% на странице управления пользователями Data Admin Service (DAS).
Убедитесь, что входящие и исходящие правила позволяют доступ к адресу разделения чтения/записи. Порт по умолчанию — 3306.
Если такого правила нет, нажмите Add Rule, чтобы добавить его.
Для получения подробной информации см. раздел "ECS Login" в Elastic Cloud Server User Guide.
mysql -h <hostIP> -P <port> -u <userName> -p
Пример:
mysql -h 192.168.0.61 -P 3306 -u root -p
Введите пароль учетной записи базы данных, если отображается следующая информация:
При использовании клиента MySQL 8.0 для доступа к прокси базы данных может отображаться ошибка "auth user failed".
Добавьте --default-auth=mysql_native_password при подключении к базе данных.
Вы можете выполнить команду show last route, чтобы проверить результат маршрутизации после выполнения операции чтения.
Ниже используется операция чтения в качестве примера для описания того, как проверить результат маршрутизации запросов чтения.
Пример:
select 1;
Рисунок 1 Выполнение операции чтения

show last route;
Рисунок 2 Результат запроса

IP-адрес в выводе команды является IP-адресом узла, к которому направлена операция чтения. Операции чтения направляются к основному узлу или репликам чтения в зависимости от указанной routing policy.
Не включайте show last route в код сервиса или многострочные запросы.