Hızlı Başlangıç: MySQL için Azure Veritabanı'da verileri bağlamak ve sorgulamak için Python kullanma

ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Tek Sunucu

Önemli

MySQL için Azure Veritabanı tek sunucu kullanımdan kaldırma yolundadır. Esnek MySQL için Azure Veritabanı sunucuya yükseltmenizi kesinlikle öneririz. MySQL için Azure Veritabanı esnek sunucuya geçiş hakkında daha fazla bilgi için bkz. MySQL için Azure Veritabanı Tek Sunucu'ya neler oluyor?

Bu hızlı başlangıçta Python kullanarak bir MySQL için Azure Veritabanı bağlanacaksınız. Ardından SQL deyimlerini kullanarak Mac, Ubuntu Linux ve Windows platformlarındaki veritabanındaki verileri sorgular, ekler, güncelleştirir ve silersiniz.

Önkoşullar

Bu hızlı başlangıç için ihtiyacınız olan:

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ükleyin:

Dekont

Bu hızlı başlangıçta MySQL Bağlan or/Python Geliştirici Kılavuzu kullanılır.

  1. İşletim sisteminiz için Python 3.7 veya üzerini indirip yükleyin. MySQL bağlayıcısı bunu gerektirdiğinden Python'ınıza PATHeklediğinizden emin olun.

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

  3. Paket pip yükleyicisi, Python'ın en son sürümlerine dahil edilir. komutunu çalıştırarak pip install -U pipen son sürüme güncelleştirinpip.

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

  4. Python ve bağımlılıkları için MySQL bağlayıcısını yüklemek için kullanın pip :

    pip install mysql-connector-python
    

Bağlantı bilgilerini alma

Azure portalından MySQL için Azure Veritabanı bağlanmak için ihtiyacınız olan bağlantı bilgilerini alın. Sunucu adına, veritabanı adına ve oturum açma kimlik bilgilerine ihtiyacınız vardır.

  1. Azure Portal oturum açın.

  2. Portal arama çubuğunda, oluşturduğunuz mydemoserver gibi MySQL için Azure Veritabanı sunucusunu arayın ve seçin.

    Azure Database for MySQL server name

  3. Sunucunun Genel Bakış sayfasında Sunucu adını ve Sunucu yöneticisi oturum açma adını not edin. Parolanızı unutursanız, parolayı bu sayfadan da sıfırlayabilirsiniz.

    Azure Database for MySQL server name 2

Python kod örneklerini çalıştırma

Bu makaledeki her kod örneği için:

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

  2. Kod örneğini dosyaya ekleyin. Kodda , <myadmin>, <mypassword>ve <mydatabase> yer tutucularını MySQL sunucunuzun ve veritabanınızın değerleriyle değiştirin<mydemoserver>.

  3. SSL, MySQL için Azure Veritabanı sunucularda varsayılan olarak etkindir. Yerel ortamınızdan bağlanmak için DigiCertGlobalRootG2 SSL sertifikasını indirmeniz gerekebilir. ssl_ca Koddaki değeri bilgisayarınızdaki bu dosyanın yoluyla değiştirin.

  4. Dosyayı C:\pythonmysql\createtable.py veya /home/username/pythonmysql/createtable.py gibi bir .py uzantısına sahip bir proje klasörüne kaydedin.

  5. Kodu çalıştırmak için bir komut istemi veya bash kabuk açın ve dizini proje klasörünüzle değiştirin, örneğin cd pythonmysql. Komutu yazın python ve ardından dosya adını (örneğin python createtable.py) yazın ve Enter tuşuna basın.

    Dekont

    Windows'da python.exe bulunamazsa, PATH ortam değişkeninize Python yolunu eklemeniz veya python.exe dosyasının tam yolunu sağlamanız gerekebilir. ÖrneğinC:\python27\python.exe createtable.py.

1. Adım: Tablo oluşturma ve veri ekleme

Sunucuya ve veritabanına bağlanmak, tablo oluşturmak ve INSERT SQL deyimini kullanarak veri yüklemek için aşağıdaki kodu kullanın. Kod mysql.connector kitaplığını içeri aktarır ve yöntemini 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>@<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.")

2. Adım: 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 cursor.execute() yöntemini kullanır ve SQL sorgusunu MySQL veritabanına karşı yürütür.

Kod fetchall() yöntemini kullanarak veri satırlarını okur, sonuç kümesini bir koleksiyon satırında tutar ve satırları döngüye almak için yineleyici for 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>@<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.")

3. Adım: 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 cursor.execute() yöntemini kullanır ve SQL sorgusunu MySQL veritabanına karşı 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>@<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.")

4. Adım: 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 cursor.execute() yöntemini kullanır ve SQL sorgusunu MySQL veritabanına karşı 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>@<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.")  

Kaynakları temizleme

Bu hızlı başlangıç sırasında kullanılan tüm kaynakları temizlemek için aşağıdaki komutu kullanarak kaynak grubunu silin:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

Sonraki adımlar