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:
Akun Azure dengan langganan aktif. Buat akun secara gratis.
Membuat server tunggal Azure Database for MySQL menggunakan portal Azure
atau Azure CLI jika Anda tidak memilikinya.Berdasarkan pada apakah Anda menggunakan akses publik atau privat, selesaikan SALAH SATU tindakan di bawah ini untuk mengaktifkan konektivitas.
Perbuatan Metode konektivitas Panduan Mengonfigurasi aturan firewall Publik Portal
CLIMengonfigurasi Titik Akhir Layanan Publik Portal
CLIMengonfigurasi tautan privat Privat Portal
CLI
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.
Unduh dan instal Python 3.7 atau yang lebih tinggi untuk OS Anda. Pastikan untuk menambahkan Python ke
PATH
Anda, karena konektor MySQL memerlukannya.Buka prompt perintah atau
bash
shell, dan periksa versi Python Anda dengan menjalankanpython -V
lewat sakelar huruf V besar.pip
Penginstal paket disertakan dalam versi terbaru Python. Perbaruipip
ke versi terbaru dengan menjalankanpip install -U pip
.Jika
pip
tidak diinstal, Anda dapat mengunduh dan menginstalnya denganget-pip.py
. Untuk informasi selengkapnya, lihat instalasi.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.
Masuk ke portal Azure.
Di bilah pencarian portal, cari dan pilih server Azure Database for MySQL yang Anda buat, seperti mydemoserver.
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:
Buat file baru di editor teks.
Tambahkan contoh kode ke file. Dalam kode, ganti tempat penampung
<mydemoserver>
,<myadmin>
,<mypassword>
dan<mydatabase>
dengan nilai untuk server dan database MySQL Anda.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.Simpan file dalam folder proyek dengan ekstensi .py, seperti C:\pythonmysql\createtable.py atau /home/username/pythonmysql/createtable.py.
Untuk menjalankan kode, buka prompt perintah atau
bash
shell dan ubah direktori ke dalam folder proyek Anda, misalnyacd pythonmysql
. Ketik perintahpython
diikuti dengan nama file, misalnyapython 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 :
- sambungkan() fungsi untuk menyambungkan ke Azure Database for MySQL menggunakan argumen dalam koleksi konfigurasi.
- Metode cursor.execute() menjalankan kueri SQL terhadap database MySQL.
- cursor.close() ketika Anda selesai menggunakan kursor.
- conn.close() untuk menutup koneksi koneksi.
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