Краткое руководство: создание экземпляра База данных Azure для MySQL — Flexible Server с помощью Azure CLI

В этом кратком руководстве показано, как с помощью команд Azure CLI в Azure Cloud Shell всего за пять минут создать экземпляр База данных Azure для MySQL — Flexible Server.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу. В настоящее время с бесплатной учетной записью Azure можно попробовать База данных Azure для MySQL — гибкий сервер бесплатно в течение 12 месяцев. Дополнительные сведения см. в статье "Использование бесплатной учетной записи Azure", чтобы бесплатно попробовать База данных Azure для MySQL — гибкий сервер.

Откройте Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, которую можно использовать для выполнения шагов, описанных в этой статье. В Cloud Shell стандартные средства Azure предварительно установлены и настроены для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, в правом верхнем углу примера кода нажмите кнопку "Попробовать".

Кроме того, Cloud Shell можно открыть в отдельной вкладке браузера. Для этого перейдите на страницу https://shell.azure.com/bash. Выберите "Копировать", чтобы скопировать содержимое блока кода. В Cloud Shell вставьте код и нажмите клавишу ВВОД , чтобы запустить его.

Если вы предпочитаете устанавливать и использовать Azure CLI, для работы с этим кратким руководством требуется Azure CLI версии 2.0 или новее. Чтобы найти версию установки Azure CLI. , запустите az --version. Если вам необходимо выполнить установку или обновление, обратитесь к статье Установка Azure CLI.

Предварительные требования

Выполните вход в учетную запись с помощью команды az login. Обратите внимание на id свойство. Свойство id ссылается на идентификатор подписки учетной записи Azure.

az login

Выберите определенную подписку в учетной записи Azure с помощью команды az account set . Обратите внимание на значение id из выходных данных az login.

Если у вас несколько подписок, выберите подписку, в которой требуется выставление счетов за ресурс. Чтобы получить список подписок, используйте az account list.

az account set --subscription <subscription ID>

Создание сервера для Базы данных Azure для MySQL (Гибкий сервер)

Создайте группу ресурсов Azure с помощью az group create команды. Затем создайте База данных Azure для MySQL — гибкий сервер в группе ресурсов. Обязательно укажите уникальное имя. В следующем примере создается группа ресурсов с именем myresourcegroup в регионе eastus2.

az group create --name myresourcegroup --location eastus2

Создайте гибкий сервер База данных Azure для MySQL с помощью команды az mysql flexible-server create. Сервер может содержать несколько баз данных. Следующая команда создает сервер с использованием параметров службы по умолчанию и значений из локального контекста Azure CLI:

az mysql flexible-server create

Созданный сервер имеет следующие атрибуты:

  • Имя сервера, сгенерированное автоматически, имя администратора, пароль администратора и имя группы ресурсов.
  • Значения по умолчанию для службы для остальных конфигураций сервера: уровень вычислительных ресурсов (Burstable), размер вычислительных ресурсов/SKU (B1MS), период хранения резервных копий (семь дней) и версия MySQL (5.7).
  • Метод подключения по умолчанию — частный доступ (интеграция виртуальной сети) с автоматически созданной виртуальной сетью и подсетью.

Примечание.

Метод подключения нельзя изменить после создания сервера. Например, если вы выбрали частный доступ (интеграция виртуальной сети) при создании сервера, вы не можете изменить параметр на общедоступный доступ (разрешенные IP-адреса) после развертывания. Настоятельно рекомендуется создать сервер с частным доступом для безопасного доступа к серверу с помощью интеграции виртуальной сети. Дополнительные сведения о частном доступе см. в статье о концепциях сети.

Если вы хотите изменить значения по умолчанию, ознакомьтесь со справочной документацией по Azure CLI для полного списка настраиваемых параметров Azure CLI.

Ниже приведен пример выходных данных:

Creating Resource Group 'groupXXXXXXXXXX'...
Creating new vnet "serverXXXXXXXXXVNET" in resource group "groupXXXXXXXXXX"...
Creating new subnet "serverXXXXXXXXXSubnet" in resource group "groupXXXXXXXXXX" and delegating it to "Microsoft.DBforMySQL/flexibleServers"...
Creating MySQL Server 'serverXXXXXXXXX' in group 'groupXXXXXXXXXX'...
Your server 'serverXXXXXXXXX' is using SKU 'Standard_B1ms' (Paid Tier). For pricing details, see https://aka.ms/mysql-pricing.
Creating MySQL database 'flexibleserverdb'...
Make a note of your password. If you forget your password, reset the password by running 'az mysql flexible-server update -n serverXXXXXXXXX -g groupXXXXXXXXXX -p <new-password>'.
{
  "connectionString": "server=<server-name>.mysql.database.azure.com;database=flexibleserverdb;uid=secureusername;pwd=<password>",
  "databaseName": "flexibleserverdb",
  "host": "serverXXXXXXXXX.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/groupXXXXXXXXXX/providers/Microsoft.DBforMySQL/flexibleServers/serverXXXXXXXXX",
  "location": "East US 2",
  "password": "<password>",
  "resourceGroup": "groupXXXXXXXXXX",
  "skuname": "Standard_B1ms",
  "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/groupXXXXXXXXXX/providers/Microsoft.Network/virtualNetworks/serverXXXXXXXXXVNET/subnets/serverXXXXXXXXXSubnet",
  "username": "secureusername",
  "version": "5.7"
}

