> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-postgresql-tls-support.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Настройка Azure Flexible Server for MySQL в качестве источника для ClickPipes

# Руководство по настройке Azure Flexible Server for MySQL в качестве источника

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

В этом пошаговом руководстве показано, как настроить Azure Flexible Server for MySQL для репликации данных в ClickHouse Cloud с помощью [MySQL ClickPipe](/ru/integrations/clickpipes/mysql/index). Для этого сервиса поддерживается только **одноразовая ингестия**. Ответы на распространённые вопросы о MySQL CDC см. на [странице с часто задаваемыми вопросами по MySQL](/ru/integrations/clickpipes/mysql/faq).

<Warning>
  Непрерывная ингестия через **CDC не поддерживается** для этого сервиса. В Azure Flexible Server for MySQL нельзя задать системной переменной [`binlog_row_metadata`](https://dev.mysql.com/doc/refman/en/replication-options-binary-log.html#sysvar_binlog_row_metadata) значение `FULL`, которое требуется для полнофункционального MySQL CDC в ClickPipes.

  Отправьте запрос на добавление этой возможности на [форуме отзывов Azure](https://feedback.azure.com/d365community/forum/47b1e71d-ee24-ec11-b6e6-000d3a4f0da0), проголосуйте за [этот вопрос](https://learn.microsoft.com/en-us/answers/questions/766047/setting-binlog-row-metadata-to-full-in-azure-db-fo) или [обратитесь в поддержку Azure](https://azure.microsoft.com/en-us/support/create-ticket/), чтобы запросить эту возможность.
</Warning>

<div id="configure-database-user">
  ## Настройте пользователя базы данных
</div>

Подключитесь к своему экземпляру Azure Flexible Server for MySQL с правами администратора и выполните следующие команды:

1. Создайте отдельного пользователя для ClickPipes:

   ```sql theme={null}
   CREATE USER 'clickpipes_user'@'%' IDENTIFIED BY 'some-password';
   ```

2. Выдайте разрешения на схему. В следующем примере показаны разрешения для базы данных `mysql`. Повторите эти команды для каждой базы данных и каждого хоста, которые вы хотите реплицировать:

   ```sql theme={null}
   GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'%';
   ```

3. Примените изменения разрешений:

   ```sql theme={null}
   FLUSH PRIVILEGES;
   ```

<div id="configure-network-access">
  ## Настройка сетевого доступа
</div>

<Note>
  ClickPipes не поддерживает подключения через Azure Private Link. Если вы не открываете публичный доступ к своему экземпляру Azure Flexible Server for MySQL, для безопасного подключения можно [использовать SSH-туннель](/ru/integrations/clickpipes/mysql/source/azure-flexible-server-mysql#configure-network-access). Поддержка Azure Private Link появится в будущем.
</Note>

Далее необходимо разрешить ClickPipes подключаться к вашему экземпляру Azure Flexible Server for MySQL.

<Tabs>
  <Tab title="Разрешить IP-адреса ClickPipes">
    1. В Azure Portal перейдите в **All resources**. Выберите свой экземпляр Azure Flexible Server for MySQL, чтобы открыть страницу **Overview**.

    2. В разделе **Settings** выберите **Networking**. Убедитесь, что **Public access** включен.

    3. В разделе **Firewall rules** укажите [список статических IP-адресов ClickPipes](/ru/integrations/clickpipes/home#list-of-static-ips) для региона, в котором развернут ваш сервис.

           <Image img="https://mintcdn.com/private-7c7dfe99-postgresql-tls-support/w-Unfx0B83cK7_6Z/images/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql/1_configure_network_security.webp?fit=max&auto=format&n=w-Unfx0B83cK7_6Z&q=85&s=03f66c041913846d45a11fccf8696045" alt="Настройка сети для публичного доступа со списком разрешенных IP-адресов" size="lg" border width="2984" height="1268" data-path="images/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql/1_configure_network_security.webp" />

    4. Нажмите **Save**, чтобы сохранить изменения в конфигурации сетевой безопасности.
  </Tab>

  <Tab title="Использовать SSH-туннель">
    Если вы не открываете публичный доступ к своему экземпляру Azure Flexible Server for MySQL, сначала необходимо настроить SSH-бастион для безопасного туннелирования подключения. Чтобы настроить SSH-бастион в Azure:

    1. Создайте и запустите виртуальную машину Azure (VM), следуя [официальной документации](https://learn.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-portal?tabs=ubuntu).
       * Убедитесь, что VM находится в той же Virtual Network (VNet), что и ваш экземпляр Azure Flexible Server for MySQL, либо в связанной VNet с настроенной связностью.
       * Убедитесь, что у VM есть [статический публичный IP-адрес](https://learn.microsoft.com/en-us/azure/virtual-network/ip-services/virtual-network-public-ip-address). Этот IP-адрес вы будете использовать при подключении ClickPipes к вашему SSH-бастиону.

    2. Обновите правила Network Security Group (NSG) для SSH-бастиона, чтобы разрешить трафик из [списка статических IP-адресов ClickPipes](/ru/integrations/clickpipes/home#list-of-static-ips) для региона, в котором развернут ваш сервис.

    3. Обновите правила межсетевого экрана вашего экземпляра Azure Flexible Server for MySQL, чтобы разрешить трафик с [частного IP-адреса](https://learn.microsoft.com/en-us/azure/virtual-network/ip-services/private-ip-addresses) SSH-бастиона.
  </Tab>
</Tabs>

<div id="whats-next">
  ## Что дальше?
</div>

Теперь вы можете [создать свой ClickPipe](/ru/integrations/clickpipes/mysql/index) и начать приём данных из вашего экземпляра Azure Flexible Server for MySQL в ClickHouse Cloud. Обязательно сохраните сведения о подключении, которые вы использовали при настройке экземпляра, так как они понадобятся вам при создании ClickPipe.
