MySQL データベースエンジンを実行している DB インスタンスへの接続 - Amazon Relational Database Service

MySQL データベースエンジンを実行している DB インスタンスへの接続

MySQL データベースエンジンを実行している DB インスタンスに接続するには、DB インスタンスを作成する必要があります。詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。Amazon RDS によって DB インスタンスがプロビジョニングされたら、スタンダードの MySQL クライアントアプリケーションまたはユーティリティを使用してインスタンスに接続できます。接続文字列では、DB インスタンスのエンドポイントの DNS アドレスをホストパラメータとして指定し、DB インスタンスのエンドポイントのポート番号をポートパラメータとして指定します。

RDS DB インスタンスを認証するには、MySQL の認証メソッドのいずれかと AWS Identity and Access Management (IAM) データベース認証を使用できます。

MySQL コマンドラインクライアントなどのツールを使用して、MySQL DB インスタンスに接続できます。MySQL コマンドラインクライアントを使用する方法については、MySQL ドキュメントの「mysql - MySQL コマンドラインクライアント」を参照してください。接続に使用できる GUI ベースのアプリケーションは、MySQL Workbench です。詳細については、「MySQL Workbench のダウンロード」ページを参照してください。MySQL のインストール (MySQL コマンドラインクライアントを含む) については、「MySQL のインストールと更新」を参照してください。

Amazon VPC の外部から DB インスタンスに接続するには、DB インスタンスがパブリックにアクセス可能であり、アクセスが DB インスタンスのセキュリティグループのインバウンドルールで許可されているなど、いくつかの要件を満たす必要があります。詳細については、「Amazon RDS DB インスタンスに接続できない」を参照してください。

MySQL DB インスタンスへの接続で Secure Sockets Layer (SSL) または Transport Layer Security (TLS) 暗号化を使用できます。詳細については、「MySQL DB インスタンスで SSL を使用する」を参照してください。AWS Identity and Access Management (IAM) データベース認証を使用している場合は、必ず SSL/TLS 接続を使用してください。詳細については、「MariaDB、MySQL、および PostgreSQL の IAM データベース認証」を参照してください。

また、ウェブサーバーから DB インスタンスに接続することもできます。詳細については、「チュートリアル: ウェブサーバーと Amazon RDS DB インスタンスを作成する」を参照してください。

注記

MariaDB DB インスタンスとの接続方法の詳細については、「MariaDB データベースエンジンを実行している DB インスタンスへの接続」を参照してください。

RDS for MySQL DB インスタンスの接続情報の検索

DB インスタンスの接続情報には、エンドポイント、ポート、およびマスターユーザーなどの有効なデータベースユーザーが含まれます。例えば、エンドポイントの値が mydb.123456789012.us-east-1.rds.amazonaws.com であるとします。この場合、ポート値は 3306 であり、データベースユーザーは admin です。この情報を考慮して、接続文字列に次の値を指定します。

  • ホスト、ホスト名または DNS 名には、mydb.123456789012.us-east-1.rds.amazonaws.com を指定します。

  • ポートで、3306 を指定します。

  • ユーザーには、admin を指定します。

DB インスタンスに接続するには、MySQL DB エンジンの任意のクライアントを使用します。例えば、MySQL コマンドラインクライアントまたは MySQL ワークベンチを使用できます。

DB インスタンスの接続情報を検索するには、AWS Management Console、AWS CLI describe-db-instances コマンド、または Amazon RDS API DescribeDBInstances オペレーションを使用して、詳細を一覧表示できます。

AWS Management Console で DB インスタンスの接続情報を探すには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択して DB インスタンスのリストを表示します。

  3. MySQL DB インスタンスの名前を選択して、その詳細を表示します。

  4. [接続とセキュリティ] タブで、エンドポイントをコピーします。また、ポート番号を書き留めます。DB インスタンスに接続するには、エンドポイントとポート番号の両方が必要です。

    Amazon RDS コンソールの DB インスタンスのエンドポイントとポート。
  5. マスターユーザーネームを見つける必要がある場合は、[設定] タブを選択し、[マスターユーザーネーム] の値を表示します。

