Démarrage rapide : Créer une instance d’Azure Database pour MySQL - Serveur flexible à l’aide d’Azure CLI

S’APPLIQUE À : Azure Database pour MySQL - Serveur flexible

Ce guide de démarrage rapide vous montre comment utiliser commandes Azure CLI dans Azure Cloud Shell pour créer une instance d’Azure Database pour MySQL - Serveur flexible en cinq minutes.

Si vous n’en avez pas, créez un compte gratuit Azure avant de commencer. Actuellement, avec un compte gratuit Azure, vous pouvez essayer Azure Database pour MySQL - Serveur flexible gratuit pendant 12 mois. Pour plus d’informations, consultez Essayer gratuitement le serveur flexible Azure Database pour MySQL.

Ouvrir Azure Cloud Shell

Azure Cloud Shell est un interpréteur de commandes interactif gratuit que vous pouvez utiliser pour exécuter les étapes décrites dans cet article. Dans Cloud Shell, les outils Azure courants sont préinstallés et configurés pour être utilisés avec votre compte.

Pour ouvrir Cloud Shell, dans le coin supérieur droit d’un exemple de code, sélectionnez Essayez-le.

Vous pouvez également ouvrir Cloud Shell dans un onglet distinct du navigateur en accédant à https://shell.azure.com/bash. Sélectionnez Copier pour copier le contenu d’un bloc de code. Dans Cloud Shell, collez le code et sélectionnez Entrer pour l’exécuter.

Si vous préférez installer et utiliser Azure CLI, ce guide de démarrage rapide nécessite Azure CLI version 2.0 ou ultérieure. Pour trouver la version de votre installation Azure CLI. , exécutez az --version. Si vous devez effectuer une installation ou une mise à niveau, consultez Installer Azure CLI.

Prérequis

Connectez-vous à votre compte à l’aide de la commande az login. Notez la propriété id . La propriété id fait référence à l’ID d’abonnement de votre compte Azure.

az login

Sélectionnez l’abonnement spécifique dans votre compte Azure à l’aide de la commande az account set. Notez la valeur id de la sortie az login à utiliser comme valeur de l’argument subscription dans la commande.

Si vous avez plusieurs abonnements, sélectionnez l’abonnement dans lequel vous souhaitez que la ressource soit facturée. Pour obtenir la liste de vos abonnements, utilisez az account list.

az account set --subscription <subscription ID>

Créer un serveur flexible Azure Database pour MySQL

Créez un groupe de ressources Azure à l’aide de la commande az group create. Créez ensuite votre serveur flexible Azure Database pour MySQL à l’intérieur du groupe de ressources. Veillez à fournir un nom unique. L’exemple suivant crée un groupe de ressources nommé myresourcegroup à l’emplacement eastus2.

az group create --name myresourcegroup --location eastus2

Créez un serveur flexible Azure Database pour MySQL à l’aide de la commande az mysql flexible-server create. Un serveur peut contenir plusieurs bases de données. La commande suivante crée un serveur à l’aide des valeurs et des valeurs du service à partir du contexte local d’Azure CLI :

az mysql flexible-server create

Le serveur créé a les attributs suivants :

  • Nom du serveur généré automatiquement, nom d’utilisateur administrateur, mot de passe d’administrateur et nom du groupe de ressources (s’il n’est pas déjà spécifié dans un contexte local) et se trouve dans le même emplacement que votre groupe de ressources.
  • Les valeurs par défaut du service pour les configurations de serveur restantes : niveau de calcul (rafale), taille de calcul/référence SKU (B1MS), période de rétention de sauvegarde (sept jours) et version MySQL (5.7).
  • La méthode de connectivité par défaut est accès privé (intégration au réseau virtuel), avec un réseau virtuel et un sous-réseau générés automatiquement.

Remarque

La méthode de connectivité ne peut pas être modifiée après avoir créé le serveur. Par exemple, si vous avez sélectionné accès privé (intégration au réseau virtuel) lorsque vous avez créé le serveur, vous ne pouvez pas modifier le paramètre en accès public (adresses IP autorisées) après le déploiement. Nous vous recommandons vivement de créer un serveur disposant d’un accès privé pour accéder en toute sécurité à votre serveur à l’aide de l’intégration de réseau virtuel. Pour plus d’informations sur l’accès privé, consultez l’article sur les concepts de mise en réseau.

