Tutorial: Conceber uma Base de Dados do Azure para MySQL com a CLI do Azure

APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Único

Importante

O servidor único do Banco de Dados do Azure para MySQL está no caminho de desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para o servidor flexível MySQL. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para servidor flexível MySQL, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único MySQL?

A Base de Dados do Azure para MySQL é um serviço de base de dados relacional na cloud da Microsoft baseado no motor de base de dados da Edição de Comunidade do MySQL. Neste tutorial, utiliza a CLI do Azure (interface de linha de comandos) e outros utilitários para saber como:

  • Criar uma Base de dados do Azure para MySQL
  • Configurar a firewall do servidor
  • Utilize a ferramenta da linha de comandos mysql para criar uma base de dados
  • Carregar dados de exemplo
  • Consultar os dados
  • Atualizar dados
  • Restaurar dados

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

  • Este artigo requer a versão 2.0 ou posterior da CLI do Azure. Se estiver usando o Azure Cloud Shell, a versão mais recente já está instalada.

Se tiver várias subscrições, escolha a subscrição adequada na qual o recurso existe ou é cobrado. Selecione um ID de subscrição específica na sua conta com o comando az account set.

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

Criar um grupo de recursos

Crie um grupo de recursos do Azure com o comando az group create. Um grupo de recursos é um contentor lógico no qual os recursos do Azure são implementados e geridos como um grupo.

O exemplo seguinte cria um grupo de recursos com o nome myresourcegroup na localização westus.

az group create --name myresourcegroup --location westus

Criar uma Base de Dados do Azure para o servidor MySQL

Crie uma Base de Dados do Azure para o servidor MySQL com o comando az mysql server create. Cada servidor pode gerir múltiplas bases de dados. Geralmente, é utilizada uma base de dados em separado para cada projeto ou para cada utilizador.

O exemplo seguinte cria uma Base de Dados do Azure para o servidor MySQL localizada em westus no grupo de recursos myresourcegroup com o nome mydemoserver. O servidor tem um usuário administrador chamado myadmin. É um servidor de uso geral, Gen 5 com 2 vCores. Substitua <server_admin_password> pelo seu próprio valor.

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

O valor do parâmetro sku-name segue a convenção {pricing tier}_{compute generation}_{vCores} como nos exemplos abaixo:

  • --sku-name B_Gen5_2 mapeia para vCores Basic, Gen 5 e 2.
  • --sku-name GP_Gen5_32 mapeia para Fins Gerais, Ger 5 e 32 vCores.
  • --sku-name MO_Gen5_2 mapeia para Otimizada para Memória, Ger 5 e 2 vCores.

Leia a documentação dos escalões de preços para entender os valores válidos por região e por escalão.

Importante

O início de sessão e a palavra-passe de administrador de servidor que especificar aqui serão necessários para iniciar sessão no servidor e nas respetivas bases de dados mais tarde neste início rápido. Lembre-se ou grave estas informações para utilização posterior.

Configurar a regra de firewall

Crie uma regra de firewall ao nível da Base de Dados do Azure para o servidor MySQL com o comando az mysql server firewall-rule create. A regra de firewall ao nível do servidor permite que uma aplicação externa, como a ferramenta de linha de comandos mysql ou o MySQL Workbench, se ligue ao seu servidor através da firewall do serviço Azure MySQL.

O exemplo seguinte cria uma regra de firewall chamada AllowMyIP que permite ligações a partir de um endereço IP específico, 192.168.0.1. Substitua o endereço IP ou intervalo de endereços IP que correspondem ao local onde os irá ligar.

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

Obter as informações da ligação

Para ligar ao seu servidor, terá de fornecer credenciais de acesso e informações de anfitrião.

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

O resultado está no formato JSON. Aponte o fullyQualifiedDomainName e o 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"
}

Ligar ao servidor com o mysql

Utilize a ferramenta de linha de comandos do mysql para ligar à Base de Dados do Azure para o servidor MySQL. Neste exemplo, o comando é:

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

Criar uma base de dados vazia

Assim que estiver ligado ao servidor, crie uma base de dados vazia.

