

# MySQL DB インスタンスへの接続
<a name="USER_ConnectToInstance"></a>

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

RDS DB インスタンスを認証するには、MySQL の認証メソッドのいずれかと AWS Identity and Access Management (IAM) データベース認証を使用できます。
+ MySQL の認証方法のいずれかを使用して MySQL に対して認証する方法については、MySQL ドキュメントの「[認証方法](https://dev.mysql.com/doc/internals/en/authentication-method.html)」を参照してください。
+ IAM データベース認証を使用して MySQL を認証する方法については、「[MariaDB、MySQL、および PostgreSQL の IAM データベース認証](UsingWithRDS.IAMDBAuth.md)」を参照してください。

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

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

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

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

**注記**  
MariaDB DB インスタンスとの接続方法の詳細については、「[MariaDB DB インスタンスへの接続](USER_ConnectToMariaDBInstance.md)」を参照してください。

RDS for MySQL DB インスタンスを検索して接続するには、次のトピックを参照してください。

**Topics**
+ [RDS for MySQL DB インスタンスの接続情報の検索](USER_ConnectToInstance.EndpointAndPort.md)
+ [MySQL コマンドラインクライアントのインストール](mysql-install-cli.md)
+ [MySQL コマンドラインクライアントからの接続 (非暗号化)](USER_ConnectToInstance.CLI.md)
+ [MySQL Workbench からの接続](USER_ConnectToInstance.MySQLWorkbench.md)
+ [MySQL 用 AWS JDBC ドライバー、AWS Python ドライバー、AWS ODBC ドライバーを使用して RDS for MySQL に接続する](MySQL.Connecting.Drivers.md)
+ [MySQL DB インスタンスへの接続のトラブルシューティング](USER_ConnectToInstance.Troubleshooting.md)

# RDS for MySQL DB インスタンスの接続情報の検索
<a name="USER_ConnectToInstance.EndpointAndPort"></a>

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 マネジメントコンソール、AWS CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) コマンド、または Amazon RDS API [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) オペレーションを使用して、詳細を一覧表示できます。

## コンソール
<a name="USER_ConnectToInstance.EndpointAndPort.Console"></a>

**AWS マネジメントコンソール で DB インスタンスの接続情報を探すには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

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

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

