Démarrage rapide : Utiliser Python pour se connecter et interroger des données dans Azure Database pour MySQL
S’APPLIQUE À : Azure Database pour MySQL – Serveur unique
Important
Le serveur unique Azure Database pour MySQL est en voie de mise hors service. Nous vous conseillons vivement de procéder à une mise à niveau vers Azure Database pour MySQL – Serveur flexible. Pour obtenir plus d’informations sur la migration vers Azure Database pour MySQL – Serveur flexible, consultez Qu’en est-il du Serveur unique Azure Database pour MySQL ?
Dans ce guide de démarrage rapide, vous vous connectez à Azure Database pour MySQL en utilisant Python. Vous utilisez ensuite des instructions SQL pour interroger, insérer, mettre à jour et supprimer des données dans la base de données depuis des plateformes Mac, Ubuntu Linux et Windows.
Prérequis
Voici les prérequis pour ce guide de démarrage rapide :
Compte Azure avec un abonnement actif. Créez un compte gratuitement.
Créer un serveur unique Azure Database pour MySQL à l’aide du portail Azure
ou d’Azure CLI, si vous n’en avez pas.Selon que vous utilisez un accès public ou privé, effectuez UNE des actions ci-dessous pour activer la connectivité.
Action Méthode de connexion Guide pratique Configurer les règles de pare-feu Public Portail
INTERFACE DE LIGNE DE COMMANDEConfigurer le point de terminaison de service Public Portail
INTERFACE DE LIGNE DE COMMANDEConfigurer une liaison privée Privées Portail
INTERFACE DE LIGNE DE COMMANDECréer une base de données et un utilisateur non-administrateur
Installer Python et le connecteur MySQL
Effectuez les étapes suivantes pour installer Python et le connecteur MySQL pour Python sur votre ordinateur :
Notes
Ce guide de démarrage rapide utilise le Guide de développement Python/Connecteur MySQL.
Téléchargez et installez Python 3.7 ou ultérieur pour votre système d’exploitation. Veillez à ajouter Python à votre
PATH
, car le connecteur MySQL en a besoin.Ouvrez une invite de commandes ou un interpréteur de commandes
bash
, puis vérifiez votre version de Python en exécutantpython -V
avec le commutateur V majuscule.Le programme d’installation de package
pip
est inclus dans les dernières versions de Python. Exécutezpip install -U pip
pour mettre à jourpip
avec la dernière version.Si
pip
n’est pas installé, vous pouvez le télécharger et l’installer avecget-pip.py
. Pour plus d’informations, consultez Installation.Utilisez
pip
pour installer le connecteur MySQL pour Python et ses dépendances :pip install mysql-connector-python
Obtenir des informations de connexion
Obtenez les informations dont vous avez besoin pour vous connecter à Azure Database pour MySQL dans le portail Azure. Vous devez disposer du nom du serveur, du nom de la base de données et des informations d’identification de connexion.
Connectez-vous au portail Azure.
Dans la barre de recherche du portail, recherchez et sélectionnez le serveur Azure Database pour MySQL que vous avez créé, par exemple mydemoserver.
Dans la page Vue d’ensemble du serveur, notez le nom du serveur et le nom de connexion de l’administrateur du serveur. Si vous oubliez votre mot de passe, vous pouvez également le réinitialiser dans cette page.
Exécution des exemples de code Python
Pour chaque exemple de code dans cet article :
Créez un fichier dans un éditeur de texte.
Ajoutez l’exemple de code au fichier. Dans le code, remplacez les espaces réservés
<mydemoserver>
,<myadmin>
,<mypassword>
et<mydatabase>
par les valeurs de votre serveur et de votre base de données MySQL.SSL est activé par défaut sur les serveurs Azure Database pour MySQL. Vous devrez peut-être télécharger le certificat SSL DigiCertGlobalRootG2 pour vous connecter depuis votre environnement local. Remplacez la valeur
ssl_ca
dans le code par le chemin d’accès à ce fichier sur votre ordinateur.Enregistrez le fichier dans un dossier de projet avec une extension .py, par exemple C:\pythonmysql\createtable.py ou /home/username/pythonmysql/createtable.py.
Pour exécuter le code, ouvrez une invite de commandes ou un interpréteur de commandes
bash
, puis changez de répertoire dans votre dossier de projet (par exemple,cd pythonmysql
). Tapez la commandepython
suivie du nom de fichier, par exemplepython createtable.py
, puis appuyez sur Entrée.Notes
Sur Windows, si python.exe est introuvable, vous devrez peut-être fournir le chemin de Python à votre variable d’environnement PATH ou fournir le chemin complet à python.exe (par exemple,
C:\python27\python.exe createtable.py
).
Étape 1 : Créer une table et insérer des données
Utilisez le code suivant pour vous connecter au serveur et à la base de données, créer une table et charger les données à l’aide d’une instruction SQL INSERT. Le code importe la bibliothèque mysql.connector et utilise ces éléments :
- La fonction connect() permettant de se connecter à Azure Database pour MySQL au moyen des arguments de la collection de configurations.
- La méthode cursor.execute() exécute la requête SQL sur la base de données MySQL.
- curseur.close() lorsque vous avez fini d’utiliser un curseur.
- conn.close() pour fermer la connexion.
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>@<mydemoserver>',
'password':'<mypassword>',
'database':'<mydatabase>',
'client_flags': [mysql.connector.ClientFlag.SSL],
'ssl_ca': '<path-to-SSL-cert>/DigiCertGlobalRootG2.crt.pem'
}
# Construct connection string
try:
conn = mysql.connector.connect(**config)
print("Connection established")
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with the user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
else:
cursor = conn.cursor()
# Drop previous table of same name if one exists
cursor.execute("DROP TABLE IF EXISTS inventory;")
print("Finished dropping table (if existed).")
# Create table
cursor.execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
print("Finished creating table.")
# Insert some data into table
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("banana", 150))
print("Inserted",cursor.rowcount,"row(s) of data.")
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("orange", 154))
print("Inserted",cursor.rowcount,"row(s) of data.")
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("apple", 100))
print("Inserted",cursor.rowcount,"row(s) of data.")
# Cleanup
conn.commit()
cursor.close()
conn.close()
print("Done.")
Étape 2 : Lire les données
Utilisez le code suivant pour vous connecter et lire des données à l’aide d’une instruction SQL SELECT. Le code importe la bibliothèque mysql.connector et utilise la méthode cursor.execute() pour exécuter la requête SQL sur la base de données MySQL.
Le code lit les lignes de données à l’aide de la méthode fetchall(), conserve le jeu de résultats dans une ligne de collection et utilise un itérateur for
pour exécuter les lignes en boucle.
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>@<mydemoserver>',
'password':'<mypassword>',
'database':'<mydatabase>',
'client_flags': [mysql.connector.ClientFlag.SSL],
'ssl_ca': '<path-to-SSL-cert>/DigiCertGlobalRootG2.crt.pem'
}
# Construct connection string
try:
conn = mysql.connector.connect(**config)
print("Connection established")
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with the user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
else:
cursor = conn.cursor()
# Read data
cursor.execute("SELECT * FROM inventory;")
rows = cursor.fetchall()
print("Read",cursor.rowcount,"row(s) of data.")
# Print all rows
for row in rows:
print("Data row = (%s, %s, %s)" %(str(row[0]), str(row[1]), str(row[2])))
# Cleanup
conn.commit()
cursor.close()
conn.close()
print("Done.")
Étape 3 : Mettre à jour des données
Utilisez le code suivant pour vous connecter et mettre à jour les données à l’aide d’une instruction SQL UPDATE. Le code importe la bibliothèque mysql.connector et utilise la méthode cursor.execute() pour exécuter la requête SQL sur la base de données MySQL.
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>@<mydemoserver>',
'password':'<mypassword>',
'database':'<mydatabase>',
'client_flags': [mysql.connector.ClientFlag.SSL],
'ssl_ca': '<path-to-SSL-cert>/DigiCertGlobalRootG2.crt.pem'
}
# Construct connection string
try:
conn = mysql.connector.connect(**config)
print("Connection established")
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with the user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
else:
cursor = conn.cursor()
# Update a data row in the table
cursor.execute("UPDATE inventory SET quantity = %s WHERE name = %s;", (300, "apple"))
print("Updated",cursor.rowcount,"row(s) of data.")
# Cleanup
conn.commit()
cursor.close()
conn.close()
print("Done.")
Étape 4 : Suppression de données
Utilisez le code suivant pour vous connecter et supprimer des données à l’aide d’une instruction SQL DELETE. Le code importe la bibliothèque mysql.connector et utilise la méthode cursor.execute() pour exécuter la requête SQL sur la base de données MySQL.
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>@<mydemoserver>',
'password':'<mypassword>',
'database':'<mydatabase>',
'client_flags': [mysql.connector.ClientFlag.SSL],
'ssl_ca': '<path-to-SSL-cert>/DigiCertGlobalRootG2.crt.pem'
}
# Construct connection string
try:
conn = mysql.connector.connect(**config)
print("Connection established")
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with the user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
else:
cursor = conn.cursor()
# Delete a data row in the table
cursor.execute("DELETE FROM inventory WHERE name=%(param1)s;", {'param1':"orange"})
print("Deleted",cursor.rowcount,"row(s) of data.")
# Cleanup
conn.commit()
cursor.close()
conn.close()
print("Done.")
Nettoyer les ressources
Pour nettoyer toutes les ressources utilisées dans le cadre de ce guide de démarrage rapide, supprimez le groupe de ressources à l’aide de la commande suivante :
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes