説明
ApsaraDB RDS for MySQLインスタンスまたはApsaraDB RDS for MariaDBインスタンスに接続すると、次のエラーメッセージが表示されます。
エラー2003 (HY000): 'XXX'(10038、10060、または110) のMySQLサーバーに接続できません
データベースに接続できません: XXX
解決策
このトピックでは、次の2つの方法について説明します。
内部ネットワーク経由でECSインスタンスをRDSインスタンスに接続できない問題
ECSインスタンスではなくデバイスをインターネット経由でRDSインスタンスに接続できない問題
内部ネットワーク経由でECSインスタンスをRDSインスタンスに接続できない問題
ECSインスタンスとRDSインスタンスが同じリージョンにあることを確認します。 ECSインスタンスとRDSインスタンスが異なるリージョンにある場合、これらのインスタンスは内部ネットワークを介して直接通信できません。 この場合、次のいずれかの方法を使用して問題を解決します。
方法1: ECSインスタンスまたはRDSインスタンスをリリースまたは解除します。 次に、指定されたリージョンにあるECSインスタンスまたはRDSインスタンスを購入します。
方法2: ECSインスタンスとRDSインスタンスのネットワークタイプをVirtual Private Cloud (VPC) に変更します。 詳細については、「RDSインスタンスのネットワークタイプの変更」をご参照ください。 さらに、ECSインスタンスとRDSインスタンスのVPC間でExpress Connectを使用して接続を確立します。
方法3: RDSインスタンスのパブリックエンドポイントを使用して、ECSインスタンスをRDSインスタンスに接続します。 この方法では、インスタンスの最適なパフォーマンス、セキュリティ、または安定性を確保できません。 方法3を使用する場合は、ECSインスタンスとRDSインスタンスの合理的なネットワーク設定を行うことを推奨します。
ECSインスタンスとRDSインスタンスが同じタイプのネットワークにあることを確認します。 1つのインスタンスがクラシックネットワークにあり、もう1つのインスタンスがVPCにある場合、次のいずれかの方法で問題を解決します。
ECSインスタンスがVPCにあり、RDSインスタンスがクラシックネットワークにあるシナリオに適した方法:
方法1: これは推奨される方法です。 RDSインスタンスのネットワークタイプをクラシックネットワークからVPCに変更します。 詳細については、「ApsaraDB RDSインスタンスのネットワークタイプの変更」をご参照ください。
説明内部ネットワークを介して相互に通信するには、ECSインスタンスとRDSインスタンスが同じVPCに存在する必要があります。
方法2: クラシックネットワークにあるECSインスタンスを購入します。 ただし、VPCはクラシックネットワークよりも高いセキュリティを提供します。 VPCの使用を推奨します。
説明ECSインスタンスをVPCからクラシックネットワークに移行することはできません。
方法3: RDSインスタンスのパブリックエンドポイントを使用して、ECSインスタンスをRDSインスタンスに接続します。 この方法では、インスタンスの最適なパフォーマンス、セキュリティ、または安定性を確保できません。
ECSインスタンスがクラシックネットワークにあり、RDSインスタンスがVPCにあるシナリオに適した方法:
方法1: これは推奨される方法です。 ECSインスタンスのネットワークタイプをクラシックネットワークからVPCに変更します。 詳細については、「ECSインスタンスのネットワークタイプの変更」をご参照ください。
説明内部ネットワークを介して相互に通信するには、ECSインスタンスとRDSインスタンスが同じVPCに存在する必要があります。
方法2: RDSインスタンスのネットワークタイプをVPCからクラシックネットワークに変更します。 ただし、VPCはクラシックネットワークよりも高いセキュリティを提供します。 VPCの使用を推奨します。
方法3: ClassicLink機能を使用して、ECSインスタンスとRDSインスタンス間の内部ネットワーク接続を確立します。
説明ClassicLink機能を有効にした後、ECSインスタンスとRDSインスタンスの間に内部ネットワーク接続を確立できない場合は、 クラシックネットワークとVPC間で接続を確立できない場合はどうすればよいですか?
方法4: RDSインスタンスのパブリックエンドポイントを使用して、ECSインスタンスをRDSインスタンスに接続します。 この方法では、インスタンスの最適なパフォーマンス、セキュリティ、または安定性を確保できません。
ECSインスタンスとRDSインスタンスの両方がVPCにある場合は、これらのインスタンスが同じVPCにあることを確認してください。 ECSインスタンスとRDSインスタンスが異なるVPCにある場合、次のいずれかの方法で問題を解決します。
方法1: これは推奨される方法です。 ECSインスタンスが属するVPCにRDSインスタンスを移行します。 詳細については、「ApsaraDB RDSインスタンスを別のVPCと別のvSwitchに移行する」または「ApsaraDB RDSインスタンスのネットワークタイプを変更する」をご参照ください。 RDSインスタンスのネットワークタイプをVPCからクラシックネットワークに変更します。 次に、RDSインスタンスのネットワークタイプをVPCに戻します。 RDSインスタンスのネットワークタイプをVPCに戻す場合は、ECSインスタンスが属するVPCを選択します。
方法2: Cloud Enterprise Network (CEN) インスタンスを作成して、ECSインスタンスとRDSインスタンスのVPC間にプライベート接続を確立します。
方法3: RDSインスタンスのパブリックエンドポイントを使用して、ECSインスタンスをRDSインスタンスに接続します。 この方法では、インスタンスの最適なパフォーマンス、セキュリティ、または安定性を確保できません。
ECSインスタンスのIPアドレスがRDSインスタンスのIPアドレスホワイトリストに追加されていることを確認します。 RDSインスタンスのIPアドレスホワイトリストを設定する方法の詳細については、「ApsaraDB RDSインスタンスのIPアドレスホワイトリストの設定」をご参照ください。
RDSインスタンスとECSインスタンス間の接続を確認します。 ECSインスタンスで次のコマンドを実行して、ECSインスタンスがRDSインスタンスのエンドポイントに関連付けられているポートに接続できるかどうかをテストします。
telnet [$RDS_IP] [$ポート]
説明[$RDS_IP] はRDSインスタンスのエンドポイントです。
[$Port] はRDSインスタンスのポート番号です。 RDSインスタンスのポートが変更されている場合は、ポート番号を新しいポート番号に置き換えます。 ApsaraDB RDS for MySQLインスタンスのデフォルトのポート番号は3306で、ApsaraDB RDS for SQL Serverインスタンスのデフォルトのポート番号は3433です。
ECSインスタンスがRDSインスタンスのエンドポイントに関連付けられているポートに接続できる場合、ECSインスタンスは内部ネットワークを介してRDSインスタンスに接続できます。
ECSインスタンスがRDSインスタンスのエンドポイントに関連付けられているポートに接続できない場合、ECSインスタンスのネットワーク問題をトラブルシューティングする必要があります。 詳細については、「RDSインスタンスに接続できない場合の対処方法」をご参照ください。.
ECSインスタンスではなくデバイスをインターネット経由でRDSインスタンスに接続できない問題
ECSインスタンスではなくデバイスをRDSインスタンスに接続できるのは、インターネット経由でのみです。 接続に失敗した場合は、次のいずれかの方法で問題を解決します。
デバイスのIPアドレスがRDSインスタンスのIPアドレスホワイトリストに追加されているかどうかを確認します。 デバイスのIPアドレスがRDSインスタンスのIPアドレスホワイトリストに追加されていない場合、RDSインスタンスのIPアドレスホワイトリストにIPアドレスを追加する必要があります。 詳細については、「ApsaraDB RDSインスタンスのIPアドレスホワイトリストの設定」をご参照ください。
拡張ホワイトリストモードが有効になっている場合は、デバイスのパブリックIPアドレスがクラシックネットワークタイプのIPアドレスホワイトリストに追加されていることを確認します。
説明VPCホワイトリストグループのIPアドレスは、クラシックネットワークホワイトリストグループに対して無効です。
デバイスのIPアドレスがRDSインスタンスのIPアドレスホワイトリストに追加された場合、IPアドレスホワイトリストに追加されたデバイスのパブリックIPアドレスが正しくないため、接続が失敗する可能性があります。 接続障害は、次の理由が原因です。
説明デバイスのパブリックIPアドレスを確認する方法の詳細については、 インターネット経由でローカルサーバーからApsaraDB RDS for MySQLまたはApsaraDB RDS for MariaDBインスタンスに接続できないのはなぜですか。 または SQL Serverは、外部サーバーまたはクライアントのパブリックIPアドレスをどのように決定しますか。
パブリックIPアドレスは動的に変更されます。
パブリックIPアドレスの照会に使用されるツールまたはWebサイトは、不正確な結果を返します。
接続に使用するエンドポイントがRDSインスタンスの内部エンドポイントであるかどうかを確認します。 接続にはRDSインスタンスのパブリックエンドポイントを使用する必要があります。
説明RDSインスタンスにパブリックエンドポイントがない場合は、パブリックエンドポイントを申請する必要があります。 RDSインスタンスのパブリックエンドポイントを申請する方法の詳細については、「ApsaraDB RDSインスタンスのパブリックエンドポイントの申請」をご参照ください。
ECSインスタンスとData Management (DMS) ではなくデバイスは、接続にExpress connect回線を使用しない限り、内部エンドポイントを使用してRDSインスタンスに接続できません。 詳細については、「DMSを使用したApsaraDB RDS For MySQLインスタンスへのログイン」および「Express Connect回線を介した接続とは」をご参照ください。
適用範囲
ApsaraDB RDS for MySQL
ApsaraDB RDS for MariaDB