1. **[接続とセキュリティ]** タブで、エンドポイントをコピーします。また、ポート番号を書き留めます。DB インスタンスに接続するには、エンドポイントとポート番号の両方が必要です。  
![\[Amazon RDS コンソールの DB インスタンスのエンドポイントとポート。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/endpoint-port.png)

1. マスターユーザーネームを見つける必要がある場合は、[**設定**] タブを選択し、[**マスターユーザーネーム**] の値を表示します。

## AWS CLI
<a name="USER_ConnectToInstance.EndpointAndPort.CLI"></a>

AWS CLI を使用して MySQL DB インスタンスの接続情報を検索するには、[describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) コマンドを実行します。呼び出しで、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"
    ]
]
```

## RDS API
<a name="USER_ConnectToInstance.EndpointAndPort.API"></a>

Amazon RDS API を使用して DB インスタンスの接続情報を検索するには、[DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) オペレーションを呼び出します。出力で、エンドポイントアドレス、エンドポイントポート、およびマスターユーザー名の値を検索します。

# MySQL コマンドラインクライアントのインストール
<a name="mysql-install-cli"></a>

ほとんどの 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 コマンドラインクライアントからの接続 (非暗号化)
<a name="USER_ConnectToInstance.CLI"></a>

**重要**  
クライアントとサーバーが同じ VPC にあり、ネットワークが信頼されている場合に限り、暗号化されていない MySQL 接続を使用します。暗号化された接続の使用については、「[MySQL コマンドラインクライアントからの SSL/TLS による Amazon RDS 上の MySQL DB インスタンスへの接続 (暗号化）](USER_ConnectToInstanceSSL.CLI.md)」を参照してください。

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 からの接続
<a name="USER_ConnectToInstance.MySQLWorkbench"></a>

**MySQL Workbench から接続するには**

1. MySQL Workbench ([MySQL Workbench のダウンロード](http://dev.mysql.com/downloads/workbench/)) をダウンロードしてインストールします。

1. MySQL Workbench を開きます。  
![\[MySQL Workbench のようこそ画面。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/mysql-workbench-main.png)

1. [**データベース**] から、[**Manage Connections (接続の管理)**] を選択します。

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

1. [**Connect to Database (データベースに接続)**] ウィンドウに、次の情報を入力します。
   + [**Stored Connection**] - 接続の名前 (**MyDB** など) を入力します。
   + [**ホスト名**] - DB インスタンスのエンドポイントを入力します。
   + [**ポート**] - DB インスタンスで使用するポートを入力します。
   + [**ユーザーネーム**] - マスターユーザーなど、有効なデータベースユーザーのユーザーネームを入力します。
   + [**パスワード**] - 必要に応じて、[**Store in Vault　(ボールトに保存)**] を選択し、ユーザーのパスワードを入力して保存します。

   ウィンドウは次のようになります。  
![\[MySQL Workbench のサーバー接続管理ウィンドウ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/mysql-workbench-connect.png)

   MySQL Workbench の機能を使用して、接続をカスタマイズできます。例えば、**[SSL]** タブを使用して SSL/TLS 接続を設定できます。MySQL Workbench の使用方法については、「[MySQL Workbench のドキュメント](https://dev.mysql.com/doc/workbench/en/)」を参照してください。SSL/TLS を使用した MySQL DB インスタンスへのクライアント接続の暗号化については、[SSL/TLS を使用した Amazon RDS 上の MySQL DB インスタンスへのクライアント接続の暗号化](mysql-ssl-connections.md) を参照してください。

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

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

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

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

1. [**OK**] を選択します。

# MySQL 用 AWS JDBC ドライバー、AWS Python ドライバー、AWS ODBC ドライバーを使用して RDS for MySQL に接続する
<a name="MySQL.Connecting.Drivers"></a>

MySQL 用 AWS JDBC ドライバー、AWS Python ドライバー、AWS ODBC ドライバーを使用して、RDS for MySQL DB インスタンスに接続します。詳細については、以下のトピックを参照してください。

**Topics**
+ [Amazon Web Services (AWS) JDBC ドライバーを使用した RDS for MySQL への接続](#MySQL.Connecting.JDBCDriver)
+ [Amazon Web Services (AWS) Python ドライバーを使用した RDS for MySQL への接続](#MySQL.Connecting.PythonDriver)
+ [MySQL 用 Amazon Web Services (AWS) ODBC ドライバーを使用した RDS for MySQL への接続](#USER_ConnectToInstance.ODBCDriverMySQL)

## Amazon Web Services (AWS) JDBC ドライバーを使用した RDS for MySQL への接続
<a name="MySQL.Connecting.JDBCDriver"></a>

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 リポジトリ](https://github.com/awslabs/aws-advanced-jdbc-wrapper)」を参照してください。

## Amazon Web Services (AWS) Python ドライバーを使用した RDS for MySQL への接続
<a name="MySQL.Connecting.PythonDriver"></a>

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](https://github.com/awslabs/aws-advanced-python-wrapper)」を参照してください。

## MySQL 用 Amazon Web Services (AWS) ODBC ドライバーを使用した RDS for MySQL への接続
<a name="USER_ConnectToInstance.ODBCDriverMySQL"></a>

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

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

# MySQL DB インスタンスへの接続のトラブルシューティング
<a name="USER_ConnectToInstance.Troubleshooting"></a>

新しい DB インスタンスへの接続に失敗する一般的な原因には、次の 2 つがあります。
+ MySQL アプリケーションまたはユーティリティが実行されているデバイスまたは Amazon EC2 インスタンスからの接続を許可しないセキュリティグループを使用して DB インスタンスが作成されました。DB インスタンスには、接続を許可する VPC セキュリティグループが必要です。詳しくは、「[Amazon VPC と Amazon RDS](USER_VPC.md)」を参照してください。

  セキュリティグループでインバウンドのルールを追加または編集できます。**[ソース]** には **[マイ IP]** を選択します。これにより、ブラウザで検出された IP アドレスから DB インスタンスへのアクセスが許可されます。
+ DB インスタンスが、デフォルトポートの 3306 を使用して作成されたが、会社のファイアウォールルールで、社内ネットワークのデバイスからそのポートへの接続がブロックされています。この問題を解決するには、別のポートでインスタンスを再起動します。

接続の問題の詳細については、「[Amazon RDS DB インスタンスに接続できない](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)」を参照してください。