本ドキュメントでは、Pythonドライバを使用してOceanBase Cloudに接続し、使用する方法について説明します。使用するドライバはMySQL-connector-pythonです。
前提条件
- Python 2.7またはPython 3.x、およびpipがインストールされていること。
- OceanBase Cloudのアカウントを登録し、クラスタインスタンスとMySQL互換モードのテナントを作成していること。詳細は、クラスタインスタンスの作成およびテナントの作成をご参照ください。
操作手順
- OceanBase Cloudの接続文字列を取得します。
- MySQL-connector-pythonドライバをインストールします。
test.pyファイルを作成し、データベース接続情報を入力します。test.pyファイルを実行します。
操作手順1:OceanBase Cloudの接続文字列の取得
OB Cloudクラウドコンソールにログインします。インスタンス一覧ページで対象インスタンスの情報を展開し、対象テナントの下で**接続** > **接続文字列を取得**を選択します。
詳細な操作については、接続文字列の取得をご参照ください。
作成済みのOceanBase Cloudに基づいて、以下のURLの対応する情報を入力します。
obclient -h$host -P$port -u$user_name -p$password -D$database_nameパラメータの説明:
$host:OceanBase Cloudの接続アドレスを指定します。例:t********.********.oceanbase.cloud。$port:OceanBase Cloudの接続ポートを指定します。デフォルトは3306です。$database_name:アクセスするデータベース名を指定します。注意
テナントに接続するユーザーは、該当データベースに対する
CREATE、INSERT、およびSELECTの権限を持っている必要があります。アカウント権限の詳細については、アカウントの作成と管理をご参照ください。$user_name:データベースにアクセスするアカウントを指定します。$password:アカウントのパスワードを指定します。
例:
obclient -h t********.********.oceanbase.cloud -P3306 -u mysql001 -p****** -Dtest
操作手順2:MySQL-connector-pythonドライバのインストール
MySQL Connector/Pythonは、MySQLデータベースに接続するためにMySQLが公式に提供しているドライバプログラムです。Pythonプログラミング言語で記述されており、PythonからMySQLデータベースに接続して操作するために使用されます。MySQL Connector/Pythonは、Python 2.7およびPython 3.xに対応しています。
コマンドプロンプトまたはPowerShellターミナルを開き、以下のコマンドを実行してMySQL-connector-pythonドライバをインストールします。
pip3 install mysql-connector-python
インストール完了後、以下のコマンドでインストールが成功したかを確認できます。
pip3 list | grep mysql-connector-python
操作手順3:test.pyファイルの作成とデータベース接続情報の入力
手順1:OceanBase Cloudの接続文字列の取得の情報に基づいてtest.pyファイルを作成し、データベース接続情報を入力します。
test.pyという名前のファイルを作成します。test.pyファイルに以下の内容を入力し、実際の状況に応じてデータベース接続情報を変更します。test.pyファイルの内容例:import mysql.connector # データベース接続情報 config = { host': 't********.********.oceanbase.cloud', port': 3306, user': 'mysql001', password': '******', database': 'test' } # データベース接続の作成 conn = mysql.connector.connect(**config) cursor = conn.cursor() # データベースの作成 cursor.execute("CREATE DATABASE IF NOT EXISTS test") # データベースの使用 cursor.execute("USE test") # テーブルの作成 cursor.execute(""" CREATE TABLE IF NOT EXISTS test_table ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, age INT ) # データの挿入 cursor.execute(""" INSERT INTO test_table (name, age) VALUES ('John', 20), ('Lucy', 25), ('Tom', 30) # データの更新 cursor.execute(""" UPDATE test_table SET age = 26 WHERE name = 'Lucy' # データのクエリ cursor.execute("SELECT * FROM test_table") rows = cursor.fetchall() for row in rows: print(row)
# 接続のクローズ cursor.close() conn.close()
### 操作手順4:test.pyファイルの実行
コマンドプロンプトまたはPowerShellターミナルを開き、`test.py`ファイルを実行してデータをクエリし、結果を出力します。
1. `test.py`ファイルがあるディレクトリに移動します。
**例:**
```shell
cd D:\demo\demo
```
2. `test.py`ファイルを実行します。
**例:**
```shell
python test.py
```
実行結果は以下のとおりです。
```shell
(1, 'John', 20)
(2, 'Lucy', 26)
(3, 'Tom', 30)
```
## エラー処理
MySQL-connector-pythonを使用してOceanBase Cloudに接続する際、さまざまなエラーが発生する可能性があります。以下に一般的なエラーとその対処方法を示します。
1. **接続エラー**:データベースに接続できない場合は、ホスト名、ポート、ユーザー名、パスワード、データベース名などの接続パラメータが正しいか確認してください。
2. **権限エラー**:権限に関連するエラーが発生した場合は、ユーザーが必要な操作を実行するための十分な権限を持っているか確認してください。
3. **SQL構文エラー**:SQL文に構文エラーがある場合は、SQL文の構文が正しいか確認してください。
4. **データ型エラー**:挿入するデータ型がテーブル定義と一致しない場合は、挿入するデータ型が正しいか確認してください。
コード内では、`try-except`文を使用してこれらのエラーをキャッチして処理することで、エラー発生時にプログラムが直接クラッシュするのを防ぎ、適切に処理できます。また、`logging`モジュールを使用してエラー情報を記録することで、デバッグやトラブルシューティングが容易になります。
## 関連情報
* OceanBase Cloudへの接続に関する詳細は、[接続方法の概要](../../../../../300.tp-instance/400.connect-instance-tp/100.mysql/100.connection-overview-mysql.md)をご参照ください。