pythonでrdsのmysqlへ接続したい

Pythonを使ってAWS RDSのMySQLデータベースに接続するには、一般的にはmysql-connector-pythonPyMySQLなどのライブラリを使用します。ここでは、mysql-connector-pythonを使った手順を説明します。

手順

1. ライブラリのインストール

まず、必要なライブラリをインストールします。

bash
pip install mysql-connector-python

2. 接続スクリプトの作成

次に、Pythonスクリプトを作成してRDSのMySQLに接続します。

python
import mysql.connector from mysql.connector import Error def connect(): """ Connect to MySQL database """ try: connection = mysql.connector.connect( host='your-rds-endpoint.rds.amazonaws.com', database='yourdatabase', user='yourusername', password='yourpassword' ) if connection.is_connected(): db_info = connection.get_server_info() print(f"Connected to MySQL database... MySQL Server version on {db_info}") cursor = connection.cursor() cursor.execute("select database();") record = cursor.fetchone() print(f"You're connected to database: {record}") except Error as e: print(f"Error while connecting to MySQL: {e}") finally: if connection.is_connected(): cursor.close() connection.close() print("MySQL connection is closed") if __name__ == '__main__': connect()

3. スクリプトの実行

保存したスクリプトを実行します。

bash
python your_script.py

確認事項

  1. RDSインスタンスのエンドポイント:

    • スクリプト内のhostに指定する値は、RDSインスタンスのエンドポイントです。
  2. データベース名:

    • databaseに指定する値は、接続したいデータベースの名前です。
  3. ユーザー名とパスワード:

    • userpasswordには、MySQLにアクセスするためのユーザー名とパスワードを指定します。

セキュリティグループの設定

RDSインスタンスのセキュリティグループが、Pythonスクリプトを実行しているマシンのIPアドレスからの接続を許可していることを確認してください。これが設定されていないと、接続が拒否されます。

  1. セキュリティグループの設定:
    • AWS Management Consoleで「EC2」サービスに移動し、「セキュリティグループ」を選択します。
    • RDSインスタンスに関連付けられているセキュリティグループを選択します。
    • 「インバウンドルールの編集」をクリックし、新しいルールを追加します。
      • タイプ: MySQL/Aurora
      • プロトコル: TCP
      • ポート範囲: 3306
      • ソース: 接続元のIPアドレス(または許可する範囲)

これで、Pythonスクリプトを使ってAWS RDSのMySQLに接続できるはずです。接続に成功すれば、データベースの情報が出力されます。問題が発生する場合は、エラーメッセージを確認し、接続情報やセキュリティグループの設定を見直してください。

未分類

Posted by ぼっち