Aracılığıyla paylaş


Python için MySQL için Azure Veritabanı/PostgreSQL kitaplıkları

Bu makalede, MySQL için Azure Veritabanı ve PostgreSQL'de depolanan verilere erişmek için Python'ı nasıl kullanabileceğiniz gösterilmektedir.

MySQL

MySQL yöneticisi ve pyodbc ile bir MySQL için Azure Veritabanı sunucusu oluşturmak ve sunucuya bağlanmak için Python kullanın.

Yönetim API'si

Yönetim API'siyle aboneliğinizde MySQL kaynakları oluşturun ve yönetin.

Pip ile MySQL yönetim kitaplıklarını yükleyin.

pip install azure-mgmt-rdbms

Yönetim istemcisiyle kimlik doğrulaması için kimlik bilgilerini alma hakkında ayrıntılı bilgi için lütfen Python SDK kimlik doğrulaması sayfasına bakın.

Sunucu oluşturma örneği

bir MySQL için Azure Veritabanı sunucusu oluşturur ve güvenlik duvarı kuralı kullanarak bir IP adresleri aralığına erişimi kısıtlar.

Aşağıdaki kod örneğini kopyalayıp bir Python dosyasına (örn. sample.py) yapıştırın ve abonelik kimliğini, kaynak grubunu, sunucu adını, yönetici kullanıcı adını, yönetici parolasını ve konumu kendi değerlerinizle güncelleştirin.

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()

İstemci ODBC sürücüsü ve pyodbc

MySQL için Azure Veritabanı erişmek için önerilen istemci kitaplığı Microsoft ODBC sürücüsüdür. Veritabanına bağlanmak ve SQL deyimlerini doğrudan yürütmek için ODBC sürücüsünü kullanın.

Örnek

bir MySQL için Azure Veritabanı sunucusuna bağlanın ve satış tablosundaki tüm kayıtları seçin. Veritabanı için ODBC bağlantı dizesi Azure Portal'dan alabilirsiniz.

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

PostgreSQL yöneticisi ve pyodbc ile bir PostgreSQL için Azure Veritabanı sunucusu oluşturmak ve sunucuya bağlanmak için Python kullanın.

PostgreSQL için Azure Veritabanı hakkında daha fazla bilgi edinin.

Yönetim API'si

Yönetim API'siyle aboneliğinizde MySQL kaynakları oluşturun ve yönetin.

PostgreSQL yönetim kitaplıklarını pip ile yükleyin.

pip install azure-mgmt-rdbms

Yönetim istemcisiyle kimlik doğrulaması için kimlik bilgilerini alma hakkında ayrıntılı bilgi için lütfen Python SDK kimlik doğrulaması sayfasına bakın.

Sunucu oluşturma örneği

bir PostgreSQL için Azure Veritabanı sunucusu oluşturur ve güvenlik duvarı kuralı kullanarak bir IP adresleri aralığına erişimi kısıtlar.

Aşağıdaki kod örneğini kopyalayıp bir Python dosyasına (örn. sample.py) yapıştırın ve abonelik kimliğini, kaynak grubunu, sunucu adını, yönetici kullanıcı adını, yönetici parolasını ve konumu kendi değerlerinizle güncelleştirin.

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()

İstemci ODBC sürücüsü ve pyodbc

PostgreSQL için Azure Veritabanı erişmek için önerilen istemci kitaplığı Microsoft ODBC sürücüsü ve pyodbc'dir.

Bağlan örneği

bir PostgreSQL için Azure Veritabanı sunucusuna bağlanın ve tablodaki SALES tüm kayıtları seçin. Veritabanı için ODBC bağlantı dizesi Azure Portal'dan alabilirsiniz.

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)