このトピックでは、ApsaraDB RDSインスタンスへの接続に障害が発生するさまざまな問題を解決する方法について説明します。
一般的な接続エラー
次の表に、一般的な接続エラーとこれらのエラーの解決策を示します。
データベースエンジン | エラーメッセージ | 原因 | 解決策 |
MySQLまたはMariaDB |
| ネットワーク通信が異常です。 |
詳細については、「ソリューション」をご参照ください。 |
| RDSインスタンスのIPアドレスホワイトリストには、RDSインスタンスに接続するIPアドレスが含まれていません。 | ||
| ユーザー名またはパスワードが無効です。 | ||
| ドメインネームシステム (DNS) サーバーは、RDSインスタンスのエンドポイントを解決できません。 | ||
[注] [MY-010914] [サーバー] db: 'XXX' ユーザー: 'XXX' ホスト: 'XXX' への接続671541を中止 (クライアントはサーバーによって切断されました。inactivity.) 。 | RDSインスタンスへの接続が閉じられています。 | このエラーは、クライアントが長期間リクエストを送信せず、サーバーの対話タイムアウト期間が終了したために発生します。 RDSインスタンスがMySQLを実行している場合、 | |
SQL Server | XXXに接続できません。 SQL Serverへの接続中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。 サーバーが見つからなかったか、アクセスできませんでした。 インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認します。 (プロバイダー: TCPプロバイダー、エラー: 0-接続先が一定期間後に適切に応答しなかったために接続の試みが失敗しました。または、接続先のホストが応答に失敗したために確立された接続が失敗しました。) (Microsoft SQL Server、エラー: 10060または258) | ネットワーク通信が異常です。 |
詳細については、「ソリューション」をご参照ください。 |
XXXに接続できません。 サーバーとの接続は正常に確立されましたが、ログオン処理中にエラーが発生しました。 (provider: TCP Provider, error: 0-指定したネットワーク名を使用できなくなります。) (Microsoft SQL Server、エラー: 64) | RDSインスタンスのIPアドレスホワイトリストには、RDSインスタンスに接続するIPアドレスが含まれていません。 | ||
トリガーの実行によりログイン 'user' のログオンに失敗しました | RDSインスタンスへの接続数が上限に達しました。 | ||
ユーザーのデフォルトデータベースを開くことができません。ログインに失敗しました | 指定されたアカウントがデフォルトでログオンしているデータベースは削除されます。 その結果、ログインに失敗します。 | ||
PostgreSQL | サーバーに接続できません: 接続がタイムアウト (0x000027 4C/10060) ホストで実行されているサーバーは「XXX.rds.aliyuncs.com」であり、ポートXXXでTCP/IP接続を受け入れていますか? | ネットワーク通信が異常です。 |
詳細については、「ソリューション」をご参照ください。 |
| RDSインスタンスのIPアドレスホワイトリストには、RDSインスタンスに接続するIPアドレスが含まれていません。 | ||
FATAL: 残りの接続スロットは非レプリケーションスーパーユーザー接続用に予約されています | RDSインスタンスへの接続数が上限に達しました。 | ||
FATAL: ユーザー "xxx" のパスワード認証に失敗しました。 | パスワードが無効です。 | パスワードをリセットして、もう一度お試しください。 パスワードをリセットする方法の詳細については、「パスワードのリセット」をご参照ください。 | |
定義者として指定されたユーザー ('user' @ 'a.b.c.d') が存在しない | 指定されたアカウントが見つかりません。 このエラーは、データベースプロキシ機能がRDSインスタンスに使用されている場合にのみ発生する可能性があります。 詳細については、「ApsaraDB RDSがデータベースプロキシモードをサポートしている」をご参照ください。 | ||
MYSQLサーバーは -- rds-deny-accessオプションで実行されているため、このステートメントを実行できません。 |
| ||
DMSを使用してRDSインスタンスに接続することはできません。 | RDSインスタンスの所有者ではなく、RDSインスタンスの所有者にログイン権限が付与されていません。 | ||
エンドポイントが有効で、IPアドレスホワイトリストが正しく設定され、ネットワーク通信が正常であるかどうかを確認します。 | ほとんどの場合、このエラーは、ECSインスタンスまたはオンプレミスホストにある自己管理型MySQLデータベースをRDSインスタンスに接続すると、次の理由で発生します。
|
詳細については、「ソリューション」をご参照ください。 | |
max_user_connections | RDSインスタンスへの接続数が上限に達しました。 | ||
IPアドレスホワイトリストに関連する問題のため、RDSインスタンスにログインできません。 | DMSサーバーのCIDRブロックは、RDSインスタンスのIPアドレスホワイトリストに追加されません。 |
内部ネットワーク経由でECSインスタンスをRDSインスタンスに接続できない問題
ApsaraDB RDSインスタンスの内部エンドポイントを使用してECSインスタンスをApsaraDB RDSインスタンスに接続する前に、ECSインスタンスのプライベートIPアドレスをApsaraDB RDSインスタンスのIPアドレスホワイトリストに追加する必要があります。
説明詳細については、「ApsaraDB RDSインスタンスのホワイトリストの設定」をご参照ください。
ECSインスタンスのパブリックIPアドレスをApsaraDB RDSインスタンスのIPアドレスホワイトリストに追加した場合、ApsaraDB RDSインスタンスの内部エンドポイントを使用してECSインスタンスをApsaraDB RDSインスタンスに接続することはできません。
ECSインスタンスを内部ネットワーク経由でApsaraDB RDSインスタンスに接続できるのは、これらのインスタンスが同じリージョンにある場合のみです。 これらのインスタンスは、同じリージョンの同じゾーンまたは異なるゾーンに存在できます。
ECSインスタンスとApsaraDB RDSインスタンスが同じリージョンにあることを確認します。
ECSインスタンスが存在するリージョンを表示します。
ApsaraDB RDSインスタンスが存在するリージョンを表示します。
ECSインスタンスとApsaraDB RDSインスタンスが異なるリージョンにある場合、これらのインスタンスは内部ネットワークを介して相互に直接通信できません。 この場合、次のいずれかの方法を使用して問題を解決できます。
方法 1:
方法2: RDSインスタンスのパブリックエンドポイントを使用して、ECSインスタンスをRDSインスタンスに接続します。 RDSインスタンスのパブリックエンドポイントを申請する方法の詳細については、「ApsaraDB RDS For MySQLインスタンスのパブリックエンドポイントの申請またはリリース」をご参照ください。 この方法では、最適なパフォーマンス、セキュリティ、または安定性を実現できません。
ネットワークタイプの確認
ECSインスタンスとApsaraDB RDSインスタンスの両方がVPCまたはクラシックネットワークにあることを確認します。
ECSインスタンスのネットワークタイプを表示します。
RDSインスタンスのネットワークタイプを表示します。
1つのインスタンスがクラシックネットワークにあり、もう1つのインスタンスがVPCにある場合、次のいずれかの方法で問題を解決します。
ECSインスタンスがVPCにあり、RDSインスタンスがクラシックネットワークにあるシナリオに適した方法:
方法1: RDSインスタンスのネットワークタイプをクラシックネットワークからECSインスタンスが存在するVPCに変更します。 これは推奨される方法です。
方法2: クラシックネットワークにあるECSインスタンスを購入します。 VPCはクラシックネットワークよりも高いセキュリティを提供します。 VPCの使用を推奨します。
説明ECSインスタンスをVPCからクラシックネットワークに移行することはできません。
方法3: RDSインスタンスのパブリックエンドポイントを使用して、ECSインスタンスをRDSインスタンスに接続します。 RDSインスタンスのパブリックエンドポイントを申請する方法の詳細については、「パブリックエンドポイントの申請またはリリース」をご参照ください。 この方法では、最適なパフォーマンス、セキュリティ、または安定性を実現できません。
ECSインスタンスがクラシックネットワークにあり、RDSインスタンスがVPCにあるシナリオに適した方法:
方法1 (推奨): ECSインスタンスをクラシックネットワークから、接続するRDSインスタンスが存在するVPCに移行します。 [ネットワークタイプ] ページの右側にある [接続の詳細の表示] をクリックすると、RDSインスタンスが存在するVPCのIDが表示されます。 詳細については、「ECSインスタンスの移行」をご参照ください。
方法2: RDSインスタンスのネットワークタイプをVPCからクラシックネットワークに変更します。 VPCはクラシックネットワークよりも高いセキュリティを提供します。 VPCの使用を推奨します。
方法3: ClassicLink機能を使用して、クラシックネットワークタイプのECSインスタンスとVPCタイプのRDSインスタンスの間に内部ネットワーク接続を確立します。 ClassicLink機能の詳細については、「ClassicLinkの有効化」をご参照ください。
説明ClassicLink機能の使用後、クラシックネットワークタイプのECSインスタンスとVPCタイプのRDSインスタンス間の内部ネットワーク接続を確立できない場合は、ClassicLink接続を確立した後のクラシックネットワークとVPC間の接続問題のトラブルシューティングの説明に基づいて問題を処理します。
方法4: RDSインスタンスのパブリックエンドポイントを使用して、ECSインスタンスをRDSインスタンスに接続します。 RDSインスタンスのパブリックエンドポイントを申請する方法の詳細については、「パブリックエンドポイントの申請またはリリース」をご参照ください。 この方法では、最適なパフォーマンス、セキュリティ、または安定性を実現できません。
ECSインスタンスとRDSインスタンスの両方がVPCにある場合は、これらのインスタンスが同じVPCにあることを確認してください。
ECSインスタンスのVPC IDを表示します。
RDSインスタンスのネットワークタイプを表示します。
ECSインスタンスとRDSインスタンスが異なるVPCにある場合、次のいずれかの方法で問題を解決します。
方法1: これは推奨される方法です。 ECSインスタンスが存在するVPCにRDSインスタンスを移行します。 詳細については、「VPCとvSwitchの変更」をご参照ください。
方法2: Cloud Enterprise Network (CEN) インスタンスを作成して、2つのVPC間の接続を確立します。 CENの詳細については、「CENを使用したリージョン内ネットワーク通信の有効化」をご参照ください。
方法3: RDSインスタンスのパブリックエンドポイントを使用して、ECSインスタンスをRDSインスタンスに接続します。 この方法では、最適なパフォーマンス、セキュリティ、または安定性を実現できません。
ECSインスタンスとRDSインスタンスが同じVPCおよび同じリージョンにある場合、ECSインスタンスはRDSインスタンスの内部エンドポイントではなくパブリックエンドポイントを使用してRDSインスタンスに接続でき、pingコマンドとtelnetコマンドの両方が接続失敗を返します。ルーティングの問題によりECSインスタンスがApsaraDB RDSインスタンスに接続できない場合はどうすればよいですか。
内部ネットワーク経由でのRDSインスタンスへの接続に失敗する問題
RDSインスタンスへの接続にRDSインスタンスのパブリックエンドポイントが使用されていることを確認します。 ApsaraDB RDSコンソールの [データベース接続] ページで、RDSインスタンスのパブリックエンドポイントを表示できます。
RDSインスタンスに接続するオンプレミスデバイスのパブリックIPアドレスが、RDSインスタンスのIPアドレスホワイトリストに追加されていることを確認します。 RDSインスタンスのIPアドレスホワイトリストに0.0.0.0/0
を追加した後、オンプレミスデバイスをRDSインスタンスに接続できる場合、IPアドレスホワイトリストに追加したIPアドレスは正しくありません。 この場合、次のトピックに基づいてオンプレミスデバイスの正しいパブリックIPアドレスを取得し、そのパブリックIPアドレスをRDSインスタンスのIPアドレスホワイトリストに追加します。 RDSインスタンスのIPアドレスホワイトリストを設定する方法の詳細については、「ApsaraDB RDSインスタンスのIPアドレスホワイトリストの設定」をご参照ください。
パブリックIPアドレスが変更される場合があります。 パブリックIPアドレスを変更した後は、元のパブリックIPアドレスを使用して接続を確立することはできません。 安定した接続を維持するには、RDSインスタンスの内部エンドポイントを使用し、内部IPアドレスをRDSインスタンスのIPアドレスホワイトリストに追加することを推奨します。
関連ドキュメント
適用範囲
ApsaraDB RDS