Руководство по проектированию службы "База данных Azure для MySQL" с помощью Azure CLI

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для MySQL — отдельный сервер

Важно!

База данных Azure для MySQL один сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для MySQL гибкого сервера. Дополнительные сведения о миграции на гибкий сервер База данных Azure для MySQL см. в статье "Что происходит с одним сервером База данных Azure для MySQL?"

База данных Azure для MySQL — это служба реляционной базы данных в Microsoft Cloud на основе ядра СУБД MySQL Community Edition. Из этого руководства вы узнаете, как с помощью Azure CLI (интерфейса командной строки) и других служебных программ выполнять следующие операции:

  • Создание Базы данных Azure для MySQL
  • настройка брандмауэра сервера;
  • использование программы командной строки MySQL для создания базы данных.
  • Отправка примера данных
  • Запрос данных
  • Обновление данных
  • восстановление данных.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

  • Для работы с этой статьей требуется Azure CLI версии 2.0 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

Если вы используете несколько подписок, выберите соответствующую подписку, в которой находится ресурс либо в которой за него взимается плата. Выберите конкретный идентификатор подписки вашей учетной записи, выполнив команду az account set.

az account set --subscription 00000000-0000-0000-0000-000000000000

Создание или изменение группы ресурсов

Создайте группу ресурсов Azure, выполнив команду az group create. Группа ресурсов — это логический контейнер, в котором ресурсы Azure развертываются и администрируются как группа.

В следующем примере создается группа ресурсов с именем myresourcegroup в расположении именем westus.

az group create --name myresourcegroup --location westus

Создайте сервер базы данных Azure для MySQL.

Создайте сервер базы данных Azure для MySQL, выполнив команду az mysql server create. Сервер может управлять несколькими базами данных. Как правило, для каждого проекта и для каждого пользователя используется отдельная база данных.

В следующем примере в группе ресурсов myresourcegroup создается сервер базы данных Azure для MySQL с именем mydemoserver, который расположен в westus. У сервера есть пользователь-администратор с именем myadmin. Это сервер общего назначения 5-го поколения с 2 виртуальными ядрами. Замените <server_admin_password> собственным значением.

az mysql server create --resource-group myresourcegroup --name mydemoserver --location westus --admin-user myadmin --admin-password <server_admin_password> --sku-name GP_Gen5_2 --version 5.7

Значение параметра sku-name соответствует соглашению {ценовая категория}_{поколение вычислительных ресурсов}_{количество виртуальных ядер}, как показано в примерах ниже:

  • --sku-name B_Gen5_2 — ценовая категория "Базовый", поколение 5, 2 виртуальных ядра;
  • --sku-name GP_Gen5_32 — "Общего назначения", поколение 5, 32 виртуальных ядра;
  • --sku-name MO_Gen5_2 — "оптимизированный для операций в памяти", поколение 5, 2 виртуальных ядра.

Допустимые значения для каждого региона и каждого уровня указаны в документации по ценовым категориям.

Важно!

Указанные здесь учетные данные и пароль администратора сервера понадобятся позже в этом руководстве, чтобы войти на сервер и в его базу данных. Запомните или запишите эту информацию для последующего использования.

Настройка правила брандмауэра

Создайте правило брандмауэра на уровне сервера базы данных Azure для MySQL, выполнив команду az mysql server firewall-rule create. Правило брандмауэра на уровне сервера позволяет внешним приложениям, таким как средство командной строки MySQL или MySQL Workbench, подключаться к серверу через брандмауэр службы Azure MySQL.

В приведенном ниже примере создается правило брандмауэра с именем AllowMyIP, которое разрешает подключения с определенного IP-адреса — 192.168.0.1. Подставьте IP-адрес или диапазон IP-адресов, которые соответствуют расположению, из которого будет устанавливаться подключение.

az mysql server firewall-rule create --resource-group myresourcegroup --server mydemoserver --name AllowMyIP --start-ip-address 192.168.0.1 --end-ip-address 192.168.0.1

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

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

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

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

