Вы можете включить 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. |
Reads Allowed on Primary | Этот параметр доступен только когда выбран Load balancing.
|
New Instance Class | Выберите спецификации для прокси‑инстанса в соответствии с требованиями сервиса. Вы можете изменить спецификации после создания прокси‑инстанса. Подробнее см. Changing the Instance Class of a Proxy Instance. Подробнее о метриках производительности см. Table 2. |
Subnet | Выберите подсеть, в которой находится прокси. |
Proxy Nodes | Введите целое число от 2 до 8. Вы можете изменить количество узлов после создания прокси‑инстанса. Подробнее см. Changing the Number of Proxy Nodes. Рекомендуется установить количество прокси‑узлов, равное количеству реплик чтения, по одному прокси‑узлу на одну реплику чтения. |
Set Read Weight | Этот параметр доступен только если Weighted выбран. Выберите primary instance и Read-реплики, которым вы хотите назначить веса. Правила настройки read weights
|
Выберите DB Instances для Load Balancing | Этот параметр доступен только когда Load balancing выбран. Выберите DB instances для load balancing. После того как Load balancing выбран, proxy перенаправляет read requests к узлам базы данных с меньшим количеством активных соединений. Вы можете изменить DB instances для load balancing после включения Database Proxy. Подробнее см. Configuring the Delay Threshold and Routing Policy. |
Вы можете просмотреть адрес разделения чтения/записи на странице Basic Information. Подключите ваше приложение к DB instance, используя этот адрес, чтобы разделять read и write запросы.
Адрес разделения чтения/записи и floating IP address 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;
Figure 1 Выполнение операции чтения

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

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