pythonでAWS RDSのMySQLに接続する方法

pythonでAWS RDSのMySQLに接続する方法

BACK END

Hello World.

LiSMOtechの久津間です。

 

弊社では週に1回〜2週に1回くらいの頻度で「標準化・研究開発」というなの勉強会を開催しておりまして、その中でRDBMSの講座をさせていただきました。

RDBMSの講座の中では、事前に用意したAWS RDSのMySQLに接続して実際にDBを扱ってみるセクションがありまして、そちらで折角作ったデータベースなのでpythonからも操作してみようと思いこの記事に至っています。

 

また、今回はRDSは既に作られていることを前提に進めます。

 

pythonのバージョン

Python 3.9.5

 

pythonでMySQLを操作するライブラリについて

PythonからMySQLに接続するライブラリはいくつかあるようですが、この記事ではmysql-connerctorを使用したいと思います。

公式ドキュメント

 

この他にもmysqlclientやPyMySQLなどが良く使われているライブラリがあります。

PythonではPEP249 (DB-API 2.0)で、DB接続やSQLの実行など仕様が定められており、どのライブラリを使用しても基本は同じメソッドで実行することができるようです。

 

ライブラリmysql-connectorのインストール

ターミナルからpipコマンドで以下のとおりライブラリをインストールします。

pip install mysql-connector-python

 

RDSに接続とテーブルの作成

以下のコマンドを例に実行してみます。

# rds_sample.py

import mysql.connector

# 作成するテーブル
table_name = 'employees'

# コネクションの作成
cox = mysql.connector.connect(
    host='エンドポイント',
    port='3306',
    user='admin',
    password='パスワード',
    database='データベース名'
)

# コネクションの状態を出力
print(cox.is_connected())
cursor = cox.cursor()

try:
    print("creating table {}".format(table_name))
    cursor.execute(
        "CREATE TABLE `employees` ("
        "  `emp_no` int(11) NOT NULL AUTO_INCREMENT,"
        "  `birth_date` date NOT NULL,"
        "  `first_name` varchar(14) NOT NULL,"
        "  `last_name` varchar(16) NOT NULL,"
        "  `gender` enum('M','F') NOT NULL,"
        "  `hire_date` date NOT NULL,"
        "  PRIMARY KEY (`emp_no`)"
        ") ENGINE=InnoDB"
    )
except mysql.connector.Error as err:
    print("Failed creating table: {}".format(err))
    exit(1)

# コネクションを閉じる
cox.close()

 

コネクションの作成(cox = mysql.connector.connect)ではホスト名、ポート番号、ユーザー名、パスワード、接続するデータベースなどを指定しています。

こちらは適宜ご自身で用意したDBの情報を参照の上設定してみてください。

また、この例では新たにemployees”といったテーブルを作成しています。

作成に成功した場合は、creating table ~~といったメッセージがターミナルに表示されるはずです。

 

ターミナルからRDSに接続して確認した結果だと以下のテーブル情報が追加されていました。

 

 

まとめ

今回の例ではテーブルの作成止まりでしたが、この他にもテーブルデータの参照や更新などの操作も可能です。

ご自身でお試しになってみてください。


ともに考え、寄り添う。プロのデザインチームが即参戦。

販促ツールや一貫したデザインによるブランド構築などビジネスの成長をデザインの力で促進します。

NEXTGATE LiSMOtechでは中小企業を中心にブランディング・WEBマーケティングを活用したWEB戦略を提供しています。

企業課題・問題に関するご相談、WEBサイト制作やグラフィックデザイン制作のクリエイティブに関するご相談やご質問、お見積りなどお気軽にお問い合わせください。

お得な情報がLINEに届く!!

LINE公式アカウントはこちらから。

友だち追加

最新記事

CONTACT

NEXTGATE LiSMOtechでは中小企業を中心にブランディング・WEBマーケティングを活用したWEB戦略を提供しています。
企業課題・問題に関するご相談、WEBサイト制作やグラフィックデザイン制作のクリエイティブに関するご相談やご質問、お見積りなどお気軽にお問い合わせください。

平日10:00〜19:00

お電話の場合こちらから

043-305-4162

平日10:00〜19:00