Självstudie: Etablera en Azure Database for MySQL server med hjälp Azure Resource Manager mall

GÄLLER FÖR: Azure Database for MySQL – enskild server

Azure Database for MySQL REST API låter DevOps-tekniker automatisera och integrera etablering, konfiguration och drift för hanterade MySQL-servrar och databaser i Azure. API:et låter dig skapa, uppräkna, hantera och ta bort MySQL-servrar och databaser på Azure Database for MySQL-tjänsten.

Azure Resource Manager använder den underliggande REST API deklarerar och programmerar de Azure-resurser som krävs för distributioner i stor skala, i enlighet med begreppet infrastruktur som kod. Mallen parameteriserar Azure-resursens namn, SKU, nätverk, brandväggskonfiguration och inställningar, vilket låter den skapas en gång och användas flera gånger. Azure Resource Manager-mallar kan enkelt skapas med Azure-portalen eller Visual Studio Code. De möjliggör programpaketering, standardisering och distributionsautomatisering som kan integreras i DevOps CI/CD-pipelinen. Om du till exempel snabbt vill distribuera en Webbapp med en Azure Database for MySQL-serverdel så kan du utföra distributionen från början till slut med den här Snabbstartsmallen från GitHub-galleriet.

I den här självstudien ska du använda Azure Resource Manager-mallar och andra verktyg för att lära dig:

  • Skapa en Azure Database for MySQL-server med VNet-tjänstslutpunkt med en Azure Resource Manager-mall
  • Använda kommandoradsverktyget mysql för att skapa en databas
  • Läsa in exempeldata
  • Söka i data
  • Uppdatera data

Förutsättningar

Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt Azure-konto innan du börjar.

Skapa en Azure Database for MySQL-server med VNet-tjänstslutpunkt med en Azure Resource Manager-mall

JSON-mallreferensen för en Azure Database for MySQL-server finns under mallreferensen för Microsoft.DBforMySQL-servrar. Nedan visas JSON-exempelmallen som kan användas för att skapa en ny server som kör Azure Database for MySQL med VNet-tjänstslutpunkt.

{
  "apiVersion": "2017-12-01",
  "type": "Microsoft.DBforMySQL/servers",
  "name": "string",
  "location": "string",
  "tags": "string",
  "properties": {
    "version": "string",
    "sslEnforcement": "string",
    "administratorLogin": "string",
    "administratorLoginPassword": "string",
    "storageProfile": {
      "storageMB": "string",
      "backupRetentionDays": "string",
      "geoRedundantBackup": "string"
    }
  },
  "sku": {
    "name": "string",
    "tier": "string",
    "capacity": "string",
    "family": "string"
  },
  "resources": [
    {
      "name": "AllowSubnet",
      "type": "virtualNetworkRules",
      "apiVersion": "2017-12-01",
      "properties": {
        "virtualNetworkSubnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]",
        "ignoreMissingVnetServiceEndpoint": true
      },
      "dependsOn": [
        "[concat('Microsoft.DBforMySQL/servers/', parameters('serverName'))]"
      ]
    }
  ]
}

I den här begäran är de värden som måste anpassas:

  • name – Ange namnet på din MySQL-server (utan domännamn).
  • location – Ange en giltig Azure-datacenterregion för din MySQL-server. Till exempel westus2.
  • properties/version – Ange den MySQL-serverversion som ska distribueras. Till exempel 5.6 eller 5.7.
  • properties/administratorLogin – Ange MySQL administratörsinloggningen till servern. Inloggningsnamnet för administratören får inte vara azure_superuser, admin, administrator, root, guest eller public.
  • properties/administratorLoginPassword – Ange lösenordet för den MySQL-administratörsanvändare som anges ovan.
  • properties/sslEnforcement – Ange aktiverat/inaktiverat för att aktivera/inaktivera sslEnforcement.
  • storageProfile/storageMB – Ange den högsta allokerade lagringsstorleken som krävs för servern i megabyte. Till exempel 5120.
  • storageProfile/backupRetentionDays – Ange den önskade kvarhållningsperioden för säkerhetskopior i dagar. Till exempel 7.
  • storageProfile/geoRedundantBackup – Ange aktiverat/inaktiverat beroende på kraven för geohaveriberedskap.
  • sku/tier – Ange nivån Basic, GeneralPurpose eller MemoryOptimized för distributionen.
  • sku/capacity – Ange vCore-kapacitet. Möjliga värden är 2, 4, 8, 16, 32 eller 64.
  • sku/family – Ange Gen5 för att välja maskinvarugenerering för serverdistribution.
  • sku/name – Ange TierPrefix_family_capacity. Till exempel B_Gen5_1, GP_Gen5_16, MO_Gen5_32. Se dokumentationen prissättningsnivåer för att se giltiga värden per region och nivå.
  • resources/properties/virtualNetworkSubnetId – Ange Azure-identifieraren för undernätet i det virtuella nätverket där Azure MySQL-servern ska placeras.
  • tags(optional) – Ange valfria taggar är nyckelvärdepar som du använder för att kategorisera resurser för fakturering osv.

Om du vill skapa en Azure Resource Manager-mall för att automatisera Azure Database for MySQL-distributioner för din organisation så är rekommendationen att börja från exemplet Azure Resource Manager-mall i Azure-snabbstartsgalleriet i GitHub först och bygga på den.

Om du är nybörjare på Azure Resource Manager-mallar och vill prova så kan du starta genom att följa dessa steg:

  • Klona eller hämta exemplet Azure Resource Manager-mall från Azure-snabbstartsgalleriet.
  • Ändra azuredeploy.parameters.json om du vill uppdatera parametervärdena baserat på dina inställningar och spara filen.
  • Använd Azure CLI för att skapa Azure MySQL-servern med hjälp av följande kommandon

Du kan använda Azure Cloud Shell i webbläsaren eller installera Azure CLI på din egen dator för att köra kodblocken i den här självstudien.

Använda Azure Cloud Shell

Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln utan att behöva installera något i din lokala miljö.

Så här startar du Azure Cloud Shell:

Alternativ Exempel/länk
Välj Prova i det övre högra hörnet av ett kodblock. Om du väljer Prova kopieras koden inte automatiskt till Cloud Shell. Exempel på Prova för Azure Cloud Shell
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. Starta Cloud Shell i ett nytt fönster
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. Cloud Shell-knappen i Azure Portal

Så här kör du koden i den här artikeln i Azure Cloud Shell:

  1. Starta Cloud Shell.

  2. Kopiera koden genom att klicka på knappen Kopiera på ett kodblock.

  3. Klistra in koden i Cloud Shell-sessionen genom att välja Ctrl+Skift+V på Windows och Linux eller genom att välja Cmd+Skift+V på macOS.

  4. Välj Retur för att köra koden.

az login
az group create -n ExampleResourceGroup  -l "West US2"
az deployment group create -g $ ExampleResourceGroup   --template-file $ {templateloc} --parameters $ {parametersloc}

Hämta anslutningsinformationen

För att ansluta till servern måste du ange värddatorinformationen och autentiseringsuppgifterna.

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

Resultatet är i JSON-format. Anteckna fullyQualifiedDomainName och 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": "westus2",
  "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"
}

Anslut till servern med mysql

Använd kommandoradsverktyget mysql till att upprätta en anslutning till din Azure Database for MySQL-server. I det här exemplet är kommandot:

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

Skapa en tom databas

När du är ansluten till servern skapar du en tom databas.

mysql> CREATE DATABASE mysampledb;

Kör följande kommando från prompten för att växla anslutningen till databasen du skapade nyss:

mysql> USE mysampledb;

Skapa tabeller i databasen

Nu när du vet hur du ansluter till Azure Database for MySQL-databasen kan du utföra några grundläggande uppgifter.

Skapa först en tabell och läs in lite data till den. Vi skapar en tabell som innehåller lagerinformation.

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

Läs in data i tabellerna

Nu när du har en tabell kan du infoga lite data i den. Kör följande fråga i den öppna kommandotolken så at du löser in några datarader.

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

Nu har du två rader med exempeldata i tabellen du skapade tidigare.

Ställ frågor mot och uppdatera data i tabellerna

Kör följande frågor för att hämta information från databastabellen.

SELECT * FROM inventory;

Du kan även uppdatera data i tabellerna.

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

Raden uppdateras när du hämtar data.

SELECT * FROM inventory;

Rensa resurser

När den inte längre behövs tar du bort resursgruppen, vilket tar bort resurserna i resursgruppen.

  1. I Azure Portaldu efter och väljer Resursgrupper.

  2. I listan med resursgrupper väljer du namnet på din resursgrupp.

  3. På sidan Översikt för resursgruppen väljer du Ta bort resursgrupp.

  4. I bekräftelsedialogrutan skriver du namnet på resursgruppen och väljer sedan Ta bort.

Nästa steg

I de här självstudierna lärde du dig att:

  • Skapa en Azure Database for MySQL-server med VNet-tjänstslutpunkt med en Azure Resource Manager-mall
  • Använda kommandoradsverktyget mysql till att skapa en databas
  • Läsa in exempeldata
  • Söka i data
  • Uppdatera data