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

İstemci iş istasyonunuzu hazırlama

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 .

  1. İş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 .

  2. Bir komut istemi veya bash kabuk açın ve python -V büyük harf V anahtarıyla çalıştırarak Python sürümünüzü denetleyin.

  3. pipPaket yükleyicisi, Python 'un en son sürümlerine dahildir. ' İ pip çalıştırarak en son sürüme güncelleştirin pip install -U pip .

    pipYüklü değilse, ile indirip yükleyebilirsiniz get-pip.py . Daha fazla bilgi için bkz. yükleme.

  4. 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-python
    

    MySQL 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.

  1. Azure Portal oturum açın.

  2. Portal arama çubuğunda, oluşturduğunuz MySQL için Azure veritabanı esnek sunucusu ' nu arayın ve örneğin, demosunucum' ı seçin.

  3. 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:

  1. Metin düzenleyicisinde yeni bir dosya oluşturun.

  2. 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.

  3. Dosyayı, C:\pythonmysql\createtable.py veya /Home/username/pythonmysql/CreateTable.py gibi . Kopyala uzantısıyla bir proje klasörüne kaydedin.

  4. Kodu çalıştırmak için, bir komut istemi veya kabuğu açın bash ve dizini proje klasörünüze değiştirin (örneğin,) cd pythonmysql . pythonKomutun ardından dosya adını yazın python createtable.py ve 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