Esercitazione: Progettare un'istanza di Database di Azure per MySQL con l'interfaccia della riga di comando di AzureTutorial: Design an Azure Database for MySQL using Azure CLI

Il database di Azure per MySQL è un servizio di database relazionale in Microsoft Cloud basato sul motore di database MySQL Community Edition.Azure Database for MySQL is a relational database service in the Microsoft cloud based on MySQL Community Edition database engine. In questa esercitazione, si usano l'interfaccia della riga di comando di Azure e altre utilità per informazioni su come:In this tutorial, you use Azure CLI (command-line interface) and other utilities to learn how to:

  • Creare un database di Azure per MySQLCreate an Azure Database for MySQL
  • Configurare il firewall del serverConfigure the server firewall
  • Usare lo strumento della riga di comando di MySQL per creare un databaseUse mysql command-line tool to create a database
  • Caricare dati di esempioLoad sample data
  • Eseguire query sui datiQuery data
  • Aggiornare i datiUpdate data
  • Ripristinare i datiRestore data

È possibile usare Azure Cloud Shell nel browser o installare l'interfaccia della riga di comando di Azure 2.0 nel computer in uso per eseguire i blocchi di codice di questa esercitazione.You may use the Azure Cloud Shell in the browser, or Install Azure CLI 2.0 on your own computer to run the code blocks in this tutorial.

Aprire Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo.Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Gli strumenti comuni di Azure sono preinstallati e configurati in Cloud Shell per l'uso con l'account.Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. È sufficiente selezionare il pulsante Copia per copiare il codice, incollarlo in Cloud Shell e quindi premere INVIO per eseguirlo.Just select the Copy button to copy the code, paste it in Cloud Shell, and then press Enter to run it. Esistono alcuni modi per aprire Cloud Shell:There are a few ways to open Cloud Shell:

Selezionare Prova nell'angolo superiore destro di un blocco di codice.Select Try It in the upper-right corner of a code block. Cloud Shell in questo articolo
Aprire Cloud Shell nel browser.Open Cloud Shell in your browser. https://shell.azure.com/bash
Selezionare il pulsante Cloud Shell nel menu nell'angolo superiore destro del portale di Azure.Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Cloud Shell nel portale

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, per questo articolo è necessario eseguire la versione 2.0 o successiva dell'interfaccia della riga di comando di Azure.If you choose to install and use the CLI locally, this article requires that you are running the Azure CLI version 2.0 or later. Eseguire az --version per trovare la versione.Run az --version to find the version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.If you need to install or upgrade, see Install Azure CLI 2.0.

Se si dispone di più sottoscrizioni, scegliere la sottoscrizione appropriata in cui la risorsa esiste o per cui è configurata.If you have multiple subscriptions, choose the appropriate subscription in which the resource exists or is billed for. Selezionare un ID di sottoscrizione specifico sotto l'account tramite il comando az account set.Select a specific subscription ID under your account using az account set command.

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

Creare un gruppo di risorseCreate a resource group

Creare un gruppo di risorse di Azure con il comando az group create.Create an Azure resource group with az group create command. Un gruppo di risorse è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite come gruppo.A resource group is a logical container into which Azure resources are deployed and managed as a group.

Nell'esempio seguente viene creato un gruppo di risorse denominato myresourcegroup nella posizione westus.The following example creates a resource group named myresourcegroup in the westus location.

az group create --name myresourcegroup --location westus

Creare un'istanza di Database di Azure per il server MySQLCreate an Azure Database for MySQL server

Creare un database di Azure per il server MySQL con il comando mysql server create.Create an Azure Database for MySQL server with the az mysql server create command. Un server può gestire più database.A server can manage multiple databases. In genere, viene usato un database separato per ogni progetto o per ogni utente.Typically, a separate database is used for each project or for each user.

L'esempio seguente crea un database di Azure per il server MySQL disponibile in westus nel gruppo di risorse myresourcegroup con nome mydemoserver.The following example creates an Azure Database for MySQL server located in westus in the resource group myresourcegroup with name mydemoserver. Il server ha un account di accesso amministratore denominato myadmin.The server has an administrator log in named myadmin. Questo è un server per utilizzo generico di generazione 4 con 2 vCore.It is a General Purpose, Gen 4 server with 2 vCores. Sostituire <server_admin_password> con il proprio valore.Substitute the <server_admin_password> with your own value.

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

