Guida introduttiva: Creare un'istanza di Database di Azure per MySQL - Server flessibile usando l'interfaccia della riga di comando di Azure

SI APPLICA A: Database di Azure per MySQL - Server flessibile

Questa guida introduttiva illustra come usare i comandi dell'interfaccia della riga di comando di Azure in Azure Cloud Shell per creare un'istanza di Database di Azure per MySQL - Server flessibile in cinque minuti.

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare. Attualmente, con un account gratuito di Azure, è possibile provare Database di Azure per MySQL - Server flessibile gratuito per 12 mesi. Per altre informazioni, vedere Provare gratuitamente Database di Azure per MySQL - Server flessibile.

Aprire Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che è possibile usare per eseguire i passaggi descritti in questo articolo. In Cloud Shell, gli strumenti comuni di Azure sono preinstallati e configurati per l'uso con l'account.

Per aprire Cloud Shell, nell'angolo superiore destro di un esempio di codice selezionare Prova.

È anche possibile aprire Cloud Shell in una scheda separata del browser visitando https://shell.azure.com/bash. Selezionare Copia per copiare il contenuto di un blocco di codice. In Cloud Shell incollare il codice e selezionare Invio per eseguirlo.

Se si preferisce installare e usare l'interfaccia della riga di comando di Azure, questa guida introduttiva richiede l'interfaccia della riga di comando di Azure versione 2.0 o successiva. Per trovare la versione dell'installazione dell'interfaccia della riga di comando di Azure. , eseguire az --version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Prerequisiti

Accedere all'account usando il comando az login . Prendere nota della id proprietà . La id proprietà fa riferimento all'ID sottoscrizione dell'account Azure.

az login

Selezionare la sottoscrizione specifica nell'account Azure usando il comando az account set . Prendere nota del id valore dell'output az login da usare come valore per l'argomento subscription nel comando .

Se sono presenti più sottoscrizioni, selezionare la sottoscrizione in cui si vuole che la risorsa venga fatturata. Per ottenere un elenco delle sottoscrizioni, usare az account list.

az account set --subscription <subscription ID>

Creare un server flessibile di Database di Azure per MySQL

Creare un gruppo di risorse di Azure usando il az group create comando . Creare quindi il server flessibile Database di Azure per MySQL all'interno del gruppo di risorse. Assicurarsi di specificare un nome univoco. L'esempio seguente consente di creare un gruppo di risorse denominato myresourcegroup nell'area eastus2.

az group create --name myresourcegroup --location eastus2

Creare un server flessibile Database di Azure per MySQL usando il az mysql flexible-server create comando . Un server può contenere più database. Il comando seguente crea un server usando le impostazioni predefinite del servizio e i valori dal contesto locale dell'interfaccia della riga di comando di Azure:

az mysql flexible-server create

Il server creato ha gli attributi seguenti:

  • Nome del server generato automaticamente, nome utente amministratore, password amministratore e nome del gruppo di risorse (se non è già specificato in un contesto locale) e si trova nella stessa posizione del gruppo di risorse.
  • Impostazioni predefinite del servizio per le configurazioni server rimanenti: livello di calcolo (burstable), dimensioni di calcolo/SKU (B1MS), periodo di conservazione dei backup (sette giorni) e versione di MySQL (5.7).
  • Il metodo di connettività predefinito è Accesso privato (integrazione rete virtuale) con una rete virtuale e una subnet generati automaticamente.

Nota

Il metodo di connettività non può essere modificato dopo la creazione del server. Ad esempio, se è stato selezionato Accesso privato (integrazione rete virtuale) al momento della creazione del server, non è possibile modificare l'impostazione su Accesso pubblico (indirizzi IP consentiti) dopo la distribuzione. È consigliabile creare un server con accesso privato per accedere in modo sicuro al server usando l'integrazione della rete virtuale. Per altre informazioni sull'accesso privato, vedere l'articolo sui concetti relativi alla rete.