AWS CLI を使用して MySQL DB インスタンスの接続情報を検索するには、describe-db-instances コマンドを呼び出します。呼び出しで、DB インスタンス ID、エンドポイント、ポート、マスターユーザー名をクエリします。

Linux、macOS、Unix の場合:

aws rds describe-db-instances \ --filters "Name=engine,Values=mysql" \ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

Windows の場合:

aws rds describe-db-instances ^ --filters "Name=engine,Values=mysql" ^ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

出力は次のようになります。

[ [ "mydb1", "mydb1.123456789012.us-east-1.rds.amazonaws.com", 3306, "admin" ], [ "mydb2", "mydb2.123456789012.us-east-1.rds.amazonaws.com", 3306, "admin" ] ]

Amazon RDS API を使用して DB インスタンスの接続情報を検索するには、DescribeDBInstances オペレーションを呼び出します。出力で、エンドポイントアドレス、エンドポイントポート、およびマスターユーザー名の値を検索します。

MySQL コマンドラインクライアントのインストール

ほとんどの Linux ディストリビューションには、Oracle MySQL クライアントではなく MariaDB クライアントが含まれています。MariaDB の MySQL コマンドラインクライアントを Amazon Linux 2023 にインストールするには、次のコマンドを実行します。

sudo dnf install mariadb105

MariaDB の MySQL コマンドラインクライアントを Amazon Linux 2 にインストールするには、次のコマンドを実行します。

sudo yum install mariadb

ほとんどの DEB ベースの Linux ディストリビューションに MySQL コマンドラインクライアントをインストールするには、次のコマンドを実行します。

apt-get install mariadb-client

MySQL コマンドラインクライアントのバージョンを確認するには、次のコマンドを実行します。

mysql --version

現在のクライアントバージョン用の MySQL ドキュメントを表示するには、次のコマンドを実行します。

man mysql

MySQL コマンドラインクライアントからの接続 (非暗号化)

重要

クライアントとサーバーが同じ VPC にあり、ネットワークが信頼されている場合に限り、暗号化されていない MySQL 接続を使用します。暗号化された接続の使用については、「SSL/TLS を使用した MySQL コマンドラインクライアントからの接続 (暗号化)」を参照してください。

MySQL コマンドラインクライアントを使用して DB インスタンスに接続するには、コマンドプロンプトで次のコマンドを入力します。-h パラメータは、DB インスタンスの DNS 名 (エンドポイント) に置き換えます。- P パラメータは、使用中の DB インスタンスのポートに置き換えます。-u パラメータでは、マスターユーザーなどの有効なデータベースユーザーのユーザー名に置き換えます。プロンプトが表示されたら、マスターユーザーパスワードを入力します。

mysql -h mysql–instance1.123456789012.us-east-1.rds.amazonaws.com -P 3306 -u mymasteruser -p

ユーザーのパスワードを入力すると、次のような出力が表示されます。

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9738 Server version: 8.0.28 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>

MySQL Workbench からの接続

MySQL Workbench から接続するには
  1. MySQL Workbench (MySQL Workbench のダウンロード) をダウンロードしてインストールします。

  2. MySQL Workbench を開きます。

    MySQL Workbench のようこそ画面。
  3. [データベース] から、[Manage Connections (接続の管理)] を選択します。

  4. [Manage Server Connections (サーバー接続の管理)] ウィンドウで、 [新規] を選択します。

  5. [Connect to Database (データベースに接続)] ウィンドウに、次の情報を入力します。

    • [Stored Connection] - 接続の名前 (MyDB など) を入力します。

    • [ホスト名] - DB インスタンスのエンドポイントを入力します。

    • [ポート] - DB インスタンスで使用するポートを入力します。

    • [ユーザーネーム] - マスターユーザーなど、有効なデータベースユーザーのユーザーネームを入力します。

    • [パスワード] - 必要に応じて、[Store in Vault (ボールトに保存)] を選択し、ユーザーのパスワードを入力して保存します。

    ウィンドウは次のようになります。

    MySQL Workbench のサーバー接続管理ウィンドウ。

    MySQL Workbench の機能を使用して、接続をカスタマイズできます。例えば、[SSL] タブを使用して SSL/TLS 接続を設定できます。MySQL Workbench の使用方法については、「MySQL Workbench のドキュメント」を参照してください。SSL/TLS を使用した MySQL DB インスタンスへのクライアント接続の暗号化については、SSL/TLS を使用した MySQL DB インスタンスへのクライアント接続の暗号化 を参照してください。

  6. 必要に応じて [Test Connection] を選択して、DB インスタンスへの接続が成功したことを確認します。

  7. [閉じる] を選択します。

  8. [データベース] から、[Connect to Database (データベースに接続)] を選択します。

  9. [Stored Connection] から、接続を選択します。

  10. [OK] を選択します。