Il valore del parametro sku-name segue la convenzione {piano tariffario}_{generazione calcolo}_{vCore} come illustrato nell'esempio seguente:The sku-name parameter value follows the convention {pricing tier}_{compute generation}_{vCores} as in the examples below:

  • --sku-name B_Gen4_4 esegue il mapping a Basic, Gen 4 e 4 vCore.--sku-name B_Gen4_4 maps to Basic, Gen 4, and 4 vCores.
  • --sku-name GP_Gen5_32 esegue il mapping a utilizzo generico, Gen 5 e 32 vCore.--sku-name GP_Gen5_32 maps to General Purpose, Gen 5, and 32 vCores.
  • --sku-name MO_Gen5_2 esegue il mapping a ottimizzazione per la memoria, Gen 5 e 2 vCore.--sku-name MO_Gen5_2 maps to Memory Optimized, Gen 5, and 2 vCores.

Vedere la documentazione dei piani tariffari per comprendere i valori validi per area e livello.Please see the pricing tiers documentation to understand the valid values per region and per tier.

Importante

L'account di accesso amministratore server e la password qui specificati sono necessari per accedere al server e ai relativi database più avanti in questa guida di avvio rapido.The server admin login and password that you specify here are required to log in to the server and its databases later in this quickstart. Prendere nota di queste informazioni per usarle in seguito.Remember or record this information for later use.

Configurare una regola del firewallConfigure firewall rule

Creare una regola del firewall a livello di server del Database SQL di Azure con il comando az mysql server firewall-rule create.Create an Azure Database for MySQL server-level firewall rule with the az mysql server firewall-rule create command. Una regola del firewall a livello di server consente a un'applicazione esterna, ad esempio lo strumento della riga di comando mysql o MySQL Workbench, di connettersi al server tramite il firewall del servizio MySQL di Azure.A server-level firewall rule allows an external application, such as mysql command-line tool or MySQL Workbench to connect to your server through the Azure MySQL service firewall.

L'esempio seguente crea una regola firewall denominata AllowMyIP che consente connessioni da un indirizzo IP specifico, 192.168.0.1.The following example creates a firewall rule called AllowMyIP that allows connections from a specific IP address, 192.168.0.1. Sostituire con l'indirizzo IP o l'intervallo di indirizzi IP corrispondenti alla posizione da cui si effettuerà la connessione.Substitute in the IP address or range of IP addresses that correspond to where you'll be connecting from.

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

Ottenere le informazioni di connessioneGet the connection information

Per connettersi al server, è necessario specificare le informazioni sull'host e le credenziali di accesso.To connect to your server, you need to provide host information and access credentials.

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

Il risultato è in formato JSON.The result is in JSON format. Annotare il fullyQualifiedDomainName e l'administratorLogin.Make a note of the fullyQualifiedDomainName and 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": "Gen4",
    "name": "GP_Gen4_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"
}

Connettersi al server usando mysqlConnect to the server using mysql

Usare lo strumento da riga di comando di MySQL per stabilire una connessione al server Database di Azure per MySQL.Use the mysql command-line tool to establish a connection to your Azure Database for MySQL server. In questo esempio, il comando è:In this example, the command is:

mysql -h mydemoserver.database.windows.net -u myadmin@mydemoserver -p

Creazione di un database vuotoCreate a blank database

Una volta connessi al server, creare un database vuoto.Once you’re connected to the server, create a blank database.

mysql> CREATE DATABASE mysampledb;

Nel prompt, eseguire il comando seguente per cambiare la connessione nel database appena creato:At the prompt, run the following command to switch the connection to this newly created database:

mysql> USE mysampledb;

Creare tabelle nel databaseCreate tables in the database

Dopo aver appreso come connettersi al database di Database di Azure per MySQL, completare alcune attività di base.Now that you know how to connect to the Azure Database for MySQL database, complete some basic tasks.

In primo luogo, creare una tabella e caricarvi alcuni dati.First, create a table and load it with some data. Creare una tabella che contenga le informazioni riguardanti l'inventario.Let's create a table that stores inventory information.

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

Caricare i dati nelle tabelleLoad data into the tables

Dopo aver creato una tabella, inserire alcuni dati.Now that you have a table, insert some data into it. Nella finestra del prompt dei comandi aperta, eseguire la query seguente per inserire alcune righe di dati.At the open command prompt window, run the following query to insert some rows of data.

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

A questo punto, ci sono due righe di dati di esempio nella tabella creata in precedenza.Now you have two rows of sample data into the table you created earlier.

Eseguire una query e aggiornare i dati nelle tabelleQuery and update the data in the tables

Eseguire la query seguente per recuperare informazioni dalla tabella del database.Execute the following query to retrieve information from the database table.

SELECT * FROM inventory;