Per modificare le impostazioni predefinite, vedere la documentazione di riferimento dell'interfaccia della riga di comando di Azure per l'elenco completo dei parametri configurabili dell'interfaccia della riga di comando di Azure.

Ecco l'output di esempio:

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=serverXXXXXXXXX.mysql.database.azure.com;database=flexibleserverdb;uid=secureusername;pwd=securepasswordstring",
  "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": "securepasswordstring",
  "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"
}

Per modificare le impostazioni predefinite, vedere la documentazione di riferimento dell'interfaccia della riga di comando di Azure per l'elenco completo dei parametri configurabili dell'interfaccia della riga di comando di Azure.

Creazione di un database

Se non è già stato creato un database, crearne uno denominato newdatabase eseguendo il comando seguente:

az mysql flexible-server db create -d newdatabase

Nota

Connessione ions a Database di Azure per MySQL : il server flessibile comunica tramite la porta 3306. Se si tenta di connettersi dall'interno di una rete aziendale, il traffico in uscita attraverso la porta 3306 potrebbe non essere consentito. Non è possibile connettersi al server a meno che il reparto IT non apra la porta 3306.

Ottenere le informazioni di connessione

Per connettersi al server, è necessario fornire informazioni sull'host e credenziali di accesso:

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

Il risultato è in formato JSON. Prendere nota dei valori per fullyQualifiedDomainName e administratorLogin. Di seguito è riportato un esempio dell'output 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"
}

Connessione e testare la connessione usando l'interfaccia della riga di comando di Azure

È possibile usare Database di Azure per MySQL - Server flessibile per connettersi al server flessibile usando il az mysql flexible-server connect comando nell'interfaccia della riga di comando di Azure. È possibile usare questo comando per testare la connettività al server di database, creare un database di base rapido ed eseguire query direttamente sul server senza installare mysql.exe o MySQL Workbench. È anche possibile usare il comando in modalità interattiva per eseguire più query alla volta.

Eseguire lo script seguente per testare e convalidare la connessione al database dall'ambiente di sviluppo:

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

Ecco un esempio:

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

In una connessione riuscita viene visualizzato un output simile all'esempio seguente:

Connecting to newdatabase database.
Successfully connected to mysqldemoserver1.

Se la connessione non riesce, provare queste soluzioni:

  • Controllare se la porta 3306 è aperta nel computer client.
  • Verificare che il nome utente e la password dell'amministratore del server siano corretti.
  • Verificare di aver configurato una regola del firewall per il computer client.
  • Assicurarsi che la macchina client si trovi nella stessa rete virtuale del server se il server è stato configurato per l'accesso privato in una rete virtuale.

Per eseguire una singola query, usare l'argomento--querytext (-q):

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

Ecco un esempio:

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

Per altre informazioni sull'uso az mysql flexible-server connectdi , vedere Connessione e query dell'interfaccia della riga di comando di Azure.

Connessione usando il client della riga di comando MySQL

Se è stato creato il server flessibile Database di Azure per MySQL usando l'accesso privato con l'integrazione della rete virtuale, connettersi al server da una risorsa che si trova nella stessa rete virtuale del server. È possibile creare una macchina virtuale e aggiungerla alla rete virtuale creata al momento della creazione dell'istanza del server flessibile Database di Azure per MySQL. Per altre informazioni, vedere Configurare l'accesso privato.

Se è stata creata l'istanza del server flessibile Database di Azure per MySQL usando l'accesso pubblico (indirizzi IP consentiti), è possibile aggiungere l'indirizzo IP locale all'elenco delle regole del firewall nel server. Per indicazioni dettagliate, vedere Creare o gestire le regole del firewall.