Если вы хотите изменить значения по умолчанию, ознакомьтесь со справочной документацией по Azure CLI для полного списка настраиваемых параметров Azure CLI.

Создание базы данных

Если вы еще не создали базу данных, создайте ее с именем newdatabase , выполнив следующую команду:

az mysql flexible-server db create -d newdatabase

Примечание.

Подключения к База данных Azure для MySQL — гибкий сервер взаимодействует с помощью порта 3306. Если вы пытаетесь подключиться из корпоративной сети, исходящий трафик через порт 3306 может быть запрещен. Вы не можете подключиться к серверу, если ИТ-отдел не откроет порт 3306.

Получение сведений о подключении

Чтобы подключиться к серверу, необходимо указать сведения о узле и получить доступ к учетным данным:

az mysql flexible-server show --resource-group myresourcegroup --name mydemoserver

Результаты выводятся в формате JSON. Запишите значения для fullyQualifiedDomainName и administratorLogin. Ниже приведен пример выходных данных JSON:

{
  "administratorLogin": "myadminusername",
  "administratorLoginPassword": null,
  "delegatedSubnetArguments": {
    "subnetArmResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/mydemoserverVNET/subnets/mydemoserverSubnet"
  },
  "fullyQualifiedDomainName": "mydemoserver.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforMySQL/flexibleServers/mydemoserver",
  "location": "East US 2",
  "name": "mydemoserver",
  "publicNetworkAccess": "Disabled",
  "resourceGroup": "myresourcegroup",
  "sku": {
    "capacity": 0,
    "name": "Standard_B1ms",
    "tier": "Burstable"
  },
  "storageProfile": {
    "backupRetentionDays": 7,
    "fileStorageSkuName": "Premium_LRS",
    "storageAutogrow": "Disabled",
    "storageIops": 0,
    "storageMb": 10240
  },
  "tags": null,
  "type": "Microsoft.DBforMySQL/flexibleServers",
  "version": "5.7"
}

Подключение и проверка подключения с помощью Azure CLI

Вы можете использовать База данных Azure для MySQL — Flexible Server, чтобы подключаться к серверу Flexible Server с помощью команды az mysql flexible-server connect в Azure CLI. Эту команду можно использовать для проверки подключения к серверу базы данных, создания быстрой базовой базы данных и выполнения запросов непосредственно на сервере без установки mysql.exe или MySQL Workbench. Вы также можете использовать команду в интерактивном режиме для одновременного выполнения нескольких запросов.

Выполните следующий скрипт, чтобы проверить и подтвердить подключение к базе данных из вашей среды разработки:

az mysql flexible-server connect -n <servername> -u <username> -p <password> -d <databasename>

Приведем пример:

az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase

В успешном подключении отображаются выходные данные, как показано в следующем примере:

Connecting to newdatabase database.
Successfully connected to mysqldemoserver1.

Если подключение завершается сбоем, попробуйте выполнить следующие решения:

  • Проверьте, открыт ли порт 3306 на клиентском компьютере.
  • Убедитесь, что имя пользователя и пароль администратора сервера верны.
  • Убедитесь, что для клиентского компьютера настроено правило брандмауэра.
  • Убедитесь, что клиентский компьютер находится в той же виртуальной сети, что и сервер, если вы настроили сервер для частного доступа в виртуальной сети.

Чтобы выполнить один запрос, используйте--querytext аргумент (-q):

az mysql flexible-server connect -n <server-name> -u <username> -p "<password>" -d <database-name> --querytext "<query text>"

Приведем пример:

az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase -q "select * from table1;" --output table

Чтобы узнать больше об использовании az mysql flexible-server connect, см. в Кратком руководстве по подключению к базе данных Azure для MySQL с помощью Azure CLI.

Подключение с помощью клиента командной строки MySQL

Если вы создали База данных Azure для MySQL — гибкий сервер с использованием закрытого доступа и интеграции с виртуальной сетью, подключитесь к серверу с ресурса, который находится в той же виртуальной сети, что и ваш сервер. Вы можете создать виртуальную машину и добавить её в виртуальную сеть, которая была создана при создании экземпляра База данных Azure для MySQL — Flexible Server. Дополнительные сведения см. в статье Создание виртуальных сетей для Базы данных Azure для MySQL — Гибкий сервер и управление ими с помощью портала Azure.