{
  "administratorLogin": "myadmin",
  "administratorLoginPassword": null,
  "fullyQualifiedDomainName": "mydemoserver.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforMySQL/servers/mydemoserver",
  "location": "westus",
  "name": "mydemoserver",
  "resourceGroup": "myresourcegroup",
 "sku": {
    "capacity": 2,
    "family": "Gen5",
    "name": "GP_Gen5_2",
    "size": null,
    "tier": "GeneralPurpose"
  },
  "sslEnforcement": "Enabled",
  "storageProfile": {
    "backupRetentionDays": 7,
    "geoRedundantBackup": "Disabled",
    "storageMb": 5120
  },
  "tags": null,
  "type": "Microsoft.DBforMySQL/servers",
  "userVisibleState": "Ready",
  "version": "5.7"
}

Подключение к серверу с помощью MySQL

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

mysql -h mydemoserver.mysql.database.azure.com -u myadmin@mydemoserver -p

Создание пустой базы данных

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

mysql> CREATE DATABASE mysampledb;

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

mysql> USE mysampledb;

Создание таблиц в базе данных

Теперь, когда вы знаете, как подключиться к базе данных Azure для MySQL, выполните некоторые основные задачи.

Сначала создайте таблицу и заполните ее некоторыми данными. Давайте создадим таблицу, в которой хранятся данные инвентаризации.

CREATE TABLE inventory (
	id serial PRIMARY KEY, 
	name VARCHAR(50), 
	quantity INTEGER
);

Загрузка данных в таблицу

Теперь, когда таблица создана, мы можем вставить в нее данные. Чтобы вставить некоторые строки данных, в открытом окне командной строки выполните следующий запрос:

INSERT INTO inventory (id, name, quantity) VALUES (1, 'banana', 150); 
INSERT INTO inventory (id, name, quantity) VALUES (2, 'orange', 154);

Итак, в созданной ранее таблице содержится две строки данных.

Запрос и обновление данных в таблицах

Чтобы извлечь сведения из таблицы базы данных, выполните приведенный ниже запрос.

SELECT * FROM inventory;

Вы можете также обновить данные в таблицах, выполнив следующую команду:

UPDATE inventory SET quantity = 200 WHERE name = 'banana';

При извлечении данных строка будет обновляться соответствующим образом.

SELECT * FROM inventory;

Восстановление базы данных до предыдущей точки во времени

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

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

  • Точка восстановления. Выберите время до того момента, когда был изменен сервер. Значение точки восстановления должно быть не меньше значения самой старой резервной копии исходной базы данных.
  • Целевой сервер. Укажите новое имя сервера, который нужно восстановить.
  • Исходный сервер. Укажите имя сервера, из которого требуется выполнить восстановление.
  • Расположение. Вы не сможете выбрать регион, по умолчанию он совпадает с исходным сервером.
az mysql server restore --resource-group myresourcegroup --name mydemoserver-restored --restore-point-in-time "2017-05-4 03:10" --source-server-name mydemoserver

Для команды az mysql server restore необходимо настроить следующие параметры:

Параметр Предлагаемое значение Описание
resource-group  myresourcegroup  Группа ресурсов, в которой находится исходный сервер. 
name mydemoserver-restored Имя нового сервера, созданного командой restore.
restore-point-in-time 2017-04-13T13:59:00Z Выберите точку во времени, до которой необходимо выполнить восстановление. Значения даты и времени должны находиться в пределах срока хранения резервной копии исходного сервера. Используйте формат даты и времени ISO8601. Например, вы можете использовать свой местный часовой пояс, например 2017-04-13T05:59:00-08:00, или использовать формат UTC Zulu 2017-04-13T13:59:00Z.
source-server mydemoserver Имя или идентификатор исходного сервера, с которого необходимо выполнить восстановление.

При восстановлении сервера до определенной точки во времени создается новый сервер путем копирования той точки во времени исходного сервера, которую вы задали. Значения расположения и ценовой категории для восстановленного сервера совпадают со значениями исходного сервера.

Команда выполняется в синхронном режиме и будет возвращена после восстановления сервера. После завершения восстановления найдите созданный сервер. Убедитесь, что данные восстановлены надлежащим образом.

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

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

az group delete --name myresourcegroup

Если вы хотите удалить созданный сервер, выполните команду az mysql server delete.

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

Следующие шаги

Из этого руководства вы узнали, как выполнять следующие операции:

  • Создайте сервер базы данных Azure для MySQL.
  • настройка брандмауэра сервера;
  • использование программы командной строки MySQL для создания базы данных;
  • Отправка примера данных
  • Запрос данных
  • Обновление данных
  • восстановление данных.