Bagikan melalui


pustaka Azure Database for MySQL/PostgreSQL untuk Python

Artikel ini menunjukkan bagaimana Anda dapat menggunakan Python untuk mengakses data yang disimpan di Azure Database for MySQL dan PostgreSQL.

MySQL

Gunakan Python untuk membuat dan menyambungkan ke server Azure Database for MySQL dengan manajer MySQL dan pyodbc.

API Manajemen

Buat dan kelola sumber daya MySQL di langganan Anda dengan API manajemen.

Instal pustaka manajemen MySQL dengan pip.

pip install azure-mgmt-rdbms

Silakan lihat halaman autentikasi Python SDK untuk detail tentang mendapatkan kredensial untuk mengautentikasi dengan klien manajemen.

Membuat contoh server

Membuat server Azure Database for MySQL dan membatasi akses ke berbagai alamat IP menggunakan aturan firewall.

Salin dan tempel sampel kode di bawah ini ke dalam file Python (mis. sample.py) dan perbarui ID langganan, grup sumber daya, nama server, nama pengguna administrator, kata sandi administrator, dan lokasi dengan nilai Anda sendiri.

from azure.mgmt.rdbms.mysql import MySQLManagementClient
from azure.mgmt.rdbms.mysql.models import *

SUBSCRIPTION_ID = "YOUR_AZURE_SUBSCRIPTION_ID"
RESOURCE_GROUP = "YOUR_AZURE_RESOURCE_GROUP"
SERVER = "YOUR_SERVER_NAME"
ADMIN_USER = "YOUR_ADMIN_USERNAME"
ADMIN_PASSWORD = "YOUR_ADMIN_PASSWORD"
LOCATION = "westus"

client = MySQLManagementClient(credentials=creds,
    subscription_id=SUBSCRIPTION_ID)

server_creation_poller = client.servers.create(
    RESOURCE_GROUP,
    SERVER,
    ServerForCreate(
        properties=ServerPropertiesForDefaultCreate(
            administrator_login=ADMIN_USER,
            administrator_login_password=ADMIN_PASSWORD,
            version=ServerVersion.one_one,
            storage_profile=StorageProfile(
                storage_mb=51200
            )
        ),
        location=LOCATION,
        sku=Sku(
            name="GP_Gen5_2"
        )
    )
)

server = server_creation_poller.result()

# Open access to this server for IPs
rule_creation_poller = client.firewall_rules.create_or_update(
    RESOURCE_GROUP,
    SERVER,
    "example_firewall_rule",  # Custom firewall rule name
    "123.123.123.123",  # Start ip range
    "123.123.123.124"  # End ip range
)

firewall_rule = rule_creation_poller.result()

Driver ODBC klien dan pyodbc

Pustaka klien yang direkomendasikan untuk mengakses Azure Database for MySQL adalah driver Microsoft ODBC. Gunakan driver ODBC untuk menyambungkan ke database dan menjalankan pernyataan SQL secara langsung.

Contoh

Sambungkan ke server Azure Database for MySQL dan pilih semua rekaman dalam tabel penjualan. Anda bisa mendapatkan string koneksi ODBC untuk database dari Portal Microsoft Azure.

SERVER = 'YOUR_SEVER_NAME' + '.mysql.database.azure.com'
DATABASE = 'YOUR_DATABASE_NAME'
USERNAME = 'YOUR_MYSQL_USERNAME'
PASSWORD = 'YOUR_MYSQL_PASSWORD'

DRIVER = '{MySQL ODBC 5.3 UNICODE Driver}'
cnxn = pyodbc.connect(
    'DRIVER=' + DRIVER + ';PORT=3306;SERVER=' + SERVER + ';PORT=3306;DATABASE=' + DATABASE + ';UID=' + USERNAME + ';PWD=' + PASSWORD)
cursor = cnxn.cursor()
selectsql = "SELECT * FROM SALES"  # SALES is an example table name
cursor.execute(selectsql)

PostgreSQL

Gunakan Python untuk membuat dan menyambungkan ke server Azure Database for PostgreSQL dengan manajer PostgreSQL dan pyodbc.

Pelajari selengkapnya tentang Azure Database for PostgreSQL.

API Manajemen

Buat dan kelola sumber daya MySQL di langganan Anda dengan API manajemen.

Instal pustaka manajemen PostgreSQL dengan pip.

pip install azure-mgmt-rdbms

Silakan lihat halaman autentikasi Python SDK untuk detail tentang mendapatkan kredensial untuk mengautentikasi dengan klien manajemen.

Membuat contoh server

Membuat server Azure Database for PostgreSQL dan membatasi akses ke berbagai alamat IP menggunakan aturan firewall.

Salin dan tempel sampel kode di bawah ini ke dalam file Python (mis. sample.py) dan perbarui ID langganan, grup sumber daya, nama server, nama pengguna administrator, kata sandi administrator, dan lokasi dengan nilai Anda sendiri.

from azure.mgmt.rdbms.postgresql import PostgreSQLManagementClient
from azure.mgmt.rdbms.postgresql.models import *

SUBSCRIPTION_ID = "YOUR_AZURE_SUBSCRIPTION_ID"
RESOURCE_GROUP = "YOUR_AZURE_RESOURCE_GROUP"
SERVER = "YOUR_SERVER_NAME"
ADMIN_USER = "YOUR_ADMIN_USERNAME"
ADMIN_PASSWORD = "YOUR_ADMIN_PASSWORD"
LOCATION = "westus"

client = PostgreSQLManagementClient(credentials=creds,
    subscription_id=SUBSCRIPTION_ID)

server_creation_poller = client.servers.create(
    RESOURCE_GROUP,
    SERVER,
    ServerForCreate(
        properties=ServerPropertiesForDefaultCreate(
            administrator_login=ADMIN_USER,
            administrator_login_password=ADMIN_PASSWORD,
            version=ServerVersion.one_one,
            storage_profile=StorageProfile(
                storage_mb=51200
            )
        ),
        location=LOCATION,
        sku=Sku(
            name="GP_Gen5_2"
        )
    )
)

server = server_creation_poller.result()

# Open access to this server for IPs
rule_creation_poller = client.firewall_rules.create_or_update(
    RESOURCE_GROUP,
    SERVER,
    "example_firewall_rule",  # Custom firewall rule name
    "123.123.123.123",  # Start ip range
    "123.123.123.124"  # End ip range
)

firewall_rule = rule_creation_poller.result()

Driver ODBC klien dan pyodbc

Pustaka klien yang direkomendasikan untuk mengakses Azure Database for PostgreSQL adalah driver Microsoft ODBC dan pyodbc.

Contoh sambungkan

Sambungkan ke server Azure Database for PostgreSQL dan pilih semua rekaman dalam SALES tabel. Anda bisa mendapatkan string koneksi ODBC untuk database dari Portal Microsoft Azure.

import pyodbc

SERVER = 'YOUR_SERVER_NAME.postgres.database.azure.com'
DATABASE = 'YOUR_DB_NAME'
USERNAME = 'YOUR_USERNAME'
PASSWORD = 'YOUR_PASSWORD'

DRIVER = '{PostgreSQL ODBC Driver}'
cnxn = pyodbc.connect(
    'DRIVER=' + DRIVER + ';PORT=5432;SERVER=' + SERVER +
    ';PORT=5432;DATABASE=' + DATABASE + ';UID=' + USERNAME +
    ';PWD=' + PASSWORD)
cursor = cnxn.cursor()
selectsql = "SELECT * FROM SALES" # SALES is an example table name
cursor.execute(selectsql)