

# RDS for PostgreSQL インスタンスへの接続に関するトラブルシューティング
<a name="USER_ConnectToPostgreSQLInstance.Troubleshooting"></a>

**Topics**
+ [– 致命的エラー: データベース*名*が存在しません。](#USER_ConnectToPostgreSQLInstance.Troubleshooting-DBname)
+ [- サーバー接続失敗エラー: 接続がタイムアウトしました。](#USER_ConnectToPostgreSQLInstance.Troubleshooting-timeout)
+ [セキュリティグループのアクセスルールのエラー](#USER_ConnectToPostgreSQLInstance.Troubleshooting-AccessRules)

## – 致命的エラー: データベース*名*が存在しません。
<a name="USER_ConnectToPostgreSQLInstance.Troubleshooting-DBname"></a>

接続時に`FATAL: database name does not exist`のようなエラーが発生する場合、デフォルトのデータベース名 **postgres** を `--dbname` オプションに使用してみてください。

## - サーバー接続失敗エラー: 接続がタイムアウトしました。
<a name="USER_ConnectToPostgreSQLInstance.Troubleshooting-timeout"></a>

DB インスタンスに接続できない場合、最も一般的なエラーは `Could not connect to server: Connection timed out.` です。このエラーを受け取った場合、以下を確認します。
+ 使用しているホスト名が DB インスタンスのエンドポイントであること、および使用しているポート番号が正しいことを確認します。
+ DB インスタンスのパブリックアクセシビリティが**はい**に設定され、外部接続が許可されていることを確認します。**パブリックアクセス**設定を変更するには 、[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md) を参照してください。
+ データベースに接続するユーザーに CONNECT アクセス権があることを確認してください。次のクエリを使用して、データベースへの接続アクセスを提供できます。

  ```
  GRANT CONNECT ON DATABASE database name TO username;
  ```
+ 接続で経由する可能性のあるファイアウォールを通過するアクセス許可のルールが、DB インスタンスに割り当てられたセキュリティグループに設定されていることを確認します。例えば、DB インスタンスをデフォルトポート 5432 で作成した場合、会社のファイアウォールルールにより、外部企業デバイスから当該ポートへの接続がブロックされる可能性があります。

  この問題を解決するには、別のポートを使用するよう DB インスタンスを変更します。また、DB インスタンスに適用されているセキュリティグループが、その新しいポートへの接続を許可していることも確認します。**データベースポート**の設定を変更するには 、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください 。
+ 使用しようとしているポートが PostgreSQL のローカルインスタンスまたはコンピュータで実行している別のサービスによって既に占有されているかどうかを確認します。例えば、同じポート (デフォルトは 5432) でローカル PostgreSQL データベースを実行している場合、RDS for PostgreSQL DB インスタンスに正常に接続できない場合があります。ポートが空いていることを確認するか、可能であれば別のポート番号で接続してみてください。
+ 「[セキュリティグループのアクセスルールのエラー](#USER_ConnectToPostgreSQLInstance.Troubleshooting-AccessRules)」も参照してください。

## セキュリティグループのアクセスルールのエラー
<a name="USER_ConnectToPostgreSQLInstance.Troubleshooting-AccessRules"></a>

最も一般的な接続の問題は、DB インスタンスに割り当てられているセキュリティグループのアクセスルールに関係するものです。DB インスタンスの作成時にデフォルトのセキュリティグループを使用した場合、恐らくそのセキュリティグループにはインスタンスへのアクセスを許可するルールはありません。

接続が機能するには、作成時に DB インスタンスに割り当てたセキュリティグループが DB インスタンスへのアクセスを許可する必要があります。例えば、DB インスタンスが VPC で作成された場合、接続を承認する VPC セキュリティグループが必要です。アプリケーションが実行中のデバイスまたはAmazon EC2 インスタンスからの接続を承認しないセキュリティグループを使用して、 DB インスタンスを作成したかどうかを確認します。

セキュリティグループでインバウンドのルールを追加または編集できます。**出典** に対して **マイ IP** を選択すると、ブラウザで検出された IP アドレスから DB インスタンスにアクセスできます。詳細については、「[セキュリティグループを作成して VPC 内の DB インスタンスへのアクセスを提供する](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup)」を参照してください。

または、DB インスタンスが VPC の外部で作成された場合は、それらの接続を承認するデータベースセキュリティグループが必要です。

Amazon RDS セキュリティグループの詳細については、「[セキュリティグループによるアクセス制御](Overview.RDSSecurityGroups.md)」を参照してください。