Si vous souhaitez modifier les valeurs par défaut, consultez la documentation de référence d’Azure CLI pour obtenir la liste complète des paramètres Azure CLI configurables.

Voici un exemple de sortie :

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"
}

Si vous souhaitez modifier les valeurs par défaut, consultez la documentation de référence d’Azure CLI pour obtenir la liste complète des paramètres Azure CLI configurables.

Création d'une base de données

Si vous n’avez pas encore créé de base de données, créez-en une appelée newdatabase en exécutant la commande suivante :

az mysql flexible-server db create -d newdatabase

Remarque

Les connexions à Azure Database pour MySQL - Serveur flexible communiquent à l’aide du port 3306. Si vous essayez de vous connecter à partir d’un réseau d’entreprise, le trafic sortant via le port 3306 peut ne pas être autorisé. Vous ne pouvez pas vous connecter à votre serveur, sauf si votre service informatique ouvre le port 3306.

Obtenir les informations de connexion

Pour vous connecter à votre serveur, vous devez fournir des informations sur l’hôte et des informations d’identification pour l’accès :

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

Le résultat est au format JSON. Notez les valeurs de fullyQualifiedDomainName et de administratorLogin. Voici un exemple de sortie 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"
}

Connecter et tester la connexion à l’aide d’Azure CLI

Vous pouvez utiliser Azure Database pour MySQL - Serveur flexible pour vous connecter à votre serveur flexible à l’aide de la commande az mysql flexible-server connect dans Azure CLI. Vous pouvez utiliser cette commande pour tester la connectivité à votre serveur de base de données, créer une base de données de base rapide et exécuter des requêtes directement sur votre serveur sans installer mysql.exe ou MySQL Workbench. Vous pouvez également utiliser la commande en mode interactif pour exécuter plusieurs requêtes à la fois.

Exécutez le script suivant pour tester et vérifier la connexion à la base de données à partir de votre environnement de développement :

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

Voici un exemple :

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

Dans une connexion réussie, la sortie comme l’exemple suivant s’affiche :

Connecting to newdatabase database.
Successfully connected to mysqldemoserver1.

Si la connexion échoue, essayez ces solutions :

  • Vérifiez si le port 3306 est ouvert sur votre ordinateur client.
  • Vérifiez que le nom d’utilisateur et le mot de passe de votre administrateur de serveur sont corrects.
  • Vérifiez que vous avez configuré une règle de pare-feu pour votre ordinateur client.
  • Vérifiez que votre machine cliente se trouve dans le même réseau virtuel que le serveur si vous avez configuré votre serveur pour l’accès privé dans un réseau virtuel.

Pour exécuter une requête unique, utilisez l’argument--querytext (-q) :

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

Voici un exemple :

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

Pour en savoir plus sur l’utilisation de az mysql flexible-server connect, consultez connexion azure CLI et interroger.

Se connecter à l’aide du client de ligne de commande MySQL

Si vous avez créé votre serveur flexible Azure Database pour MySQL à l’aide d’un accès privé avec l’intégration de réseau virtuel, connectez-vous à votre serveur à partir d’une ressource qui se trouve dans le même réseau virtuel que votre serveur. Vous pouvez créer une machine virtuelle et l’ajouter au réseau virtuel qui a été créé lors de la création de votre instance Azure Database pour MySQL - Serveur flexible. Pour plus d’informations, consultez Configurer l’accès privé.

Si vous avez créé votre instance de serveur flexible Azure Database pour MySQL à l’aide de l’accès public (adresses IP autorisées), vous pouvez ajouter votre adresse IP locale à la liste des règles de pare-feu sur votre serveur. Pour obtenir des instructions détaillées, consultez Créer ou gérer des règles de pare-feu.

