Schnellstart: Verwenden von Python zum Herstellen einer Verbindung und zum Abfragen von Daten in Azure Database for MySQL Flexible Server
GILT FÜR: Azure Database for MySQL – Flexibler Server
In diesem Schnellstart stellen Sie mithilfe von Python eine Verbindung mit Azure Database for MySQL – Flexibler Server her. Anschließend verwenden Sie SQL-Anweisungen, um Daten in der Datenbank über Mac-, Ubuntu Linux- und Windows-Plattformen abzufragen, einzufügen, zu aktualisieren und zu löschen.
In diesem Artikel wird davon ausgegangen, dass Sie mit der Python-Entwicklung vertraut sind, aber noch keine Erfahrung mit Azure Database for MySQL Flexible Server haben.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement.
Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen. Mit einem kostenlosen Azure-Konto können Sie Azure Database for MySQL – Flexibler Server derzeit 12 Monate lang kostenlos testen. Weitere Informationen finden Sie unter Testen Sie Azure Database for MySQL – Flexible Server kostenlos.
Eine Azure Database for MySQL Flexible Server-Instanz Um eine Instanz von Azure Database for MySQL – Flexibler Server zu erstellen, lesen Sie Schnellstart: Erstellen einer Instanz von Azure Database for MySQL mithilfe des Azure-Portals oder Schnellstart: Erstellen einer Instanz von Azure Database for MySQL: Flexibler Server mithilfe der Azure CLI.
Vorbereiten der Clientarbeitsstation
- Wenn Sie Ihre Flexible Server-Instanz mit Privater Zugriff (VNET-Integration) erstellt haben, müssen Sie eine Verbindung mit Ihrem Server über eine Ressource innerhalb desselben virtuellen Netzwerks herstellen. Sie können einen virtuellen Computer erstellen und zum virtuellen Netzwerk hinzufügen, das mit Ihrer Flexible Server-Instanz erstellt wurde. Siehe Erstellen und Verwalten von virtuellen Netzwerken für Azure Database for MySQL – Flexibler Server über die Azure CLI.
- Wenn Sie Ihre Flexible Server-Instanz mit Öffentlicher Zugriff (zulässige IP-Adressen) erstellt haben, können Sie die lokale IP-Adresse der Liste der Firewallregeln auf Ihrem Server hinzufügen. Weitere Informationen finden Sie unter Erstellen und Verwalten von Firewallregeln für Azure Database for MySQL Flexible Server mit der Azure CLI.
Installieren von Python und dem MySQL-Connector
Führen Sie die folgenden Schritte aus, um Python und den MySQL-Connector für Python auf Ihrem Computer zu installieren:
Hinweis
In dieser Schnellstartanleitung wird eine unformatierte SQL-Abfrage verwendet, um eine Verbindung mit MySQL herzustellen. Verwenden Sie bei Nutzung eines Webframeworks den empfohlenen Connector für das Framework, z. B. mysqlclient für Django.
Laden Sie Python 3.7 oder höher für Ihr Betriebssystem herunter, und führen Sie die Installation durch. Stellen Sie sicher, dass Sie Python unter
PATH
hinzufügen, da dies für den MySQL-Connector erforderlich ist.Öffnen Sie eine Eingabeaufforderung oder eine
bash
-Shell, und überprüfen Sie Ihre Python-Version, indem Siepython -V
ausführen (Switch „V“ als Großbuchstabe).Das Installationsprogramm für das
pip
-Paket ist in den aktuellen Versionen von Python enthalten. Führen Sie fürpip
das Update auf die aktuelle Version durch, indem Siepip install -U pip
ausführen.Wenn
pip
nicht installiert ist, können Sieget-pip.py
zum Herunterladen und Installieren verwenden. Weitere Informationen finden Sie unter Installation.Verwenden Sie
pip
, um den MySQL-Connector für Python und die Abhängigkeiten zu installieren:pip install mysql-connector-python
Sie können den Python-Connector für MySQL auch über mysql.com installieren. Weitere Informationen zum MySQL-Connector für Python finden Sie unter Entwicklerhandbuch für MySQL-Connector/Python.
Abrufen von Verbindungsinformationen
Sie können die Verbindungsinformationen, die Sie zum Herstellen einer Verbindung mit Azure Database for MySQL Flexible Server benötigen, über das Azure-Portal ermitteln. Sie benötigen den Servernamen, den Datenbanknamen und die Anmeldeinformationen.
Melden Sie sich beim Azure-Portal an.
Suchen Sie in der Suchleiste des Portals nach der Instanz von Azure Database for MySQL – Flexibler Server, die Sie erstellt haben, z. B. mydemoserver, und wählen Sie sie aus.
Notieren Sie sich auf der Seite Übersicht des Servers den Servernamen und die Anmelde-ID des Serveradministrators. Falls Sie Ihr Kennwort vergessen haben, können Sie es auf dieser Seite auch zurücksetzen.
Codebeispiele
Ausführen der untenstehenden Codebeispiele
Führen Sie für jedes Codebeispiel in diesem Artikel die folgenden Schritte aus:
Erstellen Sie eine neue Datei in einem Text-Editor.
Fügen Sie der Datei das Codebeispiel hinzu. Ersetzen Sie im Code die Platzhalter
<mydemoserver>
,<myadmin>
,<mypassword>
und<mydatabase>
durch die Werte für Ihren MySQL-Server und die zugehörige Datenbank.Speichern Sie die Datei in einem Projektordner mit der Erweiterung .py, z. B. C:\pythonmysql\createtable.py oder /home/username/pythonmysql/createtable.py.
Öffnen Sie zum Ausführen des Codes eine Eingabeaufforderung oder
bash
-Shell, und wechseln Sie in Ihren Projektordner, indem Sie beispielsweisecd pythonmysql
ausführen. Geben Sie den Befehlpython
gefolgt vom Dateinamen ein (z. B.python createtable.py
), und drücken Sie die EINGABETASTE.Hinweis
Falls python.exe unter Windows nicht gefunden wird, müssen Sie Ihrer PATH-Umgebungsvariablen ggf. den Python-Pfad hinzufügen oder den vollständigen Pfad zu python.exe angeben, z. B.
C:\python27\python.exe createtable.py
.
Erstellen einer Tabelle und Einfügen von Daten
Verwenden Sie den folgenden Code, um eine Verbindung mit dem Server und der Datenbank herzustellen, eine Tabelle zu erstellen und die Daten mit einer SQL-Anweisung vom Typ INSERT zu laden.
Mit dem Code wird die Bibliothek „mysql.connector“ importiert und die Funktion connect() verwendet, um eine Verbindung zum flexiblen Server herzustellen. Hierfür werden die Argumente in der config-Sammlung genutzt. Im Code wird ein Cursor für die Verbindung verwendet, und mit der cursor.execute()-Methode wird die SQL-Abfrage für die MySQL-Datenbank ausgeführt.
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>',
'password':'<mypassword>',
'database':'<mydatabase>'
}
# 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.")
Lesen von Daten
Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs SELECT zu verbinden und zu lesen.
Mit dem Code wird die Bibliothek „mysql.connector“ importiert und die Funktion connect() verwendet, um eine Verbindung zum flexiblen Server herzustellen. Hierfür werden die Argumente in der config-Sammlung genutzt. Im Code wird ein Cursor für die Verbindung verwendet, und mit der cursor.execute()-Methode wird die SQL-Abfrage für die MySQL-Datenbank ausgeführt.
Der Code liest die Datenzeilen mit der fetchall()-Methode, legt die Ergebnisse in einer Zeile der Auflistung ab und verwendet einen for
-Iterator, um einen Schleifenvorgang für die Zeilen durchzuführen.
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>',
'password':'<mypassword>',
'database':'<mydatabase>'
}
# 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.")
Aktualisieren von Daten
Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs UPDATE zu verbinden und zu aktualisieren.
Mit dem Code wird die Bibliothek „mysql.connector“ importiert und die Funktion connect() verwendet, um eine Verbindung zum flexiblen Server herzustellen. Hierfür werden die Argumente in der config-Sammlung genutzt. Im Code wird ein Cursor für die Verbindung verwendet, und mit der cursor.execute()-Methode wird die SQL-Abfrage für die MySQL-Datenbank ausgeführt.
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>',
'password':'<mypassword>',
'database':'<mydatabase>'
}
# 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;", (200, "banana"))
print("Updated",cursor.rowcount,"row(s) of data.")
# Cleanup
conn.commit()
cursor.close()
conn.close()
print("Done.")
Löschen von Daten
Verwenden Sie den folgenden Code, um eine Verbindung herzustellen und die Daten mithilfe einer SQL-Anweisung des Typs DELETE zu entfernen.
Mit dem Code wird die Bibliothek „mysql.connector“ importiert und die Funktion connect() verwendet, um eine Verbindung zum flexiblen Server herzustellen. Hierfür werden die Argumente in der config-Sammlung genutzt. Im Code wird ein Cursor für die Verbindung verwendet, und mit der cursor.execute()-Methode wird die SQL-Abfrage für die MySQL-Datenbank ausgeführt.
import mysql.connector
from mysql.connector import errorcode
# Obtain connection string information from the portal
config = {
'host':'<mydemoserver>.mysql.database.azure.com',
'user':'<myadmin>',
'password':'<mypassword>',
'database':'<mydatabase>'
}
# 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.")
Nächste Schritte
- Verschlüsselte Konnektivität mit Transport Layer Security (TLS 1.2) in Azure Database for MySQL – Flexible Server.
- In diesem Artikel erfahren Sie mehr über Netzwerke in Azure Database for MySQL Flexible Server.
- Erstellen und Verwalten von Firewallregeln für Azure Database for MySQL Flexible Server mit dem Azure-Portal.
- Erstellen und Verwalten von virtuellen Netzwerken für Azure Database for MySQL Flexible Server mit dem Azure-Portal.