Rychlý start: Použití Pythonu k připojení a dotazování dat na Azure Database for MySQL – flexibilní server
[platí pro:
Azure Database for MySQL – flexibilní Server
V tomto rychlém startu se připojíte k flexibilnímu Azure Database for MySQL serveru pomocí Pythonu. Pak použijete SQL k dotazování, vkládání, aktualizaci a odstraňování dat v databázi z platforem Mac, Ubuntu Linux a Windows.
Tento článek předpokládá, že máte zkušenosti s vývojem pomocí Pythonu, ale s flexibilním serverem pro Azure Database for MySQL novinka.
Požadavky
Účet Azure s aktivním předplatným.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete. S bezplatným účtem Azure si teď můžete vyzkoušet Azure Database for MySQL – flexibilní server na 12 měsíců zdarma. Další podrobnosti najdete v tématu Vyzkoušejte si flexibilní server zdarma.
Flexibilní Azure Database for MySQL serveru. Informace o vytvoření flexibilního serveru najdete v tématu Vytvoření flexibilního Azure Database for MySQL serveru pomocí Azure Portal nebo Vytvoření flexibilního Azure Database for MySQL serveru pomocí Azure CLI.
Příprava klientské pracovní stanice
- Pokud jste vytvořili flexibilní server s privátním přístupem (integrace virtuální sítě), budete se muset připojit k serveru z prostředku ve stejné virtuální síti jako váš server. Můžete vytvořit virtuální počítač a přidat ho do virtuální sítě vytvořené pomocí flexibilního serveru. Přečtěte si článek Vytvoření a správa Azure Database for MySQL flexibilního serveru pomocí Azure CLI.
- Pokud jste vytvořili flexibilní server s veřejným přístupem (povolené IP adresy), můžete přidat místní IP adresu do seznamu pravidel brány firewall na vašem serveru. Informace najdete v tématu Vytvoření a správa Azure Database for MySQL brány firewall flexibilního serveru pomocí Azure CLI.
Instalace Pythonu a konektoru MySQL
Nainstalujte na počítač Python a konektor MySQL pro Python pomocí následujícího postupu:
Poznámka
V tomto rychlém startu se k SQL MySQL používá nezpracovaný přístup k dotazům na data. Pokud používáte webovou rozhraní, použijte doporučený konektor pro rozhraní, například mysqlclient pro Django.
Stáhněte si a nainstalujte Python 3.7 nebo vyšší pro váš operační systém. Nezapomeňte do souboru přidat
PATHPython, protože to konektor MySQL vyžaduje.Otevřete příkazový řádek nebo prostředí a zkontrolujte verzi Pythonu spuštěním přepínače
bashV spython -Vvelkými písmeny.Instalační
pipprogram balíčku je součástí nejnovějších verzí Pythonu. Aktualizujtepipna nejnovější verzi spuštěním .pip install -U pipPokud
pipnení nainstalovaný, můžete ho stáhnout a nainstalovat pomocíget-pip.py. Další informace najdete v tématu Instalace .Pomocí
pipnástroje nainstalujte konektor MySQL pro Python a jeho závislosti:pip install mysql-connector-pythonKonektor Pythonu pro MySQL můžete nainstalovat také z mysql.com. Další informace o konektoru MySQL pro Python najdete v příručce pro vývojáře konektoru MySQL nebo Pythonu.
Získání informací o připojení
Získejte informace o připojení, které potřebujete pro připojení Azure Database for MySQL flexibilního serveru z Azure Portal. Potřebujete název serveru, název databáze a přihlašovací údaje.
Přihlaste se k webu Azure Portal.
Na panelu hledání na portálu vyhledejte a vyberte soubor Azure Database for MySQL, který jste vytvořili, například mydemoserver.
Na stránce Přehled serveru si poznamenejte Název serveru a Přihlašovací jméno správce serveru. Pokud heslo zapomenete, můžete ho také resetovat z této stránky.
Ukázky kódů
Spusťte níže uvedené ukázky kódu Pythonu.
Pro každý příklad kódu v tomto článku:
V textovém editoru vytvořte nový soubor.
Přidejte do souboru příklad kódu. V kódu nahraďte zástupné symboly , , a hodnotami
<mydemoserver>pro váš server a databázi<myadmin><mypassword><mydatabase>MySQL.Uložte soubor do složky projektu s příponou .py, například C:\pythonmysql\createtable.py nebo /home/username/pythonmysql/createtable.py.
Pokud chcete kód spustit, otevřete příkazový řádek nebo prostředí a
bashzměňte adresář na složku projektu, napříkladcd pythonmysql. Zadejte příkazpythonnásledovaný názvem souboru, například , apython createtable.pystiskněte Enter.Poznámka
Pokud Windows soubor python.exe, možná budete muset přidat cestu Pythonu do proměnné prostředí PATH nebo zadat úplnou cestu k proměnnépython.exe, například
C:\python27\python.exe createtable.py.
Vytvoření tabulky a vložení dat
Pomocí následujícího kódu se připojte k serveru a databázi, vytvořte tabulku a načtěte data pomocí příkazu INSERT SQL .
Kód importuje knihovnu mysql.connector a používá funkci connect() pro připojení k flexibilnímu serveru pomocí argumentů v kolekci config. Kód používá kurzor na připojení a metoda cursor.execute() SQL dotaz na databázi 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>',
'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.")
Čtení dat
Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu SELECT jazyka SQL.
Kód importuje knihovnu mysql.connector a používá funkci connect() pro připojení k flexibilnímu serveru pomocí argumentů v kolekci config. Kód používá kurzor na připojení a metoda cursor.execute() SQL dotaz na databázi MySQL.
Kód čte řádky dat pomocí metody fetchall(), udržuje sadu výsledků dotazu v řádku kolekce a používá iterátor ke for smyčce řádků.
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.")
Aktualizace dat
Pomocí následujícího kódu se připojte a aktualizujte data s využitím příkazu UPDATE jazyka SQL.
Kód importuje knihovnu mysql.connector a používá funkci connect() pro připojení k flexibilnímu serveru pomocí argumentů v kolekci config. Kód používá kurzor na připojení a metoda cursor.execute() SQL dotaz na databázi 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>',
'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.")
Odstranění dat
Pomocí následujícího kódu se připojte a odeberte data s využitím příkazu DELETE jazyka SQL.
Kód importuje knihovnu mysql.connector a používá funkci connect() pro připojení k flexibilnímu serveru pomocí argumentů v kolekci config. Kód používá kurzor na připojení a metoda cursor.execute() SQL dotaz na databázi 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>',
'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.")
Další kroky
- Šifrované připojení pomocí protokolu TLS 1.2 (Transport Layer Security) na Azure Database for MySQL – flexibilní server.
- Další informace o sítích najdete na Azure Database for MySQL serveru.
- Vytvořte a spravujte Azure Database for MySQL brány firewall flexibilního serveru pomocí Azure Portal.
- Vytvořte a spravujte Azure Database for MySQL flexibilního serveru pomocí Azure Portal.