Pour vous connecter au serveur à partir de votre environnement local, vous pouvez utiliser mysql.exe ou MySQL Workbench. Azure Database pour MySQL - Serveur flexible prend en charge la connexion de vos applications clientes au service Serveur flexible Azure Database pour MySQL à l’aide du protocole TLS (Transport Layer Security), précédemment appelé SSL (Secure Sockets Layer). TLS est un protocole standard qui garantit des connexions réseau chiffrées entre votre serveur de base de données et les applications clientes. Vous pouvez donc respecter les exigences de conformité. Pour vous connecter à l’aide de votre serveur flexible Azure Database pour MySQL, téléchargez le certificat SSL public pour la vérification de l’autorité de certification. Pour en savoir plus sur la connexion à l’aide de connexions chiffrées ou la désactivation de SSL, consultez Se connecter à Azure Database pour MySQL - Serveur flexible à l’aide de connexions chiffrées.

L’exemple suivant montre comment se connecter à votre serveur flexible Azure Database pour MySQL à l’aide de l’outil client en ligne de commande MySQL. Vous pouvez installer l’outil s’il n’est pas déjà installé. Téléchargez le certificat DigiCertGlobalRootCA requis pour les connexions SSL. Utilisez le paramètre de chaîne de connexion --ssl-mode=REQUIRED pour appliquer la vérification du certificat TLS/SSL. Passez le chemin d’accès du fichier de certificat local au paramètre --ssl-ca. Remplacez les valeurs par le nom et le mot de passe réels de votre serveur.

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

Si vous avez approvisionné votre serveur flexible Azure Database pour MySQL à l’aide de l’accès public, vous pouvez également utiliser Azure Cloud Shell pour vous connecter à votre serveur flexible Azure Database pour MySQL à l’aide du client MySQL préinstallé.

Pour utiliser Azure Cloud Shell pour vous connecter à votre serveur flexible Azure Database pour MySQL, autorisez l’accès réseau d’Azure Cloud Shell à votre serveur flexible Azure Database pour MySQL. Pour autoriser l’accès, accédez au volet du portail Azure Mise en réseau pour votre serveur flexible Azure Database pour MySQL. Sous pare-feu, cochez la case Autoriser l’accès public à partir de n’importe quel service Azure dans Azure sur ce serveur, comme illustré dans la capture d’écran suivante. Sélectionnez ensuite Enregistrer pour conserver le paramètre.

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

Remarque

Sélectionnez Autoriser l’accès public à partir de n’importe quel service Azure dans Azure à ce serveur uniquement pour le développement ou le test. Ce paramètre configure le pare-feu pour autoriser les connexions à partir d’adresses IP allouées à n’importe quel service ou ressource Azure, y compris les connexions d’autres abonnements Azure.

Sélectionnez Essayer pour ouvrir Azure Cloud Shell. Dans Cloud Shell, utilisez les commandes suivantes pour vous connecter à votre serveur flexible Azure Database pour MySQL. Utilisez votre nom de serveur, votre nom d’utilisateur et votre mot de passe dans la commande.

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

Important

Lorsque vous vous connectez à votre serveur flexible Azure Database pour MySQL à l’aide de Cloud Shell, utilisez le paramètre --ssl=true. N’utilisez pas --ssl-mode=REQUIRED.

La principale raison pour laquelle cette aide est importante est qu’Azure Cloud Shell est préinstallé avec le client mysql.exe à partir de la distribution MariaDB. Le client mysql.exe nécessite le paramètre --ssl. Le client MySQL de la distribution Oracle nécessite le paramètre --ssl-mode.

Si vous voyez le message d’erreur suivant lorsque vous vous connectez à votre serveur flexible Azure Database pour MySQL, vous n’avez pas sélectionné la case à cocher Autoriser l’accès public à partir d’un service Azure dans Azure à ce serveur lorsque vous configurez vos règles de pare-feu ou que l’option n’est pas enregistrée. Définissez les règles de pare-feu, puis réessayez.

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

Nettoyer les ressources

Si vous n’avez pas besoin d’utiliser les ressources que vous avez créées pour cet article dans un autre guide de démarrage rapide ou didacticiel, vous pouvez les supprimer en exécutant la commande suivante :

az group delete --name myresourcegroup

Si vous souhaitez supprimer uniquement le serveur flexible que vous avez créé, exécutez cette commande :

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