すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:Python を使用して AnalyticDB for MySQL クラスターに接続する

最終更新日:Mar 29, 2026

mysqlclient ライブラリを使用して AnalyticDB for MySQL クラスターに接続し、SQL ステートメントを実行して結果を取得します。

前提条件

開始する前に、以下が準備できていることを確認してください:

  • Python 3

  • mysqlclient ライブラリがインストールされていること:

    mysqlclient は Python 3 のパッケージ名です。コードでは MySQLdb としてインポートされます。
    pip install mysqlclient
  • データベースとアカウント (特権アカウントまたは標準アカウント) を持つ AnalyticDB for MySQL クラスター

クラスターへの接続

以下の例では、接続を確立し、クエリを実行してデータベースのバージョンを取得し、接続を閉じます。

import MySQLdb

# クラスターへの接続を開きます。
db = MySQLdb.connect(
    host="<endpoint>",       # クラスターのエンドポイントまたは IP アドレス
    port=3306,               # ポート番号
    user="<account-name>",   # 特権アカウントまたは標準アカウント
    passwd="<password>",     # アカウントのパスワード
    db="<db-name>"           # ターゲットデータベース名
)

cursor = db.cursor()

# SQL ステートメントを実行します。
cursor.execute("SELECT VERSION()")

# 結果をフェッチします。
data = cursor.fetchone()
print("Database version: %s" % data)

# 接続を閉じます。
db.close()

コードを実行する前に、プレースホルダーを置き換えてください:

プレースホルダー説明
<endpoint>クラスターのエンドポイントまたは IP アドレスam-bp***.ads.aliyuncs.com
<account-name>接続に使用するアカウントの名前myaccount
<password>アカウントのパスワード
<db-name>ターゲットデータベースの名前mydb
AnalyticDB for MySQL は、特権アカウントと標準アカウントの 2 種類のアカウントをサポートしています。どちらのアカウントも、上記の方法で接続できます。

接続エラーの処理

接続を try/except ブロックでラップして、障害をキャッチして診断します:

import MySQLdb

db = None
try:
    db = MySQLdb.connect(
        host="<endpoint>",
        port=3306,
        user="<account-name>",
        passwd="<password>",
        db="<db-name>"
    )
    cursor = db.cursor()
    cursor.execute("SELECT VERSION()")
    data = cursor.fetchone()
    print("Database version: %s" % data)
except MySQLdb.Error as e:
    print("Connection failed: %s" % str(e))
finally:
    if db is not None:
        db.close()

次のステップ