Если вы создали экземпляр База данных Azure для MySQL — Flexible Server с использованием общедоступного доступа (с разрешенными IP-адресами), вы можете добавить свой локальный IP-адрес в список правил брандмауэра для вашего сервера. Подробные инструкции см. в статье Управление правилами брандмауэра для База данных Azure для MySQL — Flexible Server с помощью портала Azure.

Чтобы подключиться к серверу из локального окружения, можно использовать либо mysql.exe, либо Использование MySQL Workbench с База данных Azure для MySQL — Flexible Server. База данных Azure для MySQL — гибкий сервер поддерживает подключение клиентских приложений к службе База данных Azure для MySQL — гибкий сервер с использованием протокола Transport Layer Security (TLS), ранее известного как Secure Sockets Layer (SSL). TLS — это стандартный отраслевый протокол, обеспечивающий зашифрованные сетевые подключения между сервером базы данных и клиентскими приложениями, поэтому вы можете соответствовать требованиям соответствия требованиям. Чтобы подключиться с помощью гибкого сервера База данных Azure для MySQL, скачайте общедоступный SSL-сертификат для проверки центра сертификации. Дополнительные сведения о подключении с помощью зашифрованных подключений или отключении SSL см. в статье "Подключение к База данных Azure для MySQL — гибкий сервер с зашифрованными подключениями".

В следующем примере показано, как подключиться к гибкому серверу База данных Azure для MySQL с помощью клиента командной строки MySQL.

  • Скачайте сертификат DigiCertGlobalRootG2.
  • Используйте настройку строки подключения --ssl-mode=REQUIRED, чтобы обеспечить проверку сертификата TLS.
  • Передайте путь к локальному файлу сертификата параметру --ssl-ca.
  • Замените эти значения на фактические имя сервера и пароль.
sudo apt-get install mysql-client
wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem
mysql -h mydemoserver.mysql.database.azure.com -u mydemouser -p --ssl-mode=REQUIRED --ssl-ca=DigiCertGlobalRootG2.crt.pem

Если вы подготовили сервер с общедоступным доступом, вы можете использовать Azure Cloud Shell.

Чтобы использовать Azure Cloud Shell для подключения к гибкому серверу База данных Azure для MySQL, разрешите сетевой доступ из Azure Cloud Shell к База данных Azure для MySQL гибкому серверу. Чтобы разрешить доступ, перейдите на вкладку Сеть на портале Azure для База данных Azure для MySQL Flexible Server. В разделе "Брандмауэр" установите флажок "Разрешить общедоступный доступ" из любой службы Azure в Azure на этот сервер , как показано на следующем снимке экрана. Затем нажмите кнопку "Сохранить ", чтобы сохранить этот параметр.

Снимок экрана, на котором показано, как предоставить Azure Cloud Shell доступ к гибкому серверу Базы данных Azure для MySQL.

Примечание.

Выберите "Разрешить общедоступный доступ" из любой службы Azure в Azure на этот сервер только для разработки или тестирования. Этот параметр настраивает брандмауэр, чтобы разрешить подключения из IP-адресов, выделенных любой службе Или ресурсу Azure, включая подключения из других подписок Azure.

Выберите Попробовать, чтобы открыть Azure Cloud Shell. В Cloud Shell используйте следующие команды, чтобы подключиться к База данных Azure для MySQL гибкому серверу. Используйте имя сервера, имя пользователя и пароль в команде.

wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem
mysql -h mydemoserver.mysql.database.azure.com -u mydemouser -p --ssl=true --ssl-ca=DigiCertGlobalRootG2.crt.pem

Внимание

При подключении к гибкому серверу Базы данных Azure для MySQL с помощью Cloud Shell используйте параметр --ssl=true. Не используйте --ssl-mode=REQUIRED.

Основная причина, по которой это руководство важно, заключается в том, что Azure Cloud Shell предварительно установлен с клиентом mysql.exe из дистрибутива MariaDB. Для mysql.exe клиента требуется --ssl параметр. Для клиента MySQL из дистрибутива Oracle требуется --ssl-mode параметр.

Если при подключении к серверу База данных Azure для MySQL — Flexible Server отображается следующее сообщение об ошибке, значит, либо при настройке правил брандмауэра вы не установили флажок «Разрешить общедоступный доступ к этому серверу из любой службы Azure в Azure», либо этот параметр не был сохранён. Задайте правила брандмауэра и повторите попытку.

ERROR 2002 (HY000): Can't connect to MySQL server on <servername> (115)

Очистка ресурсов

Если вам не нужно использовать ресурсы, созданные вами для этой статьи, в другом кратком руководстве или учебнике, вы можете удалить их, выполнив следующую команду:

az group delete --name myresourcegroup

Чтобы удалить только гибкий сервер, выполните следующие действия.

az mysql flexible-server delete --resource-group myresourcegroup --name mydemoserver