Bagikan melalui


Panduan mulai Cepat: Menggunakan Python untuk membuat sambungan dan mengajukan kueri untuk data di Azure Database for MySQL

BERLAKU UNTUK: Azure Database for MySQL - Server Tunggal

Penting

Server tunggal Azure Database for MySQL berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke server fleksibel Azure Database for MySQL. Untuk informasi selengkapnya tentang migrasi ke server fleksibel Azure Database for MySQL, lihat Apa yang terjadi pada Server Tunggal Azure Database for MySQL?

Dalam panduan mulai cepat ini, Anda membuat sambungan ke Azure Database for MySQL dengan menggunakan Python. Kemudian, Anda menggunakan pernyataan SQL untuk mengajukan kueri, menyisipkan, memperbarui, dan menghapus data dalam database dari platform Mac, Ubuntu Linux, dan Windows.

Prasyarat

Untuk mulai cepat ini, Anda perlu:

Pasang Python dan konektor MySQL

Instal Python dan konektor MySQL untuk Python di komputer Anda dengan menggunakan langkah-langkah berikut:

Catatan

Mulai cepat ini menggunakan Panduan Pengembang Konektor/Python MySQL.

  1. Unduh dan instal Python 3.7 atau yang lebih tinggi untuk OS Anda. Pastikan untuk menambahkan Python ke PATH Anda, karena konektor MySQL memerlukannya.

  2. Buka prompt perintah atau bash shell, dan periksa versi Python Anda dengan menjalankan python -V lewat sakelar huruf V besar.

  3. pipPenginstal paket disertakan dalam versi terbaru Python. Perbarui pip ke versi terbaru dengan menjalankan pip install -U pip.

    Jika pip tidak diinstal, Anda dapat mengunduh dan menginstalnya dengan get-pip.py. Untuk informasi selengkapnya, lihat instalasi.

  4. Gunakan pip untuk menginstal konektor MySQL untuk Python dan dependensinya:

    pip install mysql-connector-python
    

Mendapatkan informasi koneksi

Dapatkan informasi sambungan yang Anda perlukan agar dapat tersambung ke Azure Database for MySQL dari portal Microsoft Azure. Anda memerlukan nama server, nama database, dan info masuk login.

  1. Masuk ke portal Azure.

  2. Di bilah pencarian portal, cari dan pilih server Azure Database for MySQL yang Anda buat, seperti mydemoserver.

  3. Dari panel Gambaran Umum server, perhatikan Nama server dan Nama login admin server. Jika Anda lupa kata sandi, Anda juga dapat mengatur ulang kata sandi dari halaman ini.

Menjalankan sampel kode Python

Untuk setiap contoh kode dalam artikel ini:

  1. Buat file baru di editor teks.

  2. Tambahkan contoh kode ke file. Dalam kode, ganti tempat penampung <mydemoserver>, <myadmin>, <mypassword> dan <mydatabase> dengan nilai untuk server dan database MySQL Anda.

  3. SSL diaktifkan secara default di server Azure Database for MySQL. Anda mungkin perlu mengunduh Sertifikat SSL DigiCertGlobalRootG2 agar terhubung dari lingkungan lokal Anda. Ganti nilai ssl_ca dalam kode dengan jalur ke file ini di komputer Anda.

  4. Simpan file dalam folder proyek dengan ekstensi .py, seperti C:\pythonmysql\createtable.py atau /home/username/pythonmysql/createtable.py.

  5. Untuk menjalankan kode, buka prompt perintah atau bash shell dan ubah direktori ke dalam folder proyek Anda, misalnya cd pythonmysql. Ketik perintah python diikuti dengan nama file, misalnya python createtable.py lalu tekan Enter.

    Catatan

    Di Windows, jika python.exe tidak ditemukan, Anda mungkin perlu menambahkan jalur Python ke variabel lingkungan PATH Anda, atau menyediakan jalur lengkap untuk python.exe, misalnya C:\python27\python.exe createtable.py.

Langkah 1: Buat tabel dan masukkan data

Gunakan kode berikut untuk menyambungkan ke server dan database, membuat tabel, dan memuat data dengan menggunakan pernyataan INSERT SQL. Kode mengimpor pustaka mysql.connector, dan menggunakan metode :

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.")

Langkah 2: Membaca data

Gunakan kode berikut untuk menyambungkan dan membaca data menggunakan pernyataan SQL SELECT. Kode mengimpor pustaka mysql.connector, dan menggunakan metode cursor.execute() menjalankan kueri SQL terhadap database MySQL.

Kode membaca baris data menggunakan metode fetchall(), mempertahankan hasil yang diatur dalam baris koleksi, dan menggunakan for iterator untuk mengulang baris.

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.")

Langkah 3: Memperbarui data

Gunakan kode berikut untuk menyambungkan dan memperbarui data menggunakan pernyataan SQL UPDATE. Kode mengimpor pustaka mysql.connector, dan menggunakan metode cursor.execute() menjalankan kueri SQL terhadap database 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>@<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.")

Langkah 4: Menghapus data

Gunakan kode berikut untuk menghubungkan dan menghapus data menggunakan pernyataan SQL DELETE. Kode mengimpor pustaka mysql.connector, dan menggunakan metode cursor.execute() menjalankan kueri SQL terhadap database 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>@<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.")  

Membersihkan sumber daya

Untuk membersihkan semua sumber daya yang digunakan selama mulai cepat ini, hapus grup sumber daya menggunakan perintah berikut:

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

Langkah berikutnya