Per connettersi al server dall'ambiente locale, è possibile usare mysql.exe o MySQL Workbench. Database di Azure per MySQL - Il server flessibile supporta la connessione delle applicazioni client al servizio server flessibile Database di Azure per MySQL tramite Transport Layer Security (TLS), noto in precedenza come Secure Sockets Layer (SSL). TLS è un protocollo standard del settore che garantisce connessioni di rete crittografate tra il server di database e le applicazioni client, in modo da poter rispettare i requisiti di conformità. Per connettersi usando il server flessibile Database di Azure per MySQL, scaricare il certificato SSL pubblico per la verifica dell'autorità di certificazione. Per altre informazioni sulla connessione tramite connessioni crittografate o disabilitazione di SSL, vedere Connessione a Database di Azure per MySQL - Server flessibile tramite connessioni crittografate.

L'esempio seguente illustra come connettersi al server flessibile Database di Azure per MySQL usando lo strumento client da riga di comando MySQL. È possibile installare lo strumento se non è già installato. Scaricare il certificato DigiCertGlobalRootCA necessario per le connessioni SSL. Usare l'impostazione --ssl-mode=REQUIRED stringa di connessione per applicare la verifica del certificato TLS/SSL. Passare il percorso del file del certificato locale al --ssl-ca parametro . Sostituire i valori con il nome server e la password effettivi.

sudo apt-get install mysql-client
wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
mysql -h mydemoserver.mysql.database.azure.com -u mydemouser -p --ssl-mode=REQUIRED --ssl-ca=DigiCertGlobalRootCA.crt.pem

Se è stato effettuato il provisioning del server flessibile Database di Azure per MySQL usando l'accesso pubblico, è anche possibile usare Azure Cloud Shell per connettersi al server flessibile Database di Azure per MySQL usando il client MySQL preinstallato.

Per usare Azure Cloud Shell per connettersi al server flessibile Database di Azure per MySQL, consentire l'accesso alla rete da Azure Cloud Shell al server flessibile Database di Azure per MySQL. Per consentire l'accesso, passare al riquadro Portale di Azure Rete per il server flessibile Database di Azure per MySQL. In Firewall selezionare la casella di controllo Consenti l'accesso pubblico da qualsiasi servizio di Azure in Azure a questo server , come illustrato nello screenshot seguente. Selezionare quindi Salva per salvare in modo permanente l'impostazione.

Screenshot that shows how to grant Azure Cloud Shell access to an Azure Database for MySQL flexible server for public access network configuration.

Nota

Selezionare Consenti l'accesso pubblico da qualsiasi servizio di Azure in Azure a questo server solo per lo sviluppo o il test. Questa impostazione configura il firewall per consentire le connessioni da indirizzi IP allocati a qualsiasi servizio o asset di Azure, incluse le connessioni da altre sottoscrizioni di Azure.

Selezionare Prova per aprire Azure Cloud Shell. In Cloud Shell usare i comandi seguenti per connettersi al server flessibile Database di Azure per MySQL. Usare il nome del server, il nome utente e la password nel comando .

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

Importante

Quando ci si connette al server flessibile Database di Azure per MySQL usando Cloud Shell, usare il --ssl=true parametro . Non usare --ssl-mode=REQUIRED.

Il motivo principale per cui queste linee guida è importante è che Azure Cloud Shell è preinstallato con il client mysql.exe dalla distribuzione MariaDB. Il client mysql.exe richiede il --ssl parametro . Il client MySQL dalla distribuzione Oracle richiede il --ssl-mode parametro .

Se viene visualizzato il messaggio di errore seguente quando ci si connette al server flessibile Database di Azure per MySQL, non è stata selezionata la casella di controllo Consenti l'accesso pubblico da qualsiasi servizio di Azure in Azure a questo server quando si configurano le regole del firewall o l'opzione non viene salvata. Impostare le regole del firewall e quindi riprovare.

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

Pulire le risorse

Se non è necessario usare le risorse create per questo articolo in un'altra guida introduttiva o esercitazione, è possibile eliminarle eseguendo il comando seguente:

az group delete --name myresourcegroup

Se si vuole eliminare solo il server flessibile creato, eseguire questo comando:

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