Amazon Web Services (AWS) JDBC ドライバーを使用した RDS for MySQL への接続

Amazon Web Services (AWS) JDBC ドライバーは、高度な JDBC ラッパーとして設計されています。このラッパーは、既存の JDBC ドライバーの機能を補完し、拡張します。ドライバーには、コミュニティ MySQL Connector/J ドライバーおよびコミュニティ MariaDB Connector/J ドライバーとドロップイン互換性があります。

AWS JDBC ドライバーをインストールするには、AWS JDBC ドライバーの .jar ファイル (CLASSPATH アプリケーション内) を追加して、それぞれのコミュニティドライバーへの参照を保持します。対応する接続 URL プレフィックスを次のように更新します。

  • jdbc:mysql://jdbc:aws-wrapper:mysql://

  • jdbc:mariadb://jdbc:aws-wrapper:mariadb://

AWS JDBC ドライバーおよびその使用方法の詳細については、「Amazon Web Services (AWS) JDBC ドライバー GitHub リポジトリ」を参照してください。

Amazon Web Services (AWS) Python ドライバーを使用した RDS for MySQL への接続

Amazon Web Services (AWS) Python ドライバーは、高度な Python ラッパーとして設計されています。このラッパーは、オープンソースの Psycopg ドライバーの機能を補完し、拡張します。AWS Python ドライバーは Python バージョン 3.8 以降をサポートしています。aws-advanced-python-wrapper パッケージは、pip コマンドと psycopg オープンソースパッケージを使用してインストールできます。

AWS Python ドライバーおよびその使用方法の詳細については、「Amazon Web Services (AWS) Python Driver GitHub repository」を参照してください。

MySQL 用 Amazon Web Services (AWS) ODBC ドライバーを使用した RDS for MySQL への接続

MySQL 用 AWS ODBC ドライバーは、RDS for MySQL の高可用性を実現するために設計されたクライアントドライバーです。このドライバーは MySQL Connector/ODBC ドライバーと共存でき、同じワークフローと互換性があります。

MMySQL 用 AWS ODBC ドライバーおよびそのインストールと使用方法の詳細については、「Amazon Web Services (AWS) MySQL 用 ODBC ドライバー」GitHub リポジトリを参照してください。

MySQL DB インスタンスへの接続のトラブルシューティング

新しい DB インスタンスへの接続に失敗する一般的な原因には、次の 2 つがあります。

  • MySQL アプリケーションまたはユーティリティが実行されているデバイスまたは Amazon EC2 インスタンスからの接続を許可しないセキュリティグループを使用して DB インスタンスが作成されました。DB インスタンスには、接続を許可する VPC セキュリティグループが必要です。詳しくは、「Amazon VPC と Amazon RDS」を参照してください。

    セキュリティグループでインバウンドのルールを追加または編集できます。[ソース] には [マイ IP] を選択します。これにより、ブラウザで検出された IP アドレスから DB インスタンスへのアクセスが許可されます。

  • DB インスタンスが、デフォルトポートの 3306 を使用して作成されたが、会社のファイアウォールルールで、社内ネットワークのデバイスからそのポートへの接続がブロックされています。この問題を解決するには、別のポートでインスタンスを再起動します。

接続の問題の詳細については、「Amazon RDS DB インスタンスに接続できない」を参照してください。