Hızlı başlangıç: MySQL kullanarak MySQL için Azure veritabanı 'na bağlanma ve veri sorgulama-esnek sunucu
[Uygulama hedefi:
MySQL için Azure veritabanı-esnek sunucu
Bu hızlı başlangıçta Python kullanarak MySQL için Azure veritabanı esnek sunucusuna bağlanırsınız. daha sonra SQL deyimlerini kullanarak Mac, Ubuntu Linux ve Windows platformlarındaki veritabanındaki verileri sorgulama, ekleme, güncelleştirme ve silme.
Bu makalede, Python kullanarak geliştirmeyle ilgili bilgi sahibi olduğunuz ve MySQL için Azure veritabanı esnek sunucusu ile çalışmaya yeni başladığınızı varsaymaktadır.
Önkoşullar
Etkin aboneliği olan bir Azure hesabı.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun. Ücretsiz Azure hesabıyla artık Esnek Sunucu'MySQL için Azure Veritabanı 12 ay boyunca ücretsiz olarak denemeniz mümkün. Diğer ayrıntılar için bkz. Esnek Sunucuyu ücretsiz deneyin.
MySQL için Azure veritabanı esnek sunucu. Esnek sunucu oluşturmak için Azure Portal kullanarak MySQL Için Azure veritabanı esnek sunucusu oluşturma veya Azure CLI kullanarak MySQL Için Azure veritabanı esnek sunucu oluşturmabölümüne bakın.
İstemci iş istasyonunuzu hazırlama
- Esnek sunucunuzu özel erişim (VNET tümleştirmesi) ile oluşturduysanız, sunucunuza aynı VNET içindeki bir kaynaktan sunucunuza bağlanmanız gerekir. Bir sanal makine oluşturabilir ve bunu esnek sunucunuz ile oluşturulan VNet 'e ekleyebilirsiniz. Azure CLI kullanarak MySQL Için Azure veritabanı esnek sunucu sanal ağı oluşturma ve yönetmebölümüne bakın.
- Esnek sunucunuzu ortak erişim (izin VERILEN IP adresleri) ile oluşturduysanız, sunucunuzdaki güvenlik duvarı kuralları lıstesıne yerel IP adresinizi ekleyebilirsiniz. Azure CLI kullanarak MySQL Için Azure veritabanı esnek sunucu güvenlik duvarı kuralları oluşturma ve yönetmebölümüne bakın.
Python’u ve MySQL bağlayıcısını yükleme
Aşağıdaki adımları kullanarak bilgisayarınıza Python ve Python için MySQL bağlayıcısını yüklersiniz:
Not
bu hızlı başlangıç, MySQL 'e bağlanmak için ham SQL sorgu yaklaşımını kullanır. Bir Web çerçevesi kullanıyorsanız, Framework için önerilen bağlayıcıyı kullanın, örneğin, Docgo için mysqlclient .
İşletim sistemi için Python 3,7 veya üstünü indirin ve yükleyin. MySQL Bağlayıcısı için gerekli olduğundan Python 'u uygulamanıza eklediğinizden emin olun
PATH.Bir komut istemi veya
bashkabuk açın vepython -Vbüyük harf V anahtarıyla çalıştırarak Python sürümünüzü denetleyin.pipPaket yükleyicisi, Python 'un en son sürümlerine dahildir. ' İpipçalıştırarak en son sürüme güncelleştirinpip install -U pip.pipYüklü değilse, ile indirip yükleyebilirsinizget-pip.py. Daha fazla bilgi için bkz. yükleme.pipPython Için MySQL bağlayıcısını ve bağımlılıklarını yüklemek için kullanın:pip install mysql-connector-pythonMySQL için Python bağlayıcısını MySQL.comadresinden da yükleyebilirsiniz. Python için MySQL Bağlayıcısı hakkında daha fazla bilgi için MySQL Bağlayıcısı/Python Geliştirici Kılavuzu' na bakın.
Bağlantı bilgilerini alma
Azure portal MySQL için Azure veritabanı esnek sunucusuna bağlanmak için gereken bağlantı bilgilerini alın. Sunucu adı, veritabanı adı ve oturum açma kimlik bilgileri gerekir.
Azure Portal oturum açın.
Portal arama çubuğunda, oluşturduğunuz MySQL için Azure veritabanı esnek sunucusu ' nu arayın ve örneğin, demosunucum' ı seçin.
Sunucunun genel bakış sayfasında sunucu adı ve Sunucu Yöneticisi oturum açma adı' nı bir yere göz atın. Parolanızı unutursanız, bu sayfadan parolayı da sıfırlayabilirsiniz.
Kod örnekleri
Aşağıda belirtilen Python kodu örneklerini Çalıştır
Bu makaledeki her kod örneği için:
Metin düzenleyicisinde yeni bir dosya oluşturun.
Kod örneğini dosyaya ekleyin. Kodda,,,
<mydemoserver><myadmin><mypassword>ve<mydatabase>yer tutucuları MySQL sunucunuzun ve veritabanınızın değerleriyle değiştirin.Dosyayı, C:\pythonmysql\createtable.py veya /Home/username/pythonmysql/CreateTable.py gibi . Kopyala uzantısıyla bir proje klasörüne kaydedin.
Kodu çalıştırmak için, bir komut istemi veya kabuğu açın
bashve dizini proje klasörünüze değiştirin (örneğin,)cd pythonmysql.pythonKomutun ardından dosya adını yazınpython createtable.pyve ENTER tuşuna basın.Not
Windows, python.exe bulunmazsa, yol ortam değişkeninizin Python yolunu eklemeniz veya örneğin python.exe tam yolunu sağlamanız gerekebilir
C:\python27\python.exe createtable.py.
Tablo oluşturma ve veri ekleme
sunucu ve veritabanına bağlanmak, tablo oluşturmak ve ınsert SQL ifadesini kullanarak verileri yüklemek için aşağıdaki kodu kullanın.
Kod MySQL. Connector kitaplığını içeri aktarır ve yapılandırma koleksiyonundaki bağımsız değişkenleri kullanarak esnek sunucuya bağlanmak için Connect () işlevini kullanır. kod, bağlantıda bir imleç kullanır ve cursor. execute () yöntemi MySQL veritabanında SQL sorgusunu yürütür.
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.")
Verileri okuma
Bağlanmak ve SELECT SQL deyimi kullanarak verileri okumak için aşağıdaki kodu kullanın.
Kod MySQL. Connector kitaplığını içeri aktarır ve yapılandırma koleksiyonundaki bağımsız değişkenleri kullanarak esnek sunucuya bağlanmak için Connect () işlevini kullanır. kod, bağlantıda bir imleç kullanır ve cursor. execute () yöntemi MySQL veritabanında SQL sorgusunu yürütür.
Kod, fetchAll () yöntemini kullanarak veri satırlarını okur, sonuç kümesini bir koleksiyon satırında tutar ve for satırlarda döngü yapmak için bir yineleyici kullanır.
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.")
Verileri güncelleştirme
Bağlanmak ve bir UPDATE SQL deyimi kullanarak verileri güncelleştirmek için aşağıdaki kodu kullanın.
Kod MySQL. Connector kitaplığını içeri aktarır ve yapılandırma koleksiyonundaki bağımsız değişkenleri kullanarak esnek sunucuya bağlanmak için Connect () işlevini kullanır. kod, bağlantıda bir imleç kullanır ve cursor. execute () yöntemi MySQL veritabanında SQL sorgusunu yürütür.
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.")
Verileri silme
Bağlanmak ve DELETE SQL deyimini kullanarak verileri kaldırmak için aşağıdaki kodu kullanın.
Kod MySQL. Connector kitaplığını içeri aktarır ve yapılandırma koleksiyonundaki bağımsız değişkenleri kullanarak esnek sunucuya bağlanmak için Connect () işlevini kullanır. kod, bağlantıda bir imleç kullanır ve cursor. execute () yöntemi MySQL veritabanında SQL sorgusunu yürütür.
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.")
Sonraki adımlar
- MySQL Için Azure veritabanı-esnek sunucu 'Da Aktarım Katmanı Güvenliği (TLS 1,2) kullanılarak şifrelenmiş bağlantı.
- MySQL Için Azure veritabanı esnek sunucusu 'Nda ağhakkında daha fazla bilgi edinin.
- Azure Portal kullanarak MySQL Için Azure veritabanı esnek sunucu güvenlik duvarı kuralları oluşturun ve yönetin.
- Azure Portal kullanarak MySQL Için Azure veritabanı esnek sunucu sanal ağını oluşturun ve yönetin.