mysql> CREATE DATABASE mysampledb;

Na linha de comandos, execute o comando seguinte para mudar a ligação para a base de dados recentemente criada:

mysql> USE mysampledb;

Criar tabelas na base de dados

Agora que sabe como ligar à Base de Dados do Azure para MySQL, conclua algumas tarefas básicas.

Em primeiro lugar, crie uma tabela e carregue-a com alguns dados. Vamos criar uma tabela que armazena informações de inventário.

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

Carregar dados para as tabelas

Agora que tem uma tabela, insira alguns dados na mesma. Na janela da linha de comandos aberta, execute a seguinte consulta para inserir algumas linhas de dados.

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

Tem agora duas linhas de dados de exemplo nas tabelas que criou anteriormente.

Consultar e atualizar os dados nas tabelas

Execute a seguinte consulta para obter informações da tabela de base de dados.

SELECT * FROM inventory;

Também pode atualizar os dados nas tabelas.

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

A linha é atualizada em conformidade ao obter dados.

SELECT * FROM inventory;

Restaurar uma base de dados para um ponto anterior no tempo

Imagine que eliminou acidentalmente esta tabela. É algo de que não é fácil recuperar. A Base de Dados do Azure para MySQL permite-lhe voltar atrás para qualquer ponto anterior no tempo até aos últimos 35 dias e restaurar este ponto anterior no tempo para um novo servidor. Pode utilizar este servidor novo para recuperar os dados eliminados. Os passos seguintes restauram o servidor de exemplo para um ponto antes da tabela ter sido adicionada.

Para o restauro, precisa das seguintes informações:

  • Ponto de restauro: selecione uma hora antes do servidor ter sido alterado. Tem de ser maior ou igual ao valor da Cópia de segurança mais antiga da base de dados de origem.
  • Servidor de destino: indique um novo nome de servidor para o qual pretende restaurar
  • Servidor de origem: indique o nome do servidor do qual pretende restaurar
  • Localização: não pode selecionar a região, por predefinição é igual ao servidor de origem
az mysql server restore --resource-group myresourcegroup --name mydemoserver-restored --restore-point-in-time "2017-05-4 03:10" --source-server-name mydemoserver

O comando az mysql server restore precisa dos seguintes parâmetros:

Definição Valor sugerido Descrição
resource-group  myresourcegroup  O grupo de recursos no qual se encontra o servidor de origem. 
nome mydemoserver-restored O nome do novo servidor que é criado pelo comando restore.
restore-point-in-time 2017-04-13T13:59:00Z Selecione um ponto anterior no tempo para o qual restaurar. Esta data e hora têm de estar dentro do período de retenção de cópias de segurança do servidor de origem. Utilize o formato de data e hora ISO8601. Por exemplo, pode utilizar o seu fuso horário local, como 2017-04-13T05:59:00-08:00, ou utilizar o formato UTC Zulu 2017-04-13T13:59:00Z.
source-server mydemoserver O nome ou ID do servidor de origem do qual pretende restaurar.

Restaurar um servidor para um ponto anterior no tempo cria um novo servidor, copiado como o servidor original do ponto anterior no tempo que especificar. A localização e os valores do escalão de preço do servidor restaurado são os mesmos do servidor de origem.

O comando é síncrono e irá regressar depois de o servidor ser restaurado. Depois de o restauro ser concluído, localize o novo servidor que foi criado. Certifique-se de que os dados foram restaurados conforme esperado.

Clean up resources (Limpar recursos)

Se não precisa destes recursos para outro início rápido/tutorial, pode eliminá-los ao executar o seguinte comando:

az group delete --name myresourcegroup

Se apenas quiser eliminar o único servidor recém-criado, pode executar o comando az mysql server delete.

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

Próximos passos

Neste tutorial, aprendeu a:

  • Criar uma Base de Dados do Azure para o servidor MySQL
  • Configurar a firewall do servidor
  • Utilizar a ferramenta de linha de comandos mysql para criar uma base de dados
  • Carregar dados de exemplo
  • Consultar os dados
  • Atualizar dados
  • Restaurar dados