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

ApsaraDB for OceanBase:Python ドライバーを使用して OceanBase データベースに接続する

最終更新日:Jan 19, 2025

このトピックでは、Python ドライバーを使用して OceanBase データベースに接続し、使用する方法について説明します。Python 環境のバージョンごとに異なるドライバーが必要です。Python 3.x では PyMySQL ドライバーが、Python 2.x では MySQL-python ドライバーが必要です。

前提条件

コンピューターに Python ランタイム環境がデプロイされていること。

Python 3.x で OceanBase データベースに接続する

Python 3.x では、OceanBase データベースに接続して使用するために PyMySQL ドライバーが必要です。

手順 1: データベース接続パラメーターを取得する

詳細については、「接続パラメーターを取得する」をご参照ください。例:

$ obclient -hxxx.xxx.xxx.xxx -P3306 -u a**** -p****** -Dtest

データベース接続パラメーターは、データベースへのアクセスに必要な情報を指定します。サンプルコードで使用する前に、データベースにログオンしてデータベース接続パラメーターを確認できます。

オプション:

  • -h: 接続先の OceanBase データベースのドメイン名。

  • -P: OceanBase データベースに接続するためのポート。MySQL モードでは、デフォルトでポートは 3306 です。

  • -u: テナントアカウント。

  • -p: アカウントパスワード。

  • -D: データベース名。

手順 2: PyMySQL をインストールする

PyMySQL は、MySQL データベースサーバーに接続するための Python 3.x のライブラリです。PyMySQL は Python Database API Specification 2.0 を実装し、純粋な Python MySQL クライアントライブラリを含んでいます。

PyMySQL の詳細については、PyMySQL の公式 Web サイトおよびAPI リファレンスをご覧ください。

次の 2 つの方法のいずれかを使用して PyMySQL をインストールできます。

  • CLI でコマンドを実行してインストールする

    $ python3 -m pip install PyMySQL
  • ソースコードをコンパイルして obcdc をビルドする

    1. ソースコードをクローンします。

      $ git clone https://github.com/PyMySQL/PyMySQL
    2. PyMySQL ディレクトリに切り替えます。

      $ cd PyMySQL/
    3. インストール用のコードをコンパイルします。

      $ python3 setup.py install

手順 3: サンプルコードを作成する

test.py のサンプルコードを編集します。

#!/usr/bin/python3

import pymysql

conn = pymysql.connect(host="xxx.xxx.xxx.xxx", port=3306,
 user="a****", passwd="******", db="test")

cur = conn.cursor()

try:

 # Create a table named cities.
 sql = 'create table cities (id int, name varchar(24))'
 cur.execute(sql)

 # Insert two sets of data into the cities table.
 sql = "insert into cities values(1,'hangzhou'),(2,'shanghai')"
 cur.execute(sql)

 # Query all data in the cities table.
 sql = 'select * from cities'
 cur.execute(sql)
 ans = cur.fetchall()
 print(ans)

 # Drop the cities table.
 sql = 'drop table cities'
 cur.execute(sql)

finally:
 cur.close()
 conn.close()

コード内のデータベース接続パラメーターを変更します。次のパラメーターを参照してください。パラメーター値は手順 1 で取得します。

  • user: テナントアカウント。-u オプションに対応します。

  • password: テナントアカウントのパスワード。-p オプションに対応します。

  • host: 接続先の OceanBase データベースのドメイン名。-h オプションに対応します。

  • port: OceanBase データベースに接続するためのポート。-P オプションに対応します。MySQL モードでは、デフォルトでポートは 3306 です。

  • db: データベース名。-D オプションに対応します。

手順 4: サンプルコードを実行する

コードを編集した後、test.py スクリプトを実行します。

$ python3 test.py

次の結果が返された場合、データベースは接続され、サンプル文は正しく実行されています。

((1, 'hangzhou'), (2, 'shanghai'))

Python 2.x から OceanBase データベースに接続する

Python 2.x では、OceanBase データベースに接続して使用するために MySQL-python ドライバーが必要です。MySQL-python は、データベースサーバーに接続するための Python 2.x のライブラリです。

手順 1: データベース接続パラメーターを取得する

詳細については、「接続パラメーターを取得する」をご参照ください。例:

$ obclient -hxxx.xxx.xxx.xxx -P3306 -u a**** -p****** -Dtest

データベース接続パラメーターは、データベースへのアクセスに必要な情報を指定します。サンプルコードで使用する前に、データベースにログオンしてデータベース接続パラメーターを確認できます。

オプション:

  • -h: 接続先の OceanBase データベースのドメイン名。

  • -P: OceanBase データベースに接続するためのポート。MySQL モードでは、デフォルトでポートは 3306 です。

  • -u: テナントアカウント。

  • -p: アカウントパスワード。

  • -D: データベース名。

手順 2: MySQL-python をインストールする

MySQL-python は、Python アプリケーションを MySQL データベースに接続できるようにする API です。Python Database API Specification 2.0 を実装し、MySQL C API に基づいて構築されています。

MySQL-python の詳細については、MySQL-python の Web サイトおよびGitHubをご覧ください。

yum コマンドを実行して MySQL-python ドライバーをインストールできます。

$ yum install MySQL-python

手順 3: サンプルコードを作成する

test2.py のサンプルコードを編集します。

#!/usr/bin/python2

import MySQLdb

conn= MySQLdb.connect(
 host='xxx.xxx.xxx.xxx',
 port = 3306,
 user='a****',
 passwd='******',
 db ='test'
)


cur = conn.cursor()

try:

 # Create a table named cities.
 sql = 'create table cities (id int, name varchar(24))'
 cur.execute(sql)

 # Insert two sets of data into the cities table.
 sql = "insert into cities values(1,'hangzhou'),(2,'shanghai')"
 cur.execute(sql)

 # Query all data in the cities table.
 sql = 'select * from cities'
 cur.execute(sql)
 ans = cur.fetchall()
 print(ans)

 # Drop the cities table.
 sql = 'drop table cities'
 cur.execute(sql)

finally:
 cur.close()
 conn.close()

コード内のデータベース接続パラメーターを変更します。次のパラメーターを参照してください。パラメーター値は手順 1 で取得します。

  • host: 接続先の OceanBase データベースのドメイン名。-h オプションに対応します。

  • user: テナントアカウント。-u オプションに対応します。

  • passwd: テナントアカウントのパスワード。-p オプションに対応します。

  • port: OceanBase データベースに接続するためのポート。-P オプションに対応します。MySQL モードでは、デフォルトでポートは 3306 です。

  • db: データベース名。-D オプションに対応します。

手順 4: サンプルコードを実行する

コードを編集した後、test.py スクリプトを実行します。

$ python test.py

次の結果が返された場合、データベースは接続され、サンプル文は正しく実行されています。

((1L, 'hangzhou'), (2L, 'shanghai'))