本記事では、MySQL Connector/Pythonドライバーを使用してOB Cloudデータベースに接続し、操作する方法について説明します。
背景
MySQL Connector/Pythonは、MySQLが公式に提供するMySQLデータベース接続用のドライバーです。Pythonで記述されており、PythonからMySQLデータベースへの接続と操作に使用されます。MySQL Connector/Pythonは、Python 2.7およびPython 3.xをサポートしています。
MySQL Connector/Pythonの詳細については、MySQL公式サイトをご参照ください。
前提条件
- Python2.7またはPython 3.xとpipがインストール済みであること。
- OB Cloudアカウントに登録済みで、クラスタインスタンスとOB CloudのMySQLモードテナントを作成していること。詳細については、クラスタインスタンスの作成およびテナントの作成をご参照ください。
操作手順
ステップ1:OB Cloudデータベースの接続文字列を取得する
OB Cloudコンソールにログインします。クラスタリストページで、対象クラスタの情報を展開し、対象テナントの下で、**接続**をクリックします。

ポップアップウィンドウで、**パブリックネットワークを使用**を選択します。
**パブリックIPアドレスを使用してデータベースに接続**ページで以下の設定を完了し、接続文字列を生成します:
パラメータ説明IPアドレスの追加 追加をクリックし、エグジットIPアドレスをホワイトリストに追加します。 証書のダウンロード (オプション)証書をダウンロードをクリックして、CA証書をダウンロードし、認証を完了します。 テナントへの接続 データベース ドロップダウンリストから選択し、+ データベースの作成をクリックして、表示された手順に従ってデータベースの作成を完了します。 アカウント ドロップダウンリストから選択し、+ アカウントの作成をクリックして、表示された手順に従ってアカウントの作成を完了します。 接続方式 接続方式としてMySQL CLIを選択します。 注意
アカウント作成後、作成時に生成されたパスワードを適切に保管してください。
ステップ2:MySQL Connector/Pythonドライバーのインストール
以下のコマンドを実行して、ドライバーをインストールします(Python3の例)。
pip3 install mysql-connector-python以下のコマンドを実行して、インストールが成功したかどうか確認します。
pip3 show mysql-connector-python
ステップ3:アプリケーションの作成
テキストエディタを開き、サンプルの
test.pyコードファイルを編集して保存します。内容は以下のとおりです:import mysql.connector # 接続の作成 cnx = mysql.connector.connect( host="xxxx", port=xxxx, user="xxx", password="", charset="utf8" ) # データベースの作成 def create_database(cursor): cursor.execute("CREATE DATABASE IF NOT EXISTS testdb") cursor.execute("USE testdb") # テーブルの作成 def create_table(cursor): cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))") # データの挿入 def insert_data(cursor): sql = "INSERT INTO users (name, email) VALUES (%s, %s)" val = ("111", "111@example.com") cursor.execute(sql, val) cnx.commit() print("Data inserted, ID:", cursor.lastrowid) # データの更新 def update_data(cursor): sql = "UPDATE users SET email = %s WHERE name = %s" val = ("222@example.com", "111") cursor.execute(sql, val) cnx.commit() print(cursor.rowcount, "record(s) affected") # データのクエリ def select_data(cursor): cursor.execute("SELECT * FROM users") result = cursor.fetchall() for row in result: print(row) # カーソルオブジェクトの取得 cursor = cnx.cursor() # データベースの作成と使用 create_database(cursor) create_table(cursor) # データの挿入 insert_data(cursor) # データの更新 update_data(cursor) # データのクエリ select_data(cursor) # カーソルと接続を閉じる cursor.close() cnx.close()ステップ1:OB Cloudデータベース接続文字列の取得で取得した接続文字列を使用して、ファイル
test.py内のコードにおける接続の作成部分を修正し、保存します。例:# 接続の作成 cnx = mysql.connector.connect( host="t5*******.aws-ap-southeast-1.oceanbase.cloud", port=3306, user="test", password="12*****!", charset="utf8" )- host:接続文字列の
-hパラメータから取得する、OB Cloudデータベースの接続アドレスです。 - port:接続文字列の
-Pパラメータから取得する、OB Cloudデータベースの接続ポートです。 - user:接続文字列の
-uパラメータから取得する、アカウント名です。 - password:接続文字列の
-pパラメータから取得する、アカウントのパスワードです。
- host:接続文字列の
ステップ4:アプリケーションの実行
コマンドラインツールを開き、
test.pyファイルがあるディレクトリに移動します。以下のコマンドを実行して、
test.pyファイルを起動します。python3 test.py実行結果は次のとおりです:
Data inserted, ID: 1 1 record(s) affected (1, '111', '222@example.com')