本記事ではEC2からRDSへPythonを通してアクセスしてみようと思います。
https://dev.mysql.com/doc/connector-python/en/connector-python-installation.html
こちらの記事を参考に進めていきます。
前提条件
- Amazon linux
- python3 version=3.7
- MySQLがインストールされている。
コネクタ/Pythonのインストール
まず次のライブラリをインストールします。
$ pip install mysql-connector-python
次にRDSコンソール上でまずIAMロールを作成します。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Connecting.Python.html
上記サイトを参考にします。
まずIAMデータベース認証の有効化を行います。これはRDSの「変更」から変更できます。
次にデータベースアクセス用のIAM ポリシーの作成していきます。
今後設定する
続いて
$ pip install pymysql
でpymysqlをインストールします。
次に必要な情報を設定し、RDSに設定します。
import mysql.connector
rds_host = 'RDSのエンドポイント'
db_user = 'RDSのユーザ名'
db_password = 'RDSのパスワード'
rds_port = 3306
#RDBに接続する
connect = mysql.connector.connect(user=db_user,
password=db_password,
host=rds_host,
port=rds_port,
charset='utf8')
これで接続が完了です。
ではテーブルを作成してみましょう。
with connect:
with connect.cursor() as cur:
cur.execute('CREATE DATABASE testdb')
connect.commit()
MySQLでテーブルが作成されたか確認します。
以下のコマンドで接続できます。
$ mysql -h 'RDSのエンドポイント' -P 'ポート' -u 'ユーザ名' -p
Enter password:パスワードを入力
接続できたらデータベース一覧を取得します。
show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| |
| testdb |
+--------------------+
しっかりテーブルが作成されているようです。
今後はpymysqlの使い方を徐々に覚えていきます。