Si possono anche aggiornare query e aggiornare i dati nelle tabelle.You can also update the data in the tables.

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

La riga viene aggiornata di conseguenza quando si recuperano dati.The row gets updated accordingly when you retrieve data.

SELECT * FROM inventory;

Ripristinare un database a un momento precedenteRestore a database to a previous point in time

Si supponga di aver eliminato accidentalmente questa tabella.Imagine you have accidentally deleted this table. Si tratta di un elemento che non è facile da ripristinare.This is something you cannot easily recover from. Il database di Azure per MySQL consente di tornare in qualsiasi punto degli ultimi 35 giorni e di ripristinare questo punto nel tempo in un nuovo server.Azure Database for MySQL allows you to go back to any point in time in the last up to 35 days and restore this point in time to a new server. È possibile usare questo nuovo server per ripristinare i dati eliminati.You can use this new server to recover your deleted data. La procedura seguente consente di ripristinare il server di esempio in un punto precedente all'aggiunta della tabella.The following steps restore the sample server to a point before the table was added.

Per il ripristino sono necessarie le informazioni seguenti:For the restore, you need the following information:

  • Punto di ripristino: selezionare un punto nel tempo precedente alla modifica del server.Restore point: Select a point-in-time that occurs before the server was changed. Il punto deve essere maggiore o equivalente al valore del backup meno recente del database di origine.Must be greater than or equal to the source database's Oldest backup value.
  • Server di destinazione: fornire un nuovo nome del server che si desidera ripristinare.Target server: Provide a new server name you want to restore to
  • Server di origine: fornire il nome del server che si desidera ripristinareSource server: Provide the name of the server you want to restore from
  • Posizione: non è possibile selezionare l'area, per impostazione predefinita è la stessa del server di origineLocation: You cannot select the region, by default it is same as the source server
az mysql server restore --resource-group myresourcegroup --name mydemoserver-restored --restore-point-in-time "2017-05-4 03:10" --source-server-name mydemoserver

Il comando az mysql server restore richiede i parametri seguenti:The az mysql server restore command needs the following parameters:

ImpostazioneSetting Valore consigliatoSuggested value DESCRIZIONEDescription
resource-groupresource-group myresourcegroupmyresourcegroup Il gruppo di risorse in cui si trova il server di origine.The resource group in which the source server exists.
namename mydemoserver-restoredmydemoserver-restored Il nome del nuovo server creato con il comando di ripristino.The name of the new server that is created by the restore command.
restore-point-in-timerestore-point-in-time 2017-04-13T13:59:00Z2017-04-13T13:59:00Z Selezionare un punto di ripristino temporizzato.Select a point-in-time to restore to. La data e l'ora devono trovarsi all'interno del periodo di memorizzazione dei backup del server di origine.This date and time must be within the source server's backup retention period. Usare il formato ISO8601 per la data e l'ora.Use ISO8601 date and time format. È possibile usare il fuso orario locale, ad esempio 2017-04-13T05:59:00-08:00, o il formato UTC Zulu 2017-04-13T13:59:00Z.For example, you may use your own local timezone, such as 2017-04-13T05:59:00-08:00, or use UTC Zulu format 2017-04-13T13:59:00Z.
source-serversource-server mydemoservermydemoserver Il nome o l'ID del server di origine da cui eseguire il ripristino.The name or ID of the source server to restore from.

Il ripristino di un server in un punto nel tempo crea un nuovo server, ovvero una copia del server originale nel momento specificato.Restoring a server to a point-in-time creates a new server, copied as the original server as of the point in time you specify. I valori relativi al percorso e al piano tariffario del server ripristinato sono gli stessi del server di origine.The location and pricing tier values for the restored server are the same as the source server.

Il comando è sincrono e il risultato verrà restituito dopo il ripristino del server.The command is synchronous, and will return after the server is restored. Una volta terminato il ripristino, individuare il nuovo server creato.Once the restore finishes, locate the new server that was created. Verificare che i dati siano stati ripristinati come previsto.Verify the data was restored as expected.

Passaggi successiviNext steps

Questa esercitazione illustra come:In this tutorial you learned to:

  • Creare un'istanza di Database di Azure per il server MySQLCreate an Azure Database for MySQL server
  • Configurare il firewall del serverConfigure the server firewall
  • Usare lo strumento della riga di comando di MySQL per creare un databaseUse mysql command-line tool to create a database
  • Caricare dati di esempioLoad sample data
  • Eseguire query sui datiQuery data
  • Aggiornare i datiUpdate data
  • Ripristinare i datiRestore data