Вы можете включить Database Proxy для ваших RDS for MySQL инстансов, чтобы запросы на чтение и запись автоматически перенаправлялись через proxy address. Чтобы снизить нагрузку на чтение основного инстанса, запросы на запись перенаправляются на основной инстанс, а запросы на чтение — на read replicas в соответствии с routing policy Database Proxy.
В этом разделе описывается, как использовать database proxy для реализации разделения чтения/записи. Процесс выглядит следующим образом:
Имейте в виду следующие замечания по database proxies:
в верхнем левом углу и выберите регион и проект.
в верхнем левом углу страницы и выберите Database > Relational Database Service.
Parameter | Description |
|---|---|
Proxy Name | Имя прокси должно начинаться с буквы и состоять из 4 до 64 символов. Допускаются только буквы (с учётом регистра), цифры, дефисы (-) и подчёркивания (_). |
Role |
|
Routing Policy |
Вы можете изменить политику маршрутизации после создания database proxy. Для получения подробной информации см. Configuring the Delay Threshold and Routing Policy. |
Разрешены чтения на Primary | Этот параметр доступен только при выборе Load balancing.
|
Новый Instance Class | Выберите спецификации для proxy instance в соответствии с требованиями сервиса. Вы можете изменить спецификации после создания proxy instance. Для получения подробной информации см. Changing the Instance Class of a Proxy Instance. Для получения подробной информации о метриках производительности см. Table 2. |
Подсеть | Выберите подсеть, в которой находится proxy. |
Proxy Nodes | Введите целое число от 2 до 8. Вы можете изменить узлы после создания proxy instance. Для получения подробной информации см. Changing the Number of Proxy Nodes. Рекомендуется установить количество proxy nodes, равное количеству read replicas, по одному proxy node на одну read replica. |
Set Read Weight | Этот параметр доступен только если Weighted выбран. Выберите основной инстанс и реплики чтения, которым вы хотите назначить веса. Правила настройки весов чтения
|
Select DB Instances for Load Balancing | Этот параметр доступен только когда Load balancing выбран. Выберите DB‑инстансы для балансировки нагрузки. После выбора Load balancing прокси перенаправляет запросы чтения к узлам базы данных с меньшим количеством активных соединений. Вы можете изменить DB‑инстансы для балансировки нагрузки после включения Database Proxy. Подробности см. в Configuring the Delay Threshold and Routing Policy. |
Вы можете просмотреть адрес разделения чтения/записи на странице Basic Information. Подключите приложение к DB‑инстансу, используя этот адрес, для разделения запросов чтения и записи.
Адрес разделения чтения/записи и плавающий 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;
Figure 1 Выполнение операции чтения

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

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