Python

PythonでCloud SQLに接続する

前準備

まずは、Cloud SQLにインスタンスを作成します。

Google Cloudのナビゲーションメニューから「SQL」を選択し、画面上の「インスタンスを作成」をクリックします。今回はデータベースエンジンとして「MySQL」を選択します。インスタンスID、パスワードを入力、その他リージョン等を選択し、「インスタンスを作成」をクリックするとインスタンスを作成できました。

続いて、外部からこのSQLに接続できるように設定を行います。作成したSQLを開き、SQLナビゲーションメニューの「接続」を選択し、パブリックIPにチェックが入っていることを確認し、「承認済みネットワーク」にIPアドレスを追加します。

SQLへの接続

ここからは、MySQL Workbenchを利用して、今作成したSQLに接続します。
MySQL Workbenchを開いて、MySQL Connectionsの右の+をクリックします。Connection Nameに適当な名前を、Hostnameに先ほど作成したSQLのパブリックIPアドレスを、Passwordに先ほど入力したrootのパスワードを入力します。
作成したSQLを開くと、SQLに接続でき、クエリからデータベースやテーブルを作成することができます。

最後に作成したテーブルにpythonから接続を行います。

import MySQLdb
conn = MySQLdb.connect(
    user='root',
    passwd='password',
    host='IP_address',
    db='db_name'
)
cur = conn.cursor()
sql = "select * from table_name"
cur.execute(sql)
rows = cur.fetchall()

上記のコードのIP_addressに先ほど作成したSQLのパブリックIPアドレス、db_nameにデータベース名、table_nameにテーブル名を入力することで、SQLに接続することができます。ちなみに列名は、以下のような形式で取り出すことができます。

cur.execute("DESC table_name")
Y.Y
アナリティクス&デベロップメント所属。